En aquest tutorial farem una interfície d'un motor de corrent continu amb Arduino UNO i controlarem la seva velocitat mitjançant el concepte PWM (Pulse Width Modulation). Aquesta característica està habilitada a UNO per obtenir tensió variable sobre tensió constant. El mètode de PWM s’explica aquí; considereu un circuit senzill com es mostra a la figura.

Si es prem el botó si apareix la figura, el motor començarà a girar i estarà en moviment fins que es prem el botó. Aquest premsat és continu i es representa a la primera onada de figura. Si, en un cas, considereu que el botó Consider es prem durant 8 ms i s’obre durant 2 ms durant un cicle de 10 ms, durant aquest cas el motor no experimentarà la tensió completa de la bateria de 9 V, ja que el botó només es prem durant 8 ms, de manera que la tensió del terminal RMS el motor rondarà els 7V. A causa d’aquesta tensió RMS reduïda, el motor girarà però a una velocitat reduïda. Ara, la mitjana d’activació durant un període de 10 ms = Temps d’activació / (Temps d’activació + Temps d’activació), s’anomena cicle de treball i és del 80% (8 / (8 + 2)).
En el segon i tercer cas, el botó es prem encara menys temps en comparació amb el primer cas. A causa d'això, la tensió del terminal RMS als terminals del motor fins i tot disminueix encara més. A causa d'aquesta tensió reduïda, la velocitat del motor fins i tot disminueix encara més. Aquesta disminució de la velocitat amb el cicle de treball continuat es produeix fins a un punt en què la tensió del terminal del motor no serà suficient per fer girar el motor.
Així, doncs, podem concloure que el PWM es pot utilitzar per variar la velocitat del motor.
Abans d’anar més enllà, hem de parlar de l’H-BRIDGE. Ara aquest circuit té principalment dues funcions, la primera és conduir un motor de corrent continu a partir de senyals de control de baixa potència i l’altra és canviar el sentit de rotació del motor de corrent continu.

figura 1

Figura 2

Tots sabem que per a un motor de corrent continu, per canviar el sentit de rotació, hem de canviar les polaritats de la tensió d’alimentació del motor. Per tant, per canviar les polaritats fem servir el pont H. Ara a la figura 1 anterior tenim quatre interruptors. Com es mostra a la figura 2, perquè el motor giri A1 i A2 estan tancats. Per això, el corrent circula pel motor de dreta a esquerra, tal com es mostra a la segona part de la figura 3. De moment, considerem que el motor gira en sentit horari. Ara, si els commutadors A1 i A2 s’obren, es tancaran B1 i B2. El corrent a través del motor flueix d’esquerra a dreta com es mostra a la 1a part de la figura3. Aquesta direcció del flux de corrent és oposada a la primera i, per tant, veiem un potencial oposat al terminal del motor al primer, de manera que el motor gira contra el rellotge. Així funciona un H-BRIDGE. No obstant això, els motors de baixa potència poden ser accionats per un H-BRIDGE IC L293D.
L293D és un CI H-BRIDGE dissenyat per conduir motors de baixa potència de CC i es mostra a la figura. Aquest CI consta de dos ponts h i, per tant, pot accionar dos motors de corrent continu. Per tant, aquest CI es pot utilitzar per conduir motors del robot des dels senyals del microcontrolador.

Ara, com s'ha comentat abans, aquest CI té la capacitat de canviar el sentit de rotació del motor de corrent continu. Això s’aconsegueix controlant els nivells de tensió a INPUT1 i INPUT2.
|
Activa Pin |
Pin d'entrada 1 |
Pin d'entrada 2 |
Direcció del motor |
|
Alt |
baix |
Alt |
Giri a la dreta |
|
Alt |
Alt |
baix |
Giri a l'esquerra |
|
Alt |
baix |
baix |
Atura |
|
Alt |
Alt |
Alt |
Atura |
Per tant, tal com es mostra a la figura anterior, per a la rotació en sentit horari, 2A ha de ser alt i 1A ha de ser baix. De manera similar, en sentit antihorari, 1A ha de ser alt i 2A ha de ser baix.

Com es mostra a la figura, Arduino UNO té canals 6PWM, de manera que podem obtenir PWM (voltatge variable) en qualsevol d’aquests sis pins. En aquest tutorial utilitzarem PIN3 com a sortida PWM.
Maquinari: ARDUINO UNO, font d'alimentació (5v), condensador 100uF, LED, botons (dues peces), resistència de 10KΩ (dues peces).
Programari: arduino IDE (Arduino nightly).
Esquema de connexions

El circuit està connectat en una placa de control segons el diagrama de circuits que es mostra més amunt. No obstant això, cal parar atenció durant la connexió dels terminals LED. Tot i que els botons mostren efectes de rebot en aquest cas, no causen errors considerables, de manera que no ens hem de preocupar aquesta vegada.
El PWM d’UNO és fàcil, en ocasions normals no és fàcil configurar un controlador ATMEGA per al senyal PWM, hem de definir molts registres i configuracions per obtenir un senyal precís, però a ARDUINO no hem de tractar totes aquestes coses.
Per defecte, tots els fitxers i registres de capçalera estan predefinits per IDE ARDUINO, simplement els hem de trucar i ja tindrem una sortida PWM al pin adequat.
Ara per obtenir una sortida PWM en un pin adequat, hem de treballar en tres coses,
|
Primer hem de triar el pin de sortida PWM entre sis pins, després hem de configurar aquest pin com a sortida.
A continuació, hem d'activar la característica PWM d'UNO trucant a la funció "analogWrite (pin, valor)". Aquí 'pin' representa el número de pin on necessitem la sortida PWM, el posem com a '3'. Així doncs, a PIN3 obtenim una sortida PWM.
El valor és el cicle de treball d’activació, entre 0 (sempre apagat) i 255 (sempre activat). Incrementarem i disminuirem aquest número prement el botó.
L'ONU té una resolució màxima de "8", no es pot anar més enllà d'aquí els valors de 0-255. Tanmateix, es pot reduir la resolució de PWM mitjançant l'ordre "analogWriteResolution ()", introduint un valor entre 4-8 entre claudàtors, podem canviar el seu valor de PWM de quatre bits a PWM de vuit bits.
El commutador és canviar el sentit de rotació del motor de corrent continu.
