- Modulació d'amplada de pols:
- Material requerit
- Esquema de connexions
- Codi i explicació
- Control de velocitat del motor de corrent continu mitjançant Arduino
El motor de corrent continu és el motor més utilitzat en projectes de robòtica i electrònica. Per controlar la velocitat del motor de corrent continu tenim diversos mètodes, com ara que la velocitat es pot controlar automàticament en funció de la temperatura, però en aquest projecte s’utilitzarà el mètode PWM per controlar la velocitat del motor de corrent continu. Aquí, en aquest projecte de control de velocitat del motor Arduino, es pot controlar la velocitat girant el pom del potenciòmetre.
Modulació d'amplada de pols:
Què és PWM? PWM és una tècnica mitjançant l’ús de podem controlar el voltatge o la potència. Per entendre-ho més senzillament, si apliqueu 5 volts per conduir un motor, el motor es mourà amb una certa velocitat, ara, si reduïm la tensió aplicada en 2 mitjans, apliquem 3 volts al motor, llavors la velocitat del motor també disminueix. Aquest concepte s’utilitza en el projecte per controlar la tensió mitjançant PWM. Hem explicat detalladament PWM en aquest article. Comproveu també aquest circuit on s’utilitza PWM per controlar la brillantor del LED: Dimmer LED d’1 watt.
% Cicle de treball = (TON / (TON + TOFF)) * 100 On, T ON = Temps ALT de l'ona quadrada T OFF = Temps baix d'ona quadrada

Ara bé, si l'interruptor de la figura es tanca contínuament durant un període de temps, el motor s'encendrà contínuament durant aquest temps. Si l'interruptor es tanca durant 8 ms i s'obre durant 2 ms durant un cicle de 10 ms, el motor només s'encendrà en el temps de 8 ms. Ara, el terminal mitjà en un període de 10 ms = Temps d’activació / (Temps d’encès + Temps d’APAGAT), s’anomena cicle de treball i és del 80% (8 / (8 + 2)), de manera que la mitjana la tensió de sortida serà del 80% de la tensió de la bateria. Ara l'ull humà no pot veure que el motor està encès durant 8 ms i apagat durant 2 ms, de manera que semblarà que el motor de corrent continu gira amb un 80% de velocitat.
En el segon cas, l’interruptor es tanca durant 5 ms i s’obre durant 5 ms durant un període de 10 ms, de manera que el voltatge mitjà del terminal a la sortida serà del 50% de la tensió de la bateria. Digueu si la tensió de la bateria és de 5V i el cicle de treball és del 50% i, per tant, la tensió mitjana del terminal serà de 2,5V.
En el tercer cas, el cicle de treball és del 20% i el voltatge mitjà del terminal és del 20% de la tensió de la bateria.
Hem utilitzat PWM amb Arduino en molts dels nostres projectes:
- Dimmer LED basat en Arduino mitjançant PWM
- Ventilador controlat per temperatura mitjançant Arduino
- Control del motor de CC mitjançant Arduino
- Control de velocitat del ventilador de CA mitjançant Arduino i TRIAC
Podeu obtenir més informació sobre PWM passant per diversos projectes basats en PWM.
Material requerit
- Arduino UNO
- Motor de corrent continu
- Transistor 2N2222
- Potenciòmetre 100k ohm
- Condensador 0,1uF
- Taula de pa
- Saltar els cables
Esquema de connexions
A continuació es mostra el diagrama de circuits per al control de velocitat del motor Arduino CC mitjançant PWM:

Codi i explicació
Al final es dóna el codi complet per al control del motor CC Arduino mitjançant un potenciòmetre.
Al codi següent, hem inicialitzat la variable c1 i c2 i hem assignat el pin analògic A0 per a la sortida del potenciòmetre i el 12è Pin per a 'pwm'.
int pwmPin = 12; int pot = A0; int c1 = 0; int c2 = 0;
Ara, al codi següent, configureu el pin A0 com a entrada i el 12 (que és el pin PWM) com a sortida.
void setup () { pinMode (pwmPin, OUTPUT); // declara el pin 12 com a sortida pinMode (pot, INPUT); // declara el pin A0 com a entrada }
Ara, en el bucle buit (), estem llegint el valor analògic (de A0) mitjançant analogRead (pot) i el desem a la variable c2. A continuació, resteu el valor c2 de 1024 i deseu el resultat a c1. A continuació, fer que el PWM passador 12 º d'Arduino ALTA i després d'un retard de valor c1 fer que les baixes agulla. De nou, després d'un retard del valor c2, el bucle continua.
La raó per restar el valor analògic de 1024 és que l’ Arduino Uno ADC té una resolució de 10 bits (per tant, els valors enters de 0 - 2 ^ 10 = 1024 valors). Això vol dir que maparà les tensions d'entrada entre 0 i 5 volts en valors enters entre 0 i 1024. Per tant, si multipliquem anlogValue d' entrada a (5/1024), obtindrem el valor digital del voltatge d'entrada. Obteniu informació sobre com utilitzar l'entrada ADC a Arduino.
bucle buit () { c2 = analogRead (pot); c1 = 1024-c2; digitalWrite (pwmPin, HIGH); // defineix el pin 12 HIGH delayMicroseconds (c1); // espera c1 uS (temps elevat) digitalWrite (pwmPin, LOW); // estableix el pin 12 LOW delayMicroseconds (c2); // espera c2 uS (temps baix) }
Control de velocitat del motor de corrent continu mitjançant Arduino

En aquest circuit, per controlar la velocitat del motor de corrent continu, fem servir un potenciòmetre de 100K ohm per canviar el cicle de treball del senyal PWM. 100K ohm potenciòmetre està connectat a l'anàleg A0 pin d'entrada de la Arduino UN i el motor de corrent continu està connectat a la 12 º pin de l'Arduino (que és el pin PWM). El funcionament del programa Arduino és molt senzill, ja que llegeix el voltatge del pin analògic A0. La tensió del pin analògic es varia mitjançant l'ús del potenciòmetre. Després de fer els càlculs necessaris, el cicle de treball s'ajusta d'acord amb ell.
Per exemple, si alimentem un valor de 256 a l'entrada analògica, el temps ALTA serà de 768 ms (1024-256) i el temps BAIX serà de 256 ms. Per tant, significa simplement que el cicle de treball és del 75%. Els nostres ulls no poden veure una oscil·lació d’alta freqüència i sembla que el motor està continuament engegat amb un 75% de velocitat. Així és com podem realitzar el control de velocitat del motor mitjançant Arduino.
