Paso 3: Arduino programa
Lo que estamos haciendo aquí en Arduino es decir el motor paso a paso para mover a un cierto ángulo, entonces mueva hacia atrás otra vez. Mientras que al hacerlo, se enviará es ángulo actual al proceso a través de comunicación serial. Para más detalles puede ver el video o leer los comentarios en el código. Pero voy a describir los conceptos básicos aquí. Mira que el vídeo y usted puede omitir leer esto!
Así que si saltar a través de toda la creación y entrar directamente en el circuito, primero necesitamos leer el primer potenciómetro y asignar su valor a la demora entre cada paso y la velocidad de la pantalla LCD. El retraso y la velocidad son básicamente lo mismo, la demora controla la velocidad mientras que el 'spd', también la velocidad, es sólo para mostrar la velocidad en la pantalla LCD. Necesitamos asignar el segundo potenciómetro de 'angleEnd' que es el ángulo más lejano que queremos el paso a paso para ir a.
'pass' es punto de partida es el número de veces que el escáner ha girado su ángulo final y volver a él. Tan de 0deg a angleEnd es una pasada, y 0deg es dos pasos. Tenemos que comprobar si el número de pasadas que ha hecho es menor que el número que queremos que haga. Si es así, establecemos la dirección de los pasos. Esto lo podemos hacer utilizando el modulo de función '%', que nos permite comprobar el número de pasadas es par o impar. Si 'pass %2' es iguales a 0, entonces 'paso' está incluso y necesitamos girar hacia adelante. Si es igual a 1, entonces es impar y necesitamos girar hacia atrás.
En el bucle que volver a él es a partir de punto (el lazo por un número impar de pasos), podemos poner un mensaje para enviar a procesar diciendo que nos has hecho un paso y que deje que su hacer, hemos terminado análisis! Así que podemos enviar el ángulo 500 porque obviamente no es una coordenada porque es más de 360.
Así hemos establecer la dirección de los motores pero no mover en cualquier lugar... Para ello, tenemos que enviar un corto pulso de 300 microsegundos para el pin de paso en el controlador paso a paso.
A continuación podemos incrementar la variable 'pass' si el ángulo ha ido más allá de cualquiera de los dos 'angleEnd' o su arranque en la posición (cero grados).
Entonces realmente enviamos el ángulo actual procesamiento.
Y luego escribir un montón de cosas de la pantalla LCD. Lo que he puesto en un montón de espacios negros antes de que cada valor está escrito es para que un gran número como '150' se borra antes de un número más pequeño tales como '5' tiene que ser demostrado. Si no hago esto, entonces demostraría para arriba como '550' porque el '150' aún es persistente en el fondo. Ir a gran número.
Por último podemos poner en 'del' como el retraso que determina cuánto tiempo tiene que esperar antes de hacer todo eso otra vez. Esto determina la velocidad del motor.