martes, 31 de octubre de 2023

Proyecto con motor paso a paso

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.


Sobre la base del programa anterior vamos a hacer otro que utilice el potenciómetro para modificar la velocidad del motor paso a paso. Para ello mapeamos, es decir adaptamos los posibles valores de la entrada analógica A0 del potenciómetro, que varían entre 0 y 1.023 a otros proporcionales a estos que tengan unos valores mínimos de 10 y máximos de 200.

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.


Ahora vamos a utilizar el pulsador conectado en el pin 11. Cada vez que apretemos el pulsador el valor de la variable pulsador se incrementará en una unidad, desde cero, que es el valor  que se le asigna en la configuración. Mediante un condicional hacemos que si el valor de esta variable llega a cuatro se le asigne otra vez el valor uno y vuelta a empezar.

Las funciones que afectan a los leds y al motor paso a paso dependen de estos valores de la variable pulsador. Esto se consigue con tres bloques condicionales. Si pulsador vale 1, hace una cosa, si vale 2 hace otra y si vale 3 hace lo mismo que hacia en el programa anterior. Como en principio la variable pulsador vale 0 no hará otra cosa que iniciarse el motor paso a paso, para que se enciendan los leds se ha de apretar una vez el pulsador para que el valor llegue a 1.
















No hay comentarios: