Qué es un motor de corriente continua en Arduino
Un motor de corriente continua (DC) es un dispositivo que convierte energía eléctrica en energía mecánica, generando un movimiento rotatorio. En el contexto de Arduino, los motores DC son esenciales para construir robots móviles, actuadores y otros proyectos que requieren movimiento controlado.
Componentes de un Motor DC
Un motor DC se compone de dos partes principales:
- Estator : La carcasa exterior que genera un campo magnético.
- Rotor : La parte interior que gira, alimentada por corriente directa a través de delgas que están en contacto con escobillas fijas.
Control de Motores DC con Arduino
Arduino, por sí solo, no puede alimentar directamente un motor DC. Se necesita un circuito intermedio llamado driver de motores. Este circuito toma energía de una fuente externa (batería) y, siguiendo las instrucciones de Arduino, controla el motor.
Características de un Driver de Motores
Un buen driver de motores debe cumplir con las siguientes características:
- Inversión de sentido de giro : Permitir cambiar la dirección de rotación del motor.
- Control de velocidad : Permitir ajustar la velocidad de rotación del motor.
Puentes H
El circuito básico que permite la inversión de sentido y el control de velocidad es un puente H. Un puente H utiliza interruptores para cambiar la polaridad del voltaje aplicado al motor, controlando así su dirección de giro.
Señales PWM
Arduino no puede ajustar directamente la tensión que sale por un pin, pero puede generar señales PWM (Modulación de Ancho de Pulso), que simulan una tensión menor. Estas señales son esenciales para controlar la velocidad de los motores DC a través de un puente H.
Librerías de Programación
Para simplificar la programación de los motores DC, existen librerías de Arduino que permiten controlar los drivers con instrucciones sencillas. Algunas de las librerías más comunes son:
- L9110 : Para drivers pequeños como el L9110, que controlan motores de baja potencia.
- L298N : Para drivers más potentes como el L298N, que pueden controlar motores de mayor consumo.
- TB6612FNG : Un driver pequeño pero potente, ideal para proyectos de robótica.
- DRV8835 : Un driver similar al L9110, con mayor capacidad de corriente.
Conexionado General
Un driver de motores tiene varios cables que se conectan a Arduino (líneas de control), una entrada de alimentación (línea de potencia) y las líneas que van a los motores.
Características de los Drivers
Al elegir un driver, se deben considerar los siguientes factores:
- Número de motores : La cantidad de motores que se pueden controlar con el driver.
- Potencia : La capacidad del driver para proporcionar la potencia necesaria para los motores.
- Voltaje de alimentación : La tensión de alimentación requerida por los motores.
Drivers más utilizados en Proyectos DIY/DIWO
A continuación, se detallan algunos de los drivers más populares en proyectos de robótica casera:

L9110
Un driver pequeño que puede controlar motores de 5 a 12 voltios y con un consumo máximo de 800 mA. Se utiliza comúnmente en placas con dos unidades para controlar dos motores.
L298N
Un driver potente que puede controlar motores de 6 a 50 voltios y con un consumo máximo de 2 A. Se utiliza en proyectos que requieren mayor potencia.
L293D
Un driver que puede controlar dos motores entre 5 y 25 voltios, con un consumo máximo de 600 mA. Se puede encontrar en placas independientes, shields y como integrado suelto.
TB6612FNG
Un driver pequeño pero potente que puede controlar dos motores entre 5 y 15 voltios, con un consumo máximo de 1 A.
DRV8835
Un driver similar al L9110, con mayor capacidad de corriente (2A). Se utiliza en shields como la Zumo de Pololu.
Ejemplos de Código
Para controlar un motor DC con un driver L9110, se puede utilizar el siguiente código:
#includeL9110 robot(3, 5, 6, 9); // A-IA, A-IB, B-IA, B-IB void setup() { // Inicializar el driver } void loop() { // Mover el motor hacia adelante robot.forward(128, 128, 1000); // Esperar un tiempo delay(1000); // Mover el motor hacia atrás robot.reverse(128, 128, 1000); // Esperar un tiempo delay(1000); }
Este código utiliza la librería L9110 para controlar un motor conectado al driver. Las funciones forward() y reverse() controlan el movimiento del motor, mientras que la función delay() establece el tiempo de espera.
El control de motores DC con Arduino es una parte fundamental de la robótica y la automatización. Al comprender los principios básicos de los drivers, las señales PWM y las librerías de programación, puedes crear proyectos de robótica innovadores y funcionales.
Si quieres conocer otros artículos parecidos a Control de motores dc con arduino puedes visitar la categoría Motor.
