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:

Motor de corriente continua para Arduino UNO R4

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
Diagrama de pines del motor de corriente continua

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

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.
Arduino UNO R4 controla motor de corriente continua.

※ 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

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.

Diagrama de cableado del motor DC para Arduino UNO R4 con el controlador L298N

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.
analogWrite(ENA_PIN, speed); // Set motor speed on ENA_PIN, range 0-255

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.
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW);
  • Motor A gira en sentido antihorario
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH);

※ 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.
analogWrite(ENA_PIN, 0);
  • Establece los pines IN1 e IN2 al mismo valor (ya sea LOW o HIGH).
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW);
  • O
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, HIGH);

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
/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-dc-motor */ #define ENA_PIN 9 // The Arduino UNO R4 pin connected to the EN1 pin L298N #define IN1_PIN 6 // The Arduino UNO R4 pin connected to the IN1 pin L298N #define IN2_PIN 3 // The Arduino UNO R4 pin connected to the IN2 pin L298N void setup() { // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); } void loop() { digitalWrite(IN1_PIN, HIGH); // control motor A spins clockwise digitalWrite(IN2_PIN, LOW); // control motor A spins clockwise for (int speed = 0; speed <= 255; speed++) { analogWrite(ENA_PIN, speed); // control the speed delay(10); } delay(1000); // rotate at maximum speed 1 seconds in in clockwise direction // change direction digitalWrite(IN1_PIN, LOW); // control motor A spins anti-clockwise digitalWrite(IN2_PIN, HIGH); // control motor A spins anti-clockwise delay(1000); // rotate at maximum speed 1 seconds in in anti-clockwise direction for (int speed = 255; speed >= 0; speed--) { analogWrite(ENA_PIN, speed); // control the speed delay(10); } delay(1000); // stop motor 1 second }

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.

Referencias de funciones

Tutoriales Relacionados

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!