S'explica el mòdul de controlador de motor DC L298N

Proveu El Nostre Instrument Per Eliminar Problemes





En aquest post aprendrem sobre el mòdul de controlador de motor CC de pont H doble L298N que es pot utilitzar per conduir motors de corrent continu i motors pas a pas amb microcontroladors i circuits integrats.

Visió general

Les plaques de circuits modulars són el millor estalvi de temps per als dissenyadors d’electrònica, que també redueixen els errors de prototipatge. Això és preferit sobretot pels programadors que escriuen codi per als microcontroladors que passen la major part del temps escrivint codis davant de l’ordinador i tenen menys temps per soldar els components electrònics discrets.



És per això que podem trobar tones i tones de circuits modulars diferents fabricats només per a plaques Arduino, és fàcil d’interfície i té l’avantatge d’errors de maquinari mínims en dissenyar el nostre prototip.

Il·lustració del mòdul L298N:

Il·lustració del mòdul L298N:



El mòdul està basat en IC L298N i està disponible normalment als llocs web de comerç electrònic.

Fem servir Controladors de motor de corrent continu perquè els circuits integrats i els microcontroladors no són capaços de subministrar corrent no superior a 100 miliamperis en general. Els microcontroladors són intel·ligents, però no són forts, aquest mòdul afegirà músculs a Arduino, ICs i altres microcontroladors per accionar motors de corrent continu d'alta potència.

Pot controlar 2 motors de CC de forma simultània fins a 2 amperis cadascun o un motor pas a pas. Podem controlar la velocitat utilitzant PWM i també la seva direcció de rotació dels motors.

Aquest mòdul és ideal per a robots de construcció i projectes de mudances terrestres com ara cotxes de joguina.

Vegem els detalls tècnics del mòdul L298N.

detalls tècnics del mòdul L298N.

Descripció del pin:

· A la part esquerra hi ha els ports OUT1 i OUT2, que serveixen per connectar el motor de corrent continu. De la mateixa manera, OUT3 i OUT4 per a un altre motor de corrent continu.

· ENA i ENB són pins d’activació, en connectar ENA a alta o + 5V permet els ports OUT1 i OUT2. Si connecteu el pin ENA a terra o baixa, desactivarà OUT1 i OUT2. De la mateixa manera, per a ENB i OUT3 i OUT4.

· IN1 a IN4 són els pins d'entrada que es connectaran a Arduino. Si introduïu IN1 + Ve i IN2 –Ve des del microcontrolador o manualment, OUT1 gira alt i OUT2 gira baix, de manera que podem accionar el motor.

· Si introduïu IN3 alt, OUT4 passa alt i si introduïu IN4 baix OUT3 torna baix, ara podem conduir un altre motor.

· Si voleu invertir la direcció de rotació del motor, inverteu la polaritat IN1 i IN2, de manera similar per a IN3 i IN4.

· Aplicant el senyal PWM a ENA i ENB podeu controlar la velocitat dels motors en dos ports de sortida diferents.

· El tauler pot acceptar nominalment de 7 a 12V. Podeu introduir energia al terminal de + 12V i connectar-lo a terra a 0V.

· El terminal + 5V és OUTPUT que es pot utilitzar per alimentar Arduino o qualsevol altre mòdul si cal.

Saltadors:

Hi ha tres passadors que podeu desplaçar cap amunt veure la imatge il·lustrada.

Tots els ponts es connectaran inicialment per treure o mantenir el pont segons les vostres necessitats.

Jumper 1 (veure imatge il·lustrada):

· Si el vostre motor necessita més de 12V d’alimentació, heu de desconnectar el pont 1 i aplicar la tensió desitjada (màxim 35V) al terminal de 12v. Porteu-ne un altre Subministrament de 5V i entrada al terminal + 5V. Sí, heu d’introduir 5V si heu d’aplicar més de 12V (quan s’elimina el pont 1).

· L'entrada de 5V serveix per al funcionament correcte de l'IC, ja que en treure el pont es desactivarà el regulador incorporat de 5v i es protegirà d'un voltatge d'entrada més alt del terminal de 12v.

· El terminal + 5V actua com a sortida si el vostre subministrament oscil·la entre 7 i 12V i actua com a entrada si apliqueu més de 12V i se suprimeix el pont.

· La majoria dels projectes només necessiten una tensió del motor inferior a 12V, per tant, manteniu el pont tal qual i utilitzeu un terminal de + 5V com a sortida.

Jumper 2 i Jumper 3 (veure imatge il·lustrada):

· Si elimineu aquests dos ponts, heu d'introduir el senyal d'activació i desactivació del microcontrolador, la majoria dels usuaris prefereixen eliminar els dos ponts i aplicar el senyal del microcontrolador.

· Si manteniu els dos ponts, sempre estarà habilitat OUT1 a OUT4. Recordeu el pont ENA per a OUT1 i OUT2. Jumper ENB per OUT3 i OUT4.

Ara anem a veure un circuit pràctic, com podem motors d'interfície, Arduino i subministrament al mòdul controlador.

Esquema:

esquema del mòdul L298N.

El circuit anterior es pot utilitzar per a cotxes de joguina, si canvieu el codi adequadament i afegiu un joystick.

Només cal alimentar el mòdul L289N i el mòdul alimentarà l'Arduino mitjançant el terminal Vin.

El circuit anterior farà girar els dos motors en sentit horari durant 3 segons i s’aturarà durant 3 segons. Després d'això, el motor girarà en sentit antihorari durant 3 segons i s'aturarà durant 3 segons. Això demostra el pont H en acció.

Després d'això, el motor començarà a girar lentament en sentit antihorari guanyant velocitat gradualment fins al màxim i reduint gradualment la velocitat a zero. Això demostra el control de velocitat dels motors per part de PWM.

Programa:

//----------------Program developed by R.GIRISH--------------//
const int Enable_A = 9
const int Enable_B = 10
const int inputA1 = 2
const int inputA2 = 3
const int inputB1 = 4
const int inputB2 = 5
void setup()
{
pinMode(Enable_A, OUTPUT)
pinMode(Enable_B, OUTPUT)
pinMode(inputA1, OUTPUT)
pinMode(inputA2, OUTPUT)
pinMode(inputB1, OUTPUT)
pinMode(inputB2, OUTPUT)
}
void loop()
{
//----Enable output A and B------//
digitalWrite(Enable_A, HIGH)
digitalWrite(Enable_B, HIGH)
//----------Run motors-----------//
digitalWrite(inputA1, HIGH)
digitalWrite(inputA2, LOW)
digitalWrite(inputB1 , HIGH)
digitalWrite(inputB2, LOW)
delay(3000)
//-------Disable Motors----------//
digitalWrite(Enable_A, LOW)
digitalWrite(Enable_B, LOW)
delay(3000)
//-------Reverse Motors----------//
digitalWrite(Enable_A, HIGH)
digitalWrite(Enable_B, HIGH)
digitalWrite(inputA1, LOW)
digitalWrite(inputA2, HIGH)
digitalWrite(inputB1 , LOW)
digitalWrite(inputB2, HIGH)
delay(3000)
//-------Disable Motors----------//
digitalWrite(Enable_A, LOW)
digitalWrite(Enable_B, LOW)
delay(3000)
//----------Speed rise----------//
for(int i = 0 i < 256 i++)
{
analogWrite(Enable_A, i)
analogWrite(Enable_B, i)
delay(40)
}
//----------Speed fall----------//
for(int j = 256 j > 0 j--)
{
analogWrite(Enable_A, j)
analogWrite(Enable_B, j)
delay(40)
}
//-------Disable Motors----------//
digitalWrite(Enable_A, LOW)
digitalWrite(Enable_B, LOW)
delay(3000)
}
//----------------Program developed by R.GIRISH--------------//

Prototip de l'autor:

Prototip Arduino de circuit de controlador de motor mitjançant el mòdul L298N.

Si teniu cap pregunta sobre aquest projecte de controlador de motor DC L298N, no dubteu a expressar-ho a la secció de comentaris, és possible que rebeu una resposta ràpida.




Anterior: Circuit de carregador de bateria múltiple amb condensador de bolcat Següent: Cotxe RC controlat per joystick de 2,4 GHz amb Arduino