Arduino Nano - Motor de corriente continua
Este tutorial te enseña cómo usar Arduino Nano para controlar un motor de corriente continua. En detalle, aprenderemos:
- Cómo funciona un motor de corriente continua
- Cómo usar Arduino Nano y un controlador L298N para controlar un motor de corriente continua
- Cómo programar Arduino Nano para controlar la velocidad y la dirección de un motor de corriente continua
- Cómo programar Arduino Nano para controlar dos motores de corriente continua simultáneamente
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca del motor de corriente continua
Diagrama de pines del motor DC
El motor de corriente continua tiene dos cables: el positivo suele ser rojo y el negativo suele ser negro.

Cómo funciona
Al comprar un motor de corriente continua, es importante conocer el voltaje al que opera. Por ejemplo, consideremos un motor de 12 V de corriente continua.
Cuando alimentas el motor de 12 V de corriente continua con una fuente de 12 V:
- Conectar 12 V y tierra al cable positivo y al cable negativo, respectivamente: el motor de corriente continua gira a la velocidad máxima en sentido horario
- Conectar 12 V y tierra al cable negativo y al cable positivo, respectivamente: el motor de corriente continua gira a la velocidad máxima en sentido antihorario
Intercambiar el polo de alimentación entre dos cables del motor de CC invertirá su dirección de giro. Esta técnica se utiliza para controlar la dirección del motor de CC, no manualmente sino mediante programación.
Si la tensión de la fuente de alimentación para un motor de corriente continua es inferior a 12 V, el motor seguirá girando, pero no a su velocidad máxima. Por lo tanto, al ajustar la tensión de la fuente de alimentación, podemos controlar la velocidad del motor de corriente continua. Sin embargo, este enfoque no se suele utilizar debido a la dificultad de controlar la tensión de la fuente de alimentación. Como alternativa, mantenemos fija la tensión de la fuente de alimentación y controlamos la velocidad del motor de corriente continua mediante una señal PWM. Cuanto mayor sea el ciclo de trabajo de la PWM, más rápido gira el motor de corriente continua.

Cómo controlar un motor de corriente continua usando Arduino Nano
Controlar un motor de corriente continua implica dos elementos: velocidad y dirección. Arduino Nano puede generar una señal PWM, pero esta señal tiene bajo voltaje y corriente, por lo que no puede utilizarse directamente para controlar el motor. Necesitamos usar un controlador de hardware entre Arduino Nano y el motor. El controlador realiza dos tareas:
- Amplificar la señal PWM del Arduino Nano (en términos de corriente y/o voltaje) para el control de velocidad
- Recibir la señal de control desde el Arduino Nano para conmutar la polaridad de la fuente de alimentación para el control de la dirección

※ Nota:
- Este tutorial puede usarse para todos los motores de corriente continua. Tomaremos como ejemplo un motor de 12 V.
- Al controlar un motor de 5 V, aunque el pin del Arduino Nano suministra 5 V (que es el mismo voltaje que el motor), aún se requiere un controlador entre el Arduino Nano y el motor, ya que el pin del Arduino Nano no proporciona la corriente suficiente para el motor.
- Si usas un motor de 5 V, necesitas una fuente de alimentación de 5 V para el motor. Si usas un motor de 12 V, necesitas una fuente de alimentación de 12 V para el motor.
Hay muchos chips y módulos que pueden funcionar como controladores para motores de corriente continua, como el L293D y el L298N. En esta guía, utilizaremos el controlador L298N.
Acerca del controlador L298N
El controlador L298N se puede usar para manejar motores de corriente continua y motores paso a paso. Este tutorial te enseña cómo utilizarlo para controlar un motor de corriente continua.
Disposición de pines del controlador L298N

El controlador L298N es capaz de controlar dos motores de corriente continua de forma independiente al mismo tiempo, conocidos como el motor A y el motor B. Este controlador tiene trece pines.
Los pines comunes para ambos motores:
- Pin VCC: Este pin suministra energía al motor, con un rango de voltaje de 5 a 35 V.
- Pin GND: Este pin es una conexión a tierra común que debe conectarse a 0 V (GND).
- Pin 5V: Este pin suministra energía al módulo L298N y puede ser alimentado por una fuente de 5V desde un Arduino Nano.
Pines del Motor A (Canal A):
- Pines ENA: Estos pines se utilizan para regular la velocidad del Motor A. Al quitar el puente y conectar este pin a una entrada PWM, nos permitirá controlar la velocidad del Motor A.
- Pines IN1 & IN2: Estos pines se utilizan para gestionar la dirección de giro del Motor A. Cuando uno de ellos está en ALTO y el otro está en BAJO, el Motor A girará. Si ambas entradas están en ALTO o BAJO, el Motor A se detendrá.
- Pines OUT1 & OUT2: Estos pines están conectados al Motor A.
Pines del Motor B (Canal B):
- Pines ENB: Estos pines se pueden usar para controlar la velocidad del Motor B. Al quitar el jumper y conectarlos a la entrada PWM, podemos ajustar la velocidad del Motor B.
- Pines IN3 e IN4: Estos pines se utilizan para gestionar la dirección de giro del Motor B. Cuando uno de ellos está en ALTO mientras el otro está en BAJO, el Motor B girará. Si ambas entradas están en ALTO o en BAJO, el Motor B dejará de moverse.
- Pines OUT3 y OUT4: Estos pines están conectados al Motor B.
El controlador L298N tiene dos entradas de alimentación:
- Una para el motor de corriente continua, con un rango de voltaje de 5 a 35 V (pines VCC y GND).
- Una para el funcionamiento interno del módulo L298N, con un rango de voltaje de 5 a 7 V (pines 5 V y GND).
Retire todos los puentes del controlador L298N para simplificar.
También podemos controlar dos motores de corriente continua por separado y de forma simultánea utilizando un Arduino Nano y un controlador L298N. Para manipular cada motor, solo necesitamos tres pines del Arduino Nano.
※ Nota:
El resto de este tutorial se centrará en el control de un motor de CC utilizando el canal A. Se deben seguir pasos similares para controlar el otro motor de CC.
Cómo controlar la velocidad de un motor de corriente continua a través del controlador L298N
Es fácil controlar la velocidad de un motor de corriente continua produciendo una señal PWM en el pin ENA del L298N. Para hacer esto:
- Conecta un pin del Arduino Nano al ENA del L298N
- Genera una señal PWM al pin ENA mediante la función analogWrite(). El controlador L298N amplificará la señal PWM al motor DC.
La velocidad es un número que va de 0 a 255. Cuando la velocidad es 0, el motor dejará de moverse. Cuando la velocidad es 255, el motor girará a su velocidad máxima.
Cómo controlar la dirección de un motor de corriente continua mediante el controlador L298N
La rotación de un motor puede controlarse aplicando un nivel lógico alto o bajo a los pines IN1 e IN2. La tabla siguiente muestra cómo controlar la dirección en ambos canales.
| IN1 pin | IN2 pin | Direction |
|---|---|---|
| LOW | LOW | Motor A stops |
| HIGH | HIGH | Motor A stops |
| HIGH | LOW | Motor A spins Clockwise |
| LOW | HIGH | Motor A spins Anti-Clockwise |
En consecuencia:
- Código de Arduino para hacer que el motor A gire en sentido horario.
- Código de Arduino para hacer que el motor A gire en sentido antihorario.
※ Nota:
La dirección en sentido horario/antihorario del motor de corriente continua puede invertirse conectando los pines OUT1 y OUT2 a dos pines del motor de forma opuesta.
Cómo detener el giro de un motor de corriente continua
Dos métodos para detener un motor de corriente continua:
- Reducir su velocidad a cero
- Configura los pines IN1 e IN2 al mismo valor, ya sea bajo o alto.
- O
Cómo controlar un motor de corriente continua usando el controlador L298N.
Diagrama de cableado
Saque los tres jumpers del módulo L298N antes de conectar los cables.

This image is created using Fritzing. Click to enlarge image
Ver La mejor forma de alimentar Arduino Nano y otros componentes.
Código de Arduino Nano
El código siguiente realiza lo siguiente, uno por uno:
- Aumenta la velocidad de un motor de corriente continua
- Cambia la dirección
- Disminuye la velocidad de un motor de corriente continua
- Detiene el motor de corriente continua
Pasos R\u00e1pidos
- Quita los tres puentes del módulo L298N.
- Copia el código y ábrelo en el IDE de Arduino.
- Haz clic en el botón Subir del IDE de Arduino para subir el código al Arduino Nano.
- Deberías observar:
- El motor de corriente continua acelerará y luego girará a su velocidad máxima durante 1 segundo.
- La dirección del motor de corriente continua cambiará.
- El motor de corriente continua girará a su velocidad máxima durante 1 segundo en la dirección opuesta.
- El motor de corriente continua se ralentizará.
- El motor de corriente continua se detendrá durante 1 segundo.
- Este proceso se repetirá continuamente.
※ Nota:
Este tutorial le enseña cómo ajustar la velocidad de un motor de corriente continua respecto a su velocidad máxima. Para controlar la velocidad absoluta (en revoluciones por segundo), necesitaremos usar un controlador PID y un codificador. Un tutorial separado cubrirá el control de la velocidad absoluta del motor de corriente continua.
Cómo controlar dos motores de corriente continua usando el controlador L298N
¡Próximamente!
Video Tutorial
Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.