Menú
Foros
Nuevos mensajes
Buscar en foros
Novedades
Nuevos mensajes
Nuevos recursos
Última actividad
Recursos
Últimas revisiones
Buscar recursos
Acceder
Registrarse
Novedades
Buscar
Buscar
Buscar sólo en títulos
De:
Nuevos mensajes
Buscar en foros
Menú
Acceder
Registrarse
Install the app
Instalar
Foros
Temas de Interés
Software de Simulación y Diseño Electrónico
Declarar una función en arduino uno
JavaScript está desactivado. Para una mejor experiencia, por favor, activa JavaScript en el navegador antes de continuar.
Estás usando un navegador obsoleto. No se pueden mostrar este u otros sitios web correctamente.
Se debe actualizar o usar un
navegador alternativo
.
Responder al tema
Mensaje
[QUOTE="Ardogan, post: 1017499, member: 2832"] Bienvenid@!!!! Observa la variable global contador, al llamar a izquierda(96) ¿con qué valor termina?. ¿Y que va a pasar la próxima vez que llames izquierda(96)?. Respuestas abajo de todo. Ahora queda ver soluciones, que dependen de que rol quieras para la variable contador. Una opción sería poner contador = 0 después de } while(++contador<=pulso); Pero si la idea es que contador guarde la posición (suposición mía, que indique si el eje está en el paso X) entonces no sirve. La opción que queda es cambiar la forma de llamar a la función izquierda, en la función loop() en vez de izquierda(96); usar izquierda(contador+96); Otra precaución es que si el motor tiene 200 pasos por ejemplo, la variable contador debería ir de 0 a (200*4-1) = 799. Multiplico por 4 porque cada paso consta de 4 salidas en secuencia (cada uno de los case del switch(estado). Entonces la respuesta anterior viene con esta otra pregunta: ¿Qué pasará en la siguiente situación?: la variable contador es = 785 y llamas a izquierda(contador+96). Otra cosa que quiero que pienses, ¿de cuantos bits es la variable contador?, y cómo habría que modificar las cosas? (supongo que usas un motor de 200 pasos, si es menos aclararlo). Respuestas a las primeras preguntas: La variable contador termina con un valor de 96. La próxima llamada de izquierda(96) se ejecuta el loop, llega al while(++contador<=pulso); pero como contador ahora es 97 ya es mayor que pulso = 96, por lo tanto el do..while se ejecuta una sola vez y la función retorna luego de parar el motor. [/QUOTE]
Verificación
Responder
Foros
Temas de Interés
Software de Simulación y Diseño Electrónico
Declarar una función en arduino uno
Arriba