I denne opplæringen skal vi grense en DC-motor til Arduino UNO og kontrollere hastigheten ved hjelp av PWM- konseptet (Pulse Width Modulation). Denne funksjonen er aktivert i UNO for å få variabel spenning over konstant spenning. Metoden for PWM er forklart her; vurdere en enkel krets som vist i figur.
Hvis du trykker på knappen hvis figuren, vil motoren begynne å rotere og den vil være i bevegelse til du trykker på knappen. Denne pressingen er kontinuerlig og er representert i den første figurbølgen. Hvis du for en sak vurderer at knappen trykkes i 8 ms og åpnes i 2 ms over en syklus på 10 ms, vil motoren i dette tilfellet ikke oppleve den komplette 9V batterispenningen ettersom knappen bare trykkes i 8 ms, så RMS-terminalspenningen over motoren vil være rundt 7V. På grunn av denne reduserte RMS-spenningen vil motoren rotere, men med redusert hastighet. Nå er den gjennomsnittlige påslåingen over en periode på 10 ms = Slå PÅ tid / (Slå PÅ tid + Slå AV tid), dette kalles driftssyklus og er på 80% (8 / (8 + 2)).
I andre og tredje tilfeller trykkes knappen enda kortere enn i første tilfelle. På grunn av dette reduseres RMS-terminalspenningen på motorterminalene ytterligere. På grunn av denne reduserte spenningen reduseres motorhastigheten til og med ytterligere. Denne hastighetsreduksjonen med driftssyklus kontinuerlig til å skje til et punkt der motorens terminalspenning ikke vil være tilstrekkelig til å vri motoren.
Så ved dette kan vi konkludere med at PWM kan brukes til å variere motorhastigheten.
Før vi går videre, må vi diskutere H-BRIDGE. Nå har denne kretsen hovedsakelig to funksjoner, den første er å kjøre en DC-motor fra styresignaler med lav effekt, og den andre er å endre DC-motorens rotasjonsretning.
Figur 1
Figur 2
Vi vet alle at for at en DC-motor, for å endre rotasjonsretningen, må vi endre polariteten til motorens forsyningsspenning. Så for å endre polaritetene bruker vi H-broen. Nå i figur 1 ovenfor har vi fire brytere. Som vist i figur 2 er motoren som skal rotere A1 og A2 lukket. På grunn av dette, strøm flyter gjennom motoren fra høyre til venstre, som vist i 2 nd del av figure3. Foreløpig vurder motoren med urviseren. Nå hvis bryterne A1 og A2 åpnes, lukkes B1 og B2. Strømmen gjennom motoren strømmer fra venstre til høyre som vist i 1. trinn del av figur3. Denne retningen av strømmen er motsatt den første, og så ser vi et motsatt potensiale ved motorterminalen til den første, slik at motoren roterer mot klokken. Slik fungerer en H-BRIDGE. Motorer med lav effekt kan imidlertid drives av en H-BRIDGE IC L293D.
L293D er en H-BRIDGE IC designet for å kjøre DC-motorer med lav effekt og er vist i figuren. Denne ICen består av to h-broer, og den kan kjøre to DC-motorer. Så denne IC kan brukes til å kjøre robotens motorer fra signalene fra mikrokontrolleren.
Nå som tidligere diskutert, har denne IC evnen til å endre DC-motorens rotasjonsretning. Dette oppnås ved å kontrollere spenningsnivåene ved INPUT1 og INPUT2.
Aktiver pin |
Inngangsstift 1 |
Inngangsstift 2 |
Motorretning |
Høy |
Lav |
Høy |
Ta til høyre |
Høy |
Høy |
Lav |
Ta til venstre |
Høy |
Lav |
Lav |
Stoppe |
Høy |
Høy |
Høy |
Stoppe |
Så som vist i figuren ovenfor, for rotasjon med klokken 2A bør være høy og 1A skal være lav. Tilsvarende for mot klokken skal 1A være høy og 2A være lav.
Som vist i figuren har Arduino UNO 6PWM-kanaler, slik at vi kan få PWM (variabel spenning) på en av disse seks pinnene. I denne opplæringen skal vi bruke PIN3 som PWM-utgang.
Maskinvare: ARDUINO UNO, strømforsyning (5v), 100uF kondensator, LED, knapper (to deler), 10KΩ motstand (to deler).
Programvare: arduino IDE (Arduino nattlig).
Kretsdiagram
Kretsen er koblet til brødbrett i henhold til kretsskjemaet vist ovenfor. Man må imidlertid være oppmerksom når LED-terminalene kobles til. Selv om knappene viser spretteffekt i dette tilfellet, forårsaker det ikke betydelige feil, så vi trenger ikke bekymre oss denne gangen.
PWM fra UNO er enkel, ved normale anledninger er det ikke lett å sette opp en ATMEGA-kontroller for PWM-signal, vi må definere mange registre og innstillinger for et nøyaktig signal, men i ARDUINO trenger vi ikke å håndtere alle disse tingene.
Som standard er alle overskriftsfilene og -registrene forhåndsdefinert av ARDUINO IDE, vi trenger bare å ringe dem, og det er det vi vil ha en PWM-utgang på riktig pin.
Nå for å få en PWM-utgang til en passende pin, må vi jobbe med tre ting,
|
Først må vi velge PWM-utgangspinnen fra seks pinner, deretter må vi sette den pinnen som utgang.
Deretter må vi aktivere PWM-funksjonen til UNO ved å kalle funksjonen “analogWrite (pin, verdi)”. Her representerer 'pin' pin-nummeret der vi trenger PWM-utgang, vi setter det som '3'. Så på PIN3 får vi PWM-utgang.
Verdien er PÅ-syklusen PÅ, mellom 0 (alltid av) og 255 (alltid på). Vi kommer til å øke og redusere dette tallet ved å trykke på knappen.
UNO har en maksimal oppløsning på “8”, man kan ikke gå lenger derav verdiene fra 0-255. Imidlertid kan man redusere oppløsningen til PWM ved å bruke kommandoen "analogWriteResolution ()", ved å legge inn en verdi fra 4-8 i parentes, kan vi endre verdien fra fire bit PWM til åtte bit PWM.
Bryteren skal endre rotasjonsretningen for DC-motor.