- Pulssinleveysmodulaatio:
- Tarvittava materiaali
- Piirikaavio
- Koodi ja selitys
- DC-moottorin nopeuden säätö Arduinolla
DC-moottori on eniten käytetty moottori robotiikan ja elektroniikan projekteissa. DC-moottorin nopeuden säätämiseksi meillä on useita menetelmiä, kuten nopeutta voidaan säätää automaattisesti lämpötilan perusteella, mutta tässä projektissa DC-moottorin nopeutta ohjataan PWM-menetelmällä. Tässä tässä Arduino Motor Speed Control -hankkeessa nopeutta voidaan säätää kiertämällä potentiometrin nappulaa.
Pulssinleveysmodulaatio:
Mikä on PWM? PWM on tekniikka, jonka avulla voimme hallita jännitettä tai tehoa. Ymmärtääksemme sen yksinkertaisemmin, jos käytät 5 volttia moottorin käyttämiseen, moottori liikkuu jonkin verran nopeudella, nyt jos pienennämme käytettyä jännitettä kahdella tavalla, käytämme 3 volttia moottoriin, myös moottorin nopeus pienenee. Tätä käsitettä käytetään projektissa jännitteen säätämiseen PWM: n avulla. Olemme selittäneet PWM: n yksityiskohtaisesti tässä artikkelissa. Tarkista myös tämä piiri, jossa PWM: ää käytetään ledien kirkkauden säätämiseen: 1 watin LED-himmennin.
% Kuormitusjakso = (TON / (TON + TOFF)) * 100 Missä, T ON = neliöaallon KORKEA aika T OFF = neliöaallon matala aika
Jos kuvassa oleva kytkin on suljettu jatkuvasti tietyn ajanjakson ajan, moottori käynnistyy jatkuvasti sen ajan. Jos kytkin on suljettu 8 ms: n ajan ja avattu 2 ms: ksi 10 ms: n jakson aikana, moottori on päällä vain 8 ms: n ajan. Nyt keskimääräinen pääte yli 10 ms: n ajan = Käynnistysaika / (Käynnistysaika + Sammutusaika), tätä kutsutaan työjaksoksi ja se on 80% (8 / (8 + 2)), joten lähtöjännite on 80% akun jännitteestä. Nyt ihmissilmä ei näe, että moottori on päällä 8 ms ja pois päältä 2 ms, joten näyttää siltä, että tasavirtamoottori pyörii 80%: n nopeudella.
Toisessa tapauksessa kytkin on suljettu 5 ms: n ajan ja 5 ms ajan 10 ms: n jakson ajan, joten keskimääräinen lähtöjännite lähdössä on 50% akun jännitteestä. Sano, jos akun jännite on 5 V ja käyttöjakso on 50%, joten keskimääräinen napajännite on 2,5 V.
Kolmannessa tapauksessa käyttöjakso on 20% ja keskimääräinen napajännite on 20% akun jännitteestä.
Olemme käyttäneet PWM: ää Arduinon kanssa monissa projekteissamme:
- Arduino-pohjainen LED-himmennin PWM: n avulla
- Lämpötilaohjattu tuuletin Arduinolla
- DC-moottorin ohjaus Arduinolla
- AC-tuulettimen nopeuden säätö Arduinolla ja TRIAC: lla
Voit oppia lisää PWM: stä käymällä läpi erilaisia PWM-pohjaisia projekteja.
Tarvittava materiaali
- Arduino UNO
- DC-moottori
- Transistori 2N2222
- Potentiometri 100k ohm
- Kondensaattori 0,1 uF
- Leipälauta
- Hyppyjohdot
Piirikaavio
Kytkentäkaavio Arduino DC -moottorin nopeuden ohjaukseen PWM: n avulla on alla kaksi:
Koodi ja selitys
Arduino DC -moottorin ohjauksen täydellinen koodi potentiometrillä on lopussa.
Alla olevassa koodi, olemme alustetaan muuttuja c1 ja c2 ja annetaan analoginen pin A0 potentiometrin ulostulo ja 12 th Pin 'PWM'.
int pwmPin = 12; int pot = A0; int c1 = 0; int c2 = 0;
Aseta alla olevassa koodissa nasta A0 tuloksi ja 12 (joka on PWM-tappi) lähdöksi.
void setup () { pinMode (pwmPin, OUTPUT); // julistaa nastan 12 lähtöön pinMode (pot, INPUT); // ilmoittaa nastan A0 syötteeksi }
Nyt tyhjässä silmukassa () luemme analogisen arvon (A0: sta) analogRead (pot) -toiminnon avulla ja tallennamme sen muuttujaan c2. Vähennä sitten c2-arvo arvosta 1024 ja tallenna tulos c1: ään. Tee sitten PWM-tappi Arduino HIGH: n 12 : ksi ja tee sitten arvon c1 viiveen jälkeen tappi LOW. Jälleen kerran arvon c2 viiveen jälkeen silmukka jatkuu.
Syynä analogisen arvon vähentämiseen arvosta 1024 on, että Arduino Uno ADC on 10-bittinen tarkkuus (joten kokonaislukuarvot 0 - 2 ^ 10 = 1024-arvot). Tämä tarkoittaa, että se kartoittaa 0 - 5 voltin syöttöjännitteet kokonaisluvuiksi välillä 0 - 1024. Joten jos kerrotaan tulon anlogValue arvoon (5/1024), saadaan tulojännitteen digitaalinen arvo. Opi täältä, kuinka ADC-syötettä käytetään Arduinossa.
void loop () { c2 = analogRead (potti); c1 = 1024-c2; digitalWrite (pwmPin, HIGH); // asettaa tappi 12 HIGH delayMicroseconds (c1); // odottaa c1 uS (korkea aika) digitalWrite (pwmPin, LOW); // asettaa tappi 12 LOW delayMikrosekunnit (c2); // odottaa c2 uS (matala aika) }
DC-moottorin nopeuden säätö Arduinolla
Tässä piirissä DC-moottorin nopeuden säätämiseen käytämme 100K ohmin potentiometriä PWM-signaalin työjakson muuttamiseksi. 100K ohmin potentiometri on kytketty analogiseen ottonapaan A0 ja Arduino UNO ja DC-moottori on kytketty 12 : nnen tappiin Arduino (joka on PWM tappi). Arduino-ohjelman toiminta on hyvin yksinkertaista, koska se lukee jännitteen analogisesta nastasta A0. Analogisen nastan jännitettä vaihdetaan potentiometrillä. Tarvittavan laskutoimituksen jälkeen käyttöjakso säädetään sen mukaan.
Esimerkiksi, jos syötämme 256-arvon analogiatuloon, HIGH-aika on 768ms (1024-256) ja LOW-aika on 256ms. Siksi se tarkoittaa yksinkertaisesti, että käyttöjakso on 75%. Silmämme eivät näe tällaista korkeataajuista värähtelyä ja näyttää siltä, että moottori on jatkuvasti päällä 75%: lla nopeudesta. Joten voimme suorittaa moottorin nopeudenhallinnan Arduinolla.