La placa L9110S está diseñada para que los microcontroladores o circuitos lógicos puedan controlar con sencillez motores de corriente continua.
El circuito está diseñado en base al chip controlador L9110, fabricado en la clásica cápsula DIP8 o en un diseño SOP8 SMD y basado en transistores MOSFET.
La tensión de alimentación para los motores puede variar de 2,5 a 12 V.
Como se observa en el siguiente diagrama, el control con el cableado típico no requiere componentes adicionales.
Las entradas se pueden conectar directamente al microcontrolador. Si se conectan a un circuito que tiene salidas OC (Open Colector, o Colector Abierto) se requiere una resistencia pull-up conectada a la alimentación de 5V. Si bien en la hoja de datos del chip indica que el valor adecuado es ?1 k?, el módulo en sí incluye en su circuito resistores de 10 k? conectados al voltaje de alimentación de la lógica, o Vcc.
El circuito tiene dos entradas: una que puesta en ALTO hará que el motor avance, y una que puesta en ALTO hará que retroceda. Si se desea que el motor esté detenido, ambas entradas deben estar en el mismo valor: las dos en estado BAJO (LOW), o ambas en estado alto (HIGH). La placa tiene dos salidas, con bornera, que se conectan directamente al motor.
Las entradas que no se conectan a un circuito son tomadas como nivel BAJO (L, o Low) sin que ingrese ruido. Con un nivel ALTO (H, o HIGH), la corriente en esa entrada será de alrededor de 1 mA. El nivel de tensión para que el chip detecte la entrada en estado lógico BAJO o L es como máximo de 0,7 V.
Típicamente, para el nivel ALTO o H, la tensión en el pin de entrada debe ser de alrededor de la mitad del valor de alimentación o más (hasta, como máximo, el valor de la tensión de alimentación).
La corriente del motor se puede mantener constantemente desde 0,75 hasta 0,8 A (750 a 800 mA), y el circuito soporta picos de 1,5 a 2 A.
La hoja de datos ofrece una lista de los valores lógicos de las entradas y salidas.
Esta tabla se puede ampliar para situaciones no típicas. Si sólo hay una entrada en el nivel H y la otra está en nivel L, el motor gira. Pero si ambas entradas están en H, o ambas entradas están en L, las salidas están en un tercer estado, o “flotante” (ningún voltaje), y no ambas en 0 volt, o “L”, como se muestra en la tabla.
Las salidas están conectadas internamente a diodos que protegen al circuito de los pulsos de contracorriente.
El L9110 gestiona dinámicamente frecuencias de hasta 40 kHz, mientras que el tiempo de conmutación más breve para la regulación por ancho de pulso (PWM) es de alrededor de 15 uS.
Diagrama de conexiones
Diagrama eléctrico
Ejemplo práctico para controlar un robot
Ejemplo de programa para Arduino: prueba de movimientos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
/* L9110 motor driver controlando 2 motores CC COPIAR Y PEGAR SOBRE EL SKETCH DE ARDUINO */ const int AIA = 6; // (pwm) pin 6 conectado a pin A-IA const int AIB = 5; // (pwm) pin 5 conectado a pin A-IB const int BIA = 10; // (pwm) pin 10 conectado a pin B-IA const int BIB = 9; // (pwm) pin 9 conectado a pin B-IB byte velocidad = 160; // cambie este valor (100 a 255) para controlar // la velocidad de los motores void setup() { pinMode(AIA, OUTPUT); // fijar los pines como salidas pinMode(AIB, OUTPUT); pinMode(BIA, OUTPUT); pinMode(BIB, OUTPUT); } void loop() { izquierda(); delay(2000); derecha(); delay(2000); avanzar(); delay(500); retroceder(); delay(1000); avanzar(); delay(500); } void avanzar() { analogWrite(AIA, 0); analogWrite(AIB, velocidad); analogWrite(BIA, 0); analogWrite(BIB, velocidad); } void retroceder() { analogWrite(AIA, velocidad); analogWrite(AIB, 0); analogWrite(BIA, velocidad); analogWrite(BIB, 0); } void izquierda() { analogWrite(AIA, velocidad); analogWrite(AIB, 0); analogWrite(BIA, 0); analogWrite(BIB, velocidad); } void derecha() { analogWrite(AIA, 0); analogWrite(AIB, velocidad); analogWrite(BIA, velocidad); analogWrite(BIB, 0); } |
L9110S como amplificador de sonido para su robot
El control de un motor no es la única aplicación posible. El circuito también se puede utilizar como un sustituto de amplificador de potencia para una salida de audio digital de un microcontrolador.
En lugar de conmutar corriente a través del parlante como se realiza habitualmente, con un transistor, este circuito proporciona una doble amplitud de los impulsos de salida y, por lo tanto, aporta una potencia significativamente mayor.
Para una fuente de alimentación de 5 V es conveniente conectar un altavoz con una impedancia de 8 ? (o superior), mientras que con una entrada de 3 voltios puede utilizarse un altavoz adaptado a un voltaje menor. Para controlar el altavoz es necesario utilizar dos salidas en las que el nivel H alternará en cada media onda de la frecuencia del sonido.
En la siguiente figura hay una conexión que es normal con una salida, y funciona bien de 5 Hz a aproximadamente 30 kHz. Es importante mantener la condición de salida del microcontrolador en un nivel H cuando no se emite sonido, de lo contrario circulará corriente constante por el parlante.
Artículos relacionados:
• Uso de la placa L298N para motores de CC
• Puente H: Placa controladora de motores L9110S
• Guía rápida de placas de control de motores
• Manejo de potencia para motores con el integrado L293D
• Control de motores de CC por Ancho de Pulso (PWM)
Pingback: Guía rápida de placas de control de motores | Robots Didácticos
Pingback: Control de motores de CC por Ancho de Pulso (PWM) | Robots Didácticos
Pingback: Uso de la placa L298N para motores de CC | Robots Didácticos