- Pulsa platuma modulācija:
- Nepieciešams materiāls
- Ķēdes shēma
- Kods un skaidrojums
- DC motora ātruma kontrole, izmantojot Arduino
Līdzstrāvas motors ir visbiežāk izmantotais motors robotikas un elektronikas projektos. Līdzstrāvas motora ātruma kontrolei mums ir dažādas metodes, piemēram, ātrumu var automātiski kontrolēt, pamatojoties uz temperatūru, bet šajā projektā līdzstrāvas motora ātruma kontrolei tiks izmantota PWM metode. Šeit šajā Arduino motora ātruma kontroles projektā ātrumu var kontrolēt, pagriežot potenciometra pogu.
Pulsa platuma modulācija:
Kas ir PWM? PWM ir paņēmiens, izmantojot kuru mēs varam kontrolēt spriegumu vai jaudu. Lai to vienkāršāk saprastu, ja jūs izmantojat 5 voltu motora vadīšanai, tad motors pārvietosies ar nelielu ātrumu, tagad, ja mēs samazinām pielietoto spriegumu par 2 līdzekļiem, mēs motoram pieliekam 3 voltus, tad arī motora ātrums samazinās. Šis jēdziens tiek izmantots projektā, lai kontrolētu spriegumu, izmantojot PWM. Šajā rakstā mēs detalizēti izskaidrojām PWM. Pārbaudiet arī šo ķēdi, kur PWM tiek izmantots, lai kontrolētu LED spilgtumu: 1 vatu LED dimmeris.
% Darbības cikls = (TON / (TON + TOFF)) * 100 Kur, T ON = kvadrātveida viļņu augstais laiks T OFF = kvadrātveida viļņu mazais laiks
Ja slēdzis attēlā ir nepārtraukti slēgts noteiktā laika periodā, motors šajā laikā nepārtraukti ieslēgsies. Ja slēdzis ir slēgts uz 8 ms un atvērts uz 2 ms 10 ms ciklā, tad motors būs ieslēgts tikai pēc 8 ms laika. Tagad vidējais terminālis pāri 10 ms laikā = Ieslēgšanas laiks / (Ieslēgšanas laiks + Izslēgšanas laiks), to sauc par darba ciklu, un tas ir 80% (8 / (8 + 2)), tāpēc vidējais izejas spriegums būs 80% no akumulatora sprieguma. Tagad cilvēka acs nevar redzēt, ka motors ir ieslēgts 8 ms un izslēgts 2 ms, tāpēc izskatās, ka līdzstrāvas motors rotē ar 80% ātrumu.
Otrajā gadījumā slēdzis ir slēgts uz 5ms un atvērts uz 5ms 10ms periodā, tāpēc vidējais spailes spriegums izejā būs 50% no akumulatora sprieguma. Sakiet, vai akumulatora spriegums ir 5 V un darba cikls ir 50%, un tāpēc vidējais spailes spriegums būs 2,5 V.
Trešajā gadījumā darba cikls ir 20%, un vidējais spailes spriegums ir 20% no akumulatora sprieguma.
Mēs esam izmantojuši PWM ar Arduino daudzos mūsu projektos:
- Arduino bāzes LED regulators, izmantojot PWM
- Temperatūras kontrolēts ventilators, izmantojot Arduino
- Līdzstrāvas motora vadība, izmantojot Arduino
- Maiņstrāvas ventilatora ātruma kontrole, izmantojot Arduino un TRIAC
Jūs varat uzzināt vairāk par PWM, veicot dažādus projektus, kuru pamatā ir PWM.
Nepieciešams materiāls
- Arduino UNO
- Līdzstrāvas motors
- Tranzistors 2N2222
- Potenciometrs 100k omi
- Kondensators 0.1uF
- Maizes dēlis
- Lecošie vadi
Ķēdes shēma
Arduino līdzstrāvas motora ātruma vadības shēma, izmantojot PWM, ir zemāk redzama:
Kods un skaidrojums
Pilnīgs Arduino DC motora vadības kods, izmantojot potenciometru, ir norādīts beigās.
Jo tālāk kodu, mēs esam inicializēts mainīgo C1 un C2 un piešķirts analogs pin A0 par potenciometra izejas un 12 th PIN "PWM".
int pwmPin = 12; int pot = A0; int c1 = 0; int c2 = 0;
Tagad, zemāk esošajā kodā, iestatiet tapu A0 kā ievadi un 12 (kas ir PWM tapa) kā izvadi.
void setup () { pinMode (pwmPin, OUTPUT); // deklarē tapu 12 kā izvades pinMode (pot, INPUT); // deklarē tapu A0 kā ievadi }
Tagad tukšajā lokā () mēs nolasām analogo vērtību (no A0), izmantojot analogRead (pot), un saglabājam to mainīgajā c2. Pēc tam atņemiet c2 vērtību no 1024 un saglabājiet rezultātu c1. Tad veikt PWM pin 12 th no Arduino augstu un tad pēc kavēšanās vērtības c1 veiktu šo pin zems. Atkal pēc c2 vērtības aizkavēšanās cilpa turpinās.
Iemesls analogās vērtības atņemšanai no 1024 ir tāds, ka Arduino Uno ADC ir 10 bitu izšķirtspēja (tātad veselu skaitļu vērtības no 0 - 2 ^ 10 = 1024 vērtības). Tas nozīmē, ka tas ieejas spriegumus no 0 līdz 5 voltiem kartēs veselu skaitļu vērtībās no 0 līdz 1024. Tātad, ja mēs reizinām ieejas anlogValue ar vērtību (5/1024), tad mēs iegūstam ieejas sprieguma digitālo vērtību. Uzziniet šeit, kā izmantot ADC ievadi Arduino.
void loop () { c2 = analogRead (pot); c1 = 1024-c2; digitalWrite (pwmPin, HIGH); // iestata 12. tapu HIGH delayMicroseconds (c1); // gaida c1 uS (high time) digitalWrite (pwmPin, LOW); // iestata tapu 12 LOW delayMicrosekundes (c2); // gaida c2 uS (zems laiks) }
DC motora ātruma kontrole, izmantojot Arduino
Šajā ķēdē, lai kontrolētu līdzstrāvas motora ātrumu, mēs izmantojam 100K omu potenciometru, lai mainītu PWM signāla darba ciklu. 100K ohm potenciometrs ir savienots ar analogo ieejas pin A0 no Arduino ANO un līdzstrāvas motoru ir savienota ar 12 th pin no Arduino (kas ir PWM pin). Arduino programma darbojas ļoti vienkārši, jo tā nolasa spriegumu no analogās tapas A0. Spriegums pie analogās tapas tiek mainīts, izmantojot potenciometru. Pēc dažu nepieciešamo aprēķinu veikšanas darba cikls tiek pielāgots atbilstoši tam.
Piemēram, ja analogajai ieejai ievadīsim 256 vērtību, tad HIGH laiks būs 768ms (1024-256) un LOW laiks būs 256ms. Tāpēc tas vienkārši nozīmē, ka darba cikls ir 75%. Mūsu acis nespēj redzēt tik augstas frekvences svārstības, un izskatās, ka motors ir nepārtraukti ieslēgts ar 75% ātrumu. Tātad tā mēs varam veikt motora ātruma kontroli, izmantojot Arduino.