En este proyecto un Arduino UNO controla 6 leds y un motor paso a paso, disponiendo de un final de carrera para el mecanismo que mueve el motor paso a paso, conectado en el pin 12, un pulsador conectado en el pin 11 y un potenciómetro de 10K conectado en el pin A0.
El motor paso a paso se controla con un driver L298N los pines 1 y 2 de Arduino controlan una bobina del motor y los pines 3 y 4 de Arduino la otra bobina. Aquí podemos encontrar diferentes programas para controlar este motor paso a paso.
Los 6 leds están conectados en los pines 5,6,7,8,9,10. La mitad son verdes y la mitad rojos.Dado que nuestro mecanismo desmontado de un lector de CDs dispone de un final de carrera conectado al pin 12 de Arduino, podemos utilizar este final de carrera para llevar el mecanismo a su origen al iniciarse el programa, tal como se muestra a continuación. En Inicializar tenemos un bloque repetir mientras el pin digital 12 sea igual a Off, es decir no esté pulsado. Lo que repite es el desplazamiento del motor paso a paso en la dirección de ese final de carrera. Cuando llega al final de carrera y lo pulsa, el programa sale de esa repetición y se va a ejecutar el Bucle.
En el siguiente programa el valor que obtenemos en la entrada analógica A0 lo mapeamos entre 0 y 100 y este será el valor de la variable posicion que nos modifique la posición del cursor rojo que mueve el motor paso a paso. Al salir de inicializar fijamos el valor de la variable cursor a 0, que es la posición a la izquierda del cursor. En el bucle si posición es mayor que cursor, desplazamos el motor paso a paso hacia la derecha (valores negativos de pasos) y si es al revés lo hacemos hacia la izquierda (valores positivos de pasos).
Todo esto lo vamos a combinar ahora con los leds de colores en el siguiente programa. La velocidad y sentido de giro de los leds varían con el valor de la variable posicion.