Arduino UNO R4 - Motor de corriente continua
En esta guía, aprenderemos cómo usar el Arduino UNO R4 para controlar el motor de corriente continua. En detalle, aprenderemos:
- Cómo funciona un motor de corriente continua
- Cómo controlar la velocidad y la dirección de un motor de corriente continua.
- Cómo controlar un motor de corriente continua con un controlador L298N

Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca del motor de corriente continua
Pinout del motor de corriente continua
Un motor de corriente continua tiene dos cables.
- Cable positivo: suele ser rojo
- Cable negativo: suele ser negro

Cómo funciona
Cuando compras un motor de corriente continua, es importante entender a qué voltaje opera. Por ejemplo, considera un motor de corriente continua que funciona a 12 voltios. Cuando conectas el motor de 12 V a una fuente de alimentación de 12 V:
- Conecta 12V al cable positivo y GND al cable negativo: el motor DC girará a la máxima velocidad en sentido horario.
- Conecta 12V al cable negativo y GND al cable positivo: el motor DC girará a la máxima velocidad en sentido antihorario.
Cuando cambias las conexiones de dos cables del motor de corriente continua, la dirección de giro cambia. Esta técnica ayuda a controlar la dirección del motor de corriente continua. Esto no se hace a mano, sino mediante programación.
Si damos menos de 12 V a motores de corriente continua, el motor gira, pero no a plena velocidad. Esto demuestra que cambiar el voltaje cambia la velocidad del motor. Pero ajustar directamente el voltaje es difícil en la práctica. Por lo tanto, existe un método más sencillo para controlar la velocidad de un motor de corriente continua. Mantenemos constante el voltaje de la fuente de alimentación y usamos una señal PWM (modulación por ancho de pulso) para controlar la velocidad del motor. Con un ciclo de trabajo PWM mayor, el motor gira más rápido, y viceversa.

Cómo controlar un motor de corriente continua con Arduino UNO R4
Para controlar un motor de corriente continua, necesitas controlar su velocidad y su dirección. El Arduino UNO R4 puede generar una señal PWM, pero esta señal es demasiado débil en voltaje y corriente para controlar directamente el motor. Por lo tanto, es necesario un controlador de hardware para conectar el Arduino UNO R4 al motor de corriente continua. Este controlador realiza dos tareas principales:
- Aumentar la intensidad de la señal PWM desde el Arduino UNO R4 (tanto en corriente como en voltaje) para controlar la velocidad.
- Recibir la señal de control desde el Arduino UNO R4 para cambiar la polaridad de la fuente de alimentación y controlar la dirección.

※ Nota:
- Puedes usar esta guía para cualquier motor de corriente continua. Estamos usando un motor de 12 V como ejemplo.
- Cuando uses un motor de 5 V, aunque el pin del Arduino UNO R4 entregue 5 V (la misma tensión que el motor de corriente continua), aún necesitas un controlador entre el Arduino UNO R4 y el motor de corriente continua. Esto se debe a que el pin del Arduino UNO R4 no puede suministrar suficiente corriente para el motor de corriente continua.
Este tutorial utilizará el controlador L298N para controlar motores de corriente continua.
Acerca del controlador L298N
En esta guía, aprenderemos a usar el controlador L298N para controlar un motor de corriente continua.
Pinout del controlador L298N

El controlador L298N puede controlar de forma independiente dos motores DC al mismo tiempo, llamados motor A y motor B. Tiene 13 pines.
Los pines comunes para ambos motores:
- Pin VCC: suministra energía al motor. El voltaje puede oscilar entre 5 y 35 V.
- Pin GND: este es un pin de tierra común y debe conectarse a GND (0 V).
- Pin 5V: alimenta el módulo L298N. Puede usar 5 V suministrados por un Arduino UNO R4.
Pines del Motor A (Canal A):
- Pines ENA: Estos controlan la velocidad del Motor A. Para ajustar la velocidad, retire el puente y conecte el pin ENA a una entrada PWM.
- Pines IN1 e IN2: Estos determinan la dirección en la que gira el Motor A. Si uno de los pines está en ALTO y el otro en BAJO, el Motor A girará. Si ambos pines están en ALTO o en BAJO, el Motor A se detendrá.
- Pines OUT1 y OUT2: Estos están conectados al Motor A.
Pines del motor B (Canal B):
- Pines ENB: Estos controlan la velocidad del Motor B. Si quita el puente y conecta estos pines a una entrada PWM, puede ajustar la velocidad a la que gira el Motor B.
- Pines IN3 e IN4: Estos controlan la dirección en la que gira el Motor B. Si IN3 está en ALTO y IN4 en BAJO, o viceversa, el Motor B girará. Si ambos están en ALTO o ambos en BAJO, el Motor B se detendrá.
- Pines OUT3 y OUT4: Estos están conectados al Motor B.
El controlador L298N mencionado anteriormente tiene dos tipos de fuente de alimentación:
- Uno para el motor de corriente continua (pines VCC y GND): de 5 a 35 V.
- Uno para alimentar el propio módulo L298N (pines 5V y GND): de 5 a 7 V.
El controlador L298N tiene tres jumpers para usos más complejos. Para simplificar, por favor retire todos los jumpers del controlador L298N.
Podemos controlar dos motores de corriente continua al mismo tiempo usando un Arduino UNO R4 y un controlador L298N. Para controlar cada motor, usamos tres pines del Arduino UNO R4.
※ Nota:
Este tutorial te mostrará cómo controlar un motor de CC utilizando el canal A. El control de otro motor de CC se realiza de manera similar.
Diagrama de Cableado
Retira los tres jumpers del módulo L298N antes de empezar el cableado.

This image is created using Fritzing. Click to enlarge image
Ver La mejor forma de alimentar Arduino Uno R4 y otros componentes.
Cómo controlar la velocidad de un motor de corriente continua mediante el controlador L298N
Puedes ajustar fácilmente la velocidad del motor de corriente continua enviando una señal PWM al pin ENA del L298N. Así se hace:
- Conecta un pin del Arduino UNO R4 al pin ENA del módulo L298N.
- Utiliza la función analogWrite() para enviar una señal PWM al pin ENA. El controlador L298N aumentará la intensidad de esa señal PWM para alimentar el motor de corriente continua.
La velocidad puede ser cualquier número entre 0 y 255. A una velocidad de 0, el motor se detendrá. A una velocidad de 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 dirección en la que gira un motor puede cambiarse configurando los pines IN1 e IN2 a ALTO o BAJO. La tabla a continuación muestra cómo controlar la dirección para 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 |
- Motor A gira en sentido horario.
- Motor A gira en sentido antihorario
※ Nota:
Si conectas los pines OUT1 y OUT2 a los terminales del motor de corriente continua de la forma opuesta, el motor girará en la dirección contraria. Para solucionarlo, simplemente invierte las posiciones de los pines OUT1 y OUT2, o cambia las señales de control en los pines IN1 e IN2 en el código del programa.
Cómo detener el giro de un motor de corriente continua
Hay dos métodos para apagar un motor de corriente continua.
- Establece la velocidad a cero.
- Establece los pines IN1 e IN2 al mismo valor (ya sea LOW o HIGH).
- O
Cómo controlar un motor de corriente continua utilizando el controlador L298N.
Código de Arduino UNO R4
El código que se muestra a continuación hace lo siguiente:
- Haz que el motor de corriente continua vaya más rápido
- Invierte la dirección
- Haz que el motor de corriente continua vaya más despacio
- Detén el motor
Pasos R\u00e1pidos
Sigue estas instrucciones paso a paso:
- Si es la primera vez que usas Arduino Uno R4 WiFi/Minima, consulta el tutorial sobre configurar el entorno para Arduino Uno R4 WiFi/Minima en el IDE de Arduino.
- Conecta los componentes de acuerdo con el diagrama proporcionado.
- Conecta la placa Arduino Uno R4 a tu computadora mediante un cable USB.
- Inicia el IDE de Arduino en tu computadora.
- Selecciona la placa adecuada de Arduino UNO R4 (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
- Retira los tres jumpers del módulo L298N.
- Pega el código en el IDE de Arduino.
- Pulsa el botón Subir en el IDE de Arduino para cargar el código en la placa Arduino UNO R4.
- Observaciones:
- El motor DC acelera, y luego gira a velocidad máxima durante 1 segundo.
- La dirección del motor DC cambia.
- El motor DC gira a velocidad máxima durante 1 segundo en la dirección opuesta.
- El motor DC desacelera.
- El motor DC se detiene durante 1 segundo.
- Esta secuencia se repite continuamente.
※ Nota:
En este tutorial, aprenderemos a ajustar la velocidad relativa de un motor de corriente continua (CC) en relación con su velocidad máxima. Para controlar la velocidad absoluta en rotaciones por segundo, debemos usar un controlador PID y un codificador. Abordaremos cómo controlar la velocidad precisa del motor de CC en un tutorial diferente.
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.