El módulo L298N es una placa de desarrollo basada en el CI L298N para accionar motores de corriente continua o motores paso a paso. Ya hemos visto el uso del puente H. Se trata de un módulo cómodo de utilizar con diferentes prestaciones en función de los componentes utilizados. Veremos en este tutorial el uso del módulo L298N con un microcontrolador Arduino.
Material
- Ordenador
- Arduino UNO (u otro microcontrolador)
- Cable USB A Macho/B Macho
- Módulo L298N
Principio de funcionamiento
El módulo L298N se basa en el circuito integrado del mismo nombre. El circuito L298N es un doble puente H que permite cambiar la dirección y la intensidad de la tensión en el terminal de dos cargas eléctricas.
Las características del módulo L298N son:
- Control del motor de 5 a 35 V de tensión nominal
- 2A de corriente máxima (pico)
- Tensión de 5V aceptada en los pines de entrada
Diagrama de cableado
El módulo L298N se alimenta de una fuente de tensión externa. Cada medio puente requiere 3 pines de salida de un microcontrolador.
- GND Tierra del CI conectada a la tierra del microcontrolador y a la tierra de la fuente de alimentación
- Habilitación ENA del motor M1 conectada al pin 2
- Input1 Dirección frontal del motor M1 conectada al pin 3
- Input2 dirección trasera del motor M1 conectada al pin 5
- ENB habilitación del motor M2 conectado a la clavija 4
- Input3 dirección frontal del motor M2 conectada al pin 6
- Input4 dirección trasera del motor M2 conectada al pin 9
En algunos modelos de este módulo, es posible añadir dos puentes para conectar directamente los pines de habilitación (ENA y ENB) a 5V. Esto permite activar siempre el puente H y guardar dos salidas del microcontrolador
Código de gestión del módulo L298N
Para utilizar el módulo L298N, es necesario activar el puente H aplicando una tensión de 5V al pin EN. A continuación, envíe una señal PWM al pin Forward (Input1/4) o Reverse (Input2/3) para controlar el sentido y la velocidad de rotación. El sentido de giro hacia delante o hacia atrás depende del sentido de la conexión del motor.
//Constants #define nbL298N 2 //Parameters const int enaL298NPin[2] = {2, 4}; const int fwdL298NPin[2] = {3, 5}; const int bwdL298NPin[2] = {6, 9}; //Variables int Power = 200; void setup() { //Init Serial USB Serial.begin(9600); Serial.println(F("Initialize System")); //Init DCmotor for (int i = 0; i < nbL298N; i++) { pinMode(fwdL298NPin[i], OUTPUT); pinMode(bwdL298NPin[i], OUTPUT); pinMode(enaL298NPin[i], OUTPUT); } } void loop() { testL298N(); } void testL298N() { /* function testL298N */ ////Scenario to test H-Bridge for (int i = 0; i < nbL298N; i++) { digitalWrite(enaL298NPin[i], HIGH); analogWrite(bwdL298NPin[i], 0); for (int j = 0; j <= Power; j = j + 10) { analogWrite(fwdL298NPin[i], j); delay(20); } for (int j = Power; j >= 0; j = j - 10) { analogWrite(fwdL298NPin[i], j); delay(20); } delay(2000); } }
Resultado
Una vez cargado el código, deberías ver los motores funcionando en una dirección y luego en la otra.
Aplicaciones
- Controla la velocidad y el sentido de giro de dos motores de corriente continua o de un motor paso a paso
Fuentes
Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie