I denna handledning ska vi ansluta en likströmsmotor till Arduino UNO och styra dess hastighet med hjälp av PWM- konceptet (Pulse Width Modulation). Denna funktion är aktiverad i UNO för att få variabel spänning över konstant spänning. Metoden för PWM förklaras här; överväga en enkel krets som visas i figur.
Om knappen trycks in om figuren börjar motorn att rotera och den kommer att vara i rörelse tills knappen trycks in. Denna pressning är kontinuerlig och representeras i den första figurvågen. Om man i ett fall tänker på knappen trycks ned i 8 ms och öppnas i 2 ms under en cykel på 10 ms, under detta fall kommer inte motorn att uppleva hela 9V batterispänningen eftersom knappen endast trycks ned i 8 ms, så RMS-terminalens spänning över motorn kommer att vara runt 7V. På grund av denna reducerade RMS-spänning kommer motorn att rotera men med reducerad hastighet. Nu är den genomsnittliga påslagningen över en period på 10 ms = Slå PÅ-tid / (Slå PÅ-tid + Stäng AV-tid), detta kallas arbetscykel och är 80% (8 / (8 + 2)).
I andra och tredje fall trycks knappen ännu kortare in jämfört med första fallet. På grund av detta minskar RMS-terminalspänningen vid motorterminalerna ytterligare. På grund av denna reducerade spänning minskar motorhastigheten till och med ytterligare. Denna hastighetsminskning med arbetscykeln fortsätter att inträffa till en punkt där motorns terminalspänning inte kommer att vara tillräcklig för att vrida motorn.
Så genom detta kan vi dra slutsatsen att PWM kan användas för att variera motorhastigheten.
Innan vi går vidare måste vi diskutera H-BRIDGE. Nu har denna krets huvudsakligen två funktioner, den första är att driva en likströmsmotor från styrsignaler med låg effekt och den andra är att ändra DC-motorns rotationsriktning.
Figur 1
figur 2
Vi vet alla att för att en likströmsmotor ska ändra rotationsriktningen måste vi ändra polariteten för motorns matningsspänning. Så för att ändra polariteterna använder vi H-bridge. Nu i figur 1 ovan har vi fyrväxlar. Som visas i figur 2 är för att motorn ska rotera A1 och A2 stängda. På grund av detta strömmar ström genom motorn från höger till vänster, som visas i andra delen av figur 3. Tänk på att motorn roterar medurs. Om omkopplarna A1 och A2 nu öppnas stängs B1 och B2. Strömmen genom motorn flyter från vänster till höger som visas i 1 st del av figur 3. Denna riktning för strömflödet är motsatt den första och så ser vi en motsatt potential vid motorterminalen till den första, så motorn roterar moturs. Så här fungerar en H-BRIDGE. Motorer med låg effekt kan dock drivas av en H-BRIDGE IC L293D.
L293D är en H-BRIDGE IC utformad för att driva likströmsmotorer med låg effekt och visas i figur. Denna IC består av två h-bryggor och så att den kan driva två likströmsmotorer. Så denna IC kan användas för att driva robotens motorer från mikrokontrollerns signaler.
Nu som diskuterats tidigare har denna IC förmåga att ändra DC-motorns rotationsriktning. Detta uppnås genom att kontrollera spänningsnivåerna vid INPUT1 och INPUT2.
Aktivera stift |
Ingångsstift 1 |
Ingångsstift 2 |
Motorriktning |
Hög |
Låg |
Hög |
Sväng höger |
Hög |
Hög |
Låg |
Sväng vänster |
Hög |
Låg |
Låg |
Sluta |
Hög |
Hög |
Hög |
Sluta |
Så som visas i figuren ovan, för medurs rotation bör 2A vara hög och 1A bör vara låg. På samma sätt för moturs bör 1A vara hög och 2A vara låg.
Som visas i figuren har Arduino UNO 6PWM-kanaler, så vi kan få PWM (variabel spänning) vid någon av dessa sex stift. I den här handledningen ska vi använda PIN3 som PWM-utgång.
Hårdvara: ARDUINO UNO, strömförsörjning (5v), 100uF kondensator, LED, knappar (två delar), 10KΩ motstånd (två delar).
Programvara: arduino IDE (Arduino nattlig).
Kretsschema
Kretsen är ansluten i brädbräda enligt kretsschemat ovan. Man måste dock vara uppmärksam vid anslutning av LED-terminalerna. Även om knapparna visar studsande effekt i det här fallet orsakar det inte betydande fel så vi behöver inte oroa oss den här gången.
PWM från UNO är enkelt, vid normala tillfällen är det inte enkelt att ställa in en ATMEGA-styrenhet för PWM-signal, vi måste definiera många register och inställningar för en korrekt signal, men i ARDUINO behöver vi inte hantera alla dessa saker.
Som standard är alla rubrikfiler och register fördefinierade av ARDUINO IDE, vi behöver helt enkelt ringa dem och det är det vi kommer att ha en PWM-utgång vid lämplig stift.
Nu för att få en PWM-utgång vid en lämplig stift, måste vi arbeta med tre saker,
|
Först måste vi välja PWM-utgångsstift från sex stift, därefter måste vi ställa in den som utgången.
Därefter måste vi aktivera PWM-funktionen i UNO genom att kalla funktionen "analogWrite (pin, värde)". Här representerar 'pin' PIN-numret där vi behöver PWM-utdata, vi sätter det som '3'. Så vid PIN3 får vi PWM-utdata.
Värde är PÅ-arbetscykeln mellan 0 (alltid av) och 255 (alltid på). Vi kommer att öka och minska detta nummer genom att trycka på knappen.
UNO har en maximal upplösning på "8", man kan inte gå längre därav värdena 0-255. Man kan dock minska upplösningen på PWM med kommandot "analogWriteResolution ()", genom att ange ett värde från 4-8 inom parentes kan vi ändra dess värde från fyra bitars PWM till åtta bitars PWM.
Omkopplaren ska ändra rotationsriktning för likströmsmotor.