En el siguiente tutorial veremos como controlar motores de CC con la IceZUM Alhambra.
Para ello nos vamos a ayudar del L293D de STMicro. Si habéis trasteado un poco con Arduino seguro que conocéis este circuito integrado.
El L293D es un driver para cargas inductivas tales como relés, solenoides, motores de CC y paso a paso. Se puede alimentar hasta 36V y suministra un máximo de 600 mA.
Con las entradas EN1, IN1, IN2 se controla el motor conectado en A+, A-. Con EN2, IN3, IN4, se controla el motor conectado en B+, B-.
EN1 habilita el motor conectado en A+, A-. Debe estar a 1.
El sentido de giro se controla mediante las entradas IN1 y IN2 dependiendo de cual de las dos está a 1. Solo puede estar activa una de las dos entradas para que el motor funcione. Si las dos están a 1 ó a 0 el motor no gira.
VCC2 es la alimentación del motor, máximo 36V. VCC1 es la alimentación para las señales lógicas del integrado, se conecta a +5V.
Los pines GND1 a GND4 se conectan a masa y sirven para disipar el calor generado por el circuito.
En este primer ejemplo el motor gira siempre en el mismo sentido, el encendido lo controlamos con el pulsador SW1.
Con los 5V de la IceZUM alimentamos la lógica interna del L293D.
Como el motor es de 12V, conectamos una fuente externa de ese valor en VCC2 y unimos las masas GND1-4 con la masa de la fuente y con la masa de la IceZUM Alhambra.
De acuerdo con la tabla de la verdad, el driver se habilita cuando pulsamos SW1 y al colocar una puerta NOT en IN1 conseguimos que solo una de las entradas esté a 1 cada vez. Por contra el motor gira siempre en el mismo sentido, si queremos invertir el giro hay que poner la puerta NOT en la entrada IN2 y conectar IN1 directamente a SW1.
Ahora controlaremos el sentido de giro del motor mediante los pulsadores internos de la IceZUM Alhambra. Según pulsemos SW1 o SW2 el motor gira en un sentido o en otro.
El esquema de conexión es el mismo que en el ejercicio 1.
Para controlar el sentido de giro del motor tenemos que poner a 1 IN1 o IN2, pero solo una de las dos, según queramos que el motor gire en un sentido o en otro.
Para activar las señales IN1 e IN2 vamos a utilizar un multiplexor. El multiplexor tiene en sus entradas los números 1 y 2, en binario 10 y 01. Dependiendo del valor de la entrada SEL, la salida del multiplexor será 10 o 01. Estos dos bits los tenemos en los pines D13 y D12 que a su vez están conectados a IN1 e IN2.
La puerta XOR es para que solo uno de los dos pulsadores esté activo. Si accidentalmente se pulsan los dos a la vez la salida de la puerta es 0 y el driver no se habilita.
Las puertas AND y NAND actúan como interruptores dejando pasar la señal del pulsador solo si hay uno pulsado. Mira el tutorial 11 de Obijuan para más info sobre puertas AND.
Si pulsamos SW1 en la puerta AND tenemos un 1 que pasará a través de la puerta OR hasta la entrada de selección del multiplexor, poniendo los bits 10 en los pines D13 y D12.
Si pulsamos SW2 en la puerta NAND tenemos un 0 que pasará a través de la puerta OR hasta la entrada de selección del multiplexor, poniendo los bits 01 en los pines D13 y D12.
Las puertas AND colocadas entre el multiplexor y D13, D12 actúan de nuevo como interruptores; los bits de salida del multiplexor solo llegan a D13 y D12 cuando pulsamos SW1 o SW2.
En los siguientes ejercicios vamos a implementar un circuito Marcha-Paro, al que después vamos a añadir dos finales de carrera.
Con los dos pulsadores internos de la IceZUM vamos a implementar un sencillo circuito Marcha-Paro.
La realimentación desde la puerta AND hacia la puerta OR del circuito de marcha, hace que el motor siga funcionando aunque soltemos el pulsador.
Para probar el funcionamiento vamos a usar uno de los ledes de la tarjeta.
Una vez verificado el correcto funcionamiento del circuito, lo modificamos para controlar el L293D mediante las salidas D13, D12 y D11.
Vamos a añadir el circuito Marcha-Paro al circuito del ejemplo 2.
La orden de Marcha se da con los pulsadores SW1 o SW2 dependiendo de hacia donde queramos que se mueva el motor.
Igual que en los circuitos anteriores, la puerta XOR es la encargada de poner a 1 la señal ENABLE del L293D y habilita las puertas AND que dan paso a las señales de control IN1 e IN2.
Ahora vamos a añadir dos finales de carrera uno a la derecha y otro a la izquierda, que detendrán el motor cuando éste alcance el final de carrera correspondiente.
El funcionamiento de los finales de carrera es el siguiente. Cada final de carrera se activa solo si el motor está girando en el sentido que corresponde, es decir, si el motor gira a derechas, no va a alcanzar nunca el FC de la izquierda, luego aunque accidentalmente se pise dicho FC, no va a tener ningún efecto.
Esto se consigue de nuevo utilizando puertas AND. Estas puertas solo dejan pasar la señal del FC si está girando en el sentido correcto ¿y cómo sabemos en qué sentido gira el motor? Pues muy fácil, dependiendo del valor de IN1 e IN2; la que esté a 1 nos indica en qué sentido gira el motor.
Si se dan esas dos condiciones - que gire en el sentido correcto y se pise el final de carrera- la señal de paro pasa a través de la puerta NOR del circuito de paro que hemos añadido, poniendo a cero la señal ENABLE y las dos señales de control IN1 e IN2.
Si estando girando el motor a derechas pulsamos el pulsador de marcha a izquierdas -y viceversa- el motor se detiene y no se pone en marcha hasta que accionemos el pulsador de Paro y luego el de marcha.
En cualquier caso, antes de cambiar el sentido de giro, hay que detener el motor con el pulsador de Paro.
Si hemos alcanzado el final de carrera de la izquierda, aunque demos marcha a izquierdas el motor no gira. Esto también es válido para el FC de la derecha.
He convertido los sketch de Icestudio de los ejercicios 3, 4 y 5 en bloques, de esta manera los podemos añadir a una colección y usar con mayor comodidad en nuestros proyectos. Los puedes descargar al final de la página.
Descarga los sketch y los bloques de Icestudio de los ejercicios 3, 4 y 5 aquí.
Crea tus propios bloques de Icestudio siguiendo este tutorial.
Cómo conectar pulsadores e interruptores en la IceZUM Alhambra.
Colección de tutoriales de Obijuan en GitHub y en YouTube
Consigue tu IceZUM Alhambra en alhambrabits.com