Hvordan kontrollere DC -motoren med Arduino

Hvordan kontrollere DC -motoren med Arduino
Arduino er et elektronisk utviklingstavle basert på både maskinvare og programvare. Arduino gir brukerne frihet til å designe prosjekter på flere nivåer basert på forskjellige moduler, maskinvare og motorer. Med tiden øker Arduino etterspørsel etter robotikkprosjekter. Når vi snakker om robotprosjekter, er det første som kommer til hjernen motorer og kontrollere. DC Motors spiller en viktig rolle i å bygge robotiske prosjekter. Her vil vi diskutere hvordan DC -motorer kan brukes med Arduino.

DC Motorkontroll med Arduino

En DC -motor er en av de mye brukte motorene. Det kommer med to kundeemner, en positiv og den andre negative. Hvis vi kobler sammen disse to ledningene med et batteri eller strømkilde, vil motoren begynne å rotere; Imidlertid, hvis vi reverserer polariteten til terminalmotoren, vil det begynne å rotere i motsatt retning.

Ved hjelp av Arduino kan vi kontrollere motorhastighet og retning på en mer fleksibel måte. For å kontrollere motoren med Arduino bruker vi en motordrivermodul. En motordrivermodul er en ekstern krets som kan grensesnitt en arduino med hvilken som helst av DC -motorene.

Her vil vi bruke LN293D IC motordrivermodul for å kontrollere en DC -motorretning og hastighet. LN293D er en 16-pinners motordrivermodul som kan kontrollere to DC-motorer samtidig. Den kan kjøre en motor med strøm opp til 600 mA per kanal og spenningsområde start fra 4.5 opp til 36V (ved pinne 8). Ved hjelp av denne drivermodulen kan vi kontrollere flere DC -motorer i liten størrelse.

Kretsdiagram
For å kontrollere DC -motoren, designe kretsen i henhold til den nevnte skjemaet. Koble pinne 2 og 7 av driveren IC med henholdsvis den digitale pinnen D10 og D9 av Arduino Uno. Ved hjelp av digitale pinner vil vi kontrollere retningen og hastigheten på motoren vår. Pin 1 og 8 får en logikk på høyt nivå ved bruk av Arduino 5V logikknivåspenning. DC -motoren er koblet til pinne 3 og 6 i drivermodulen. Pin 4 og 5 er korte på grunn av felles grunn i motordrivermodulen.

Ved å bruke pinne 9 og 10 kan vi kontrollere motorretningen. Når pinne 10 er høy og pinne 9 er lav motor vil rotere i en retning og for å rotere i motsatt retning, vil omvendte forhold bli påført.

Skjemaer

Kode

const int dcmotorsignal1 = 9; /*PIN 9 for motorens første inngang*/
const int dcmotorsignal2 = 10; /*PIN 10 for motorens andre inngang*/
ugyldig oppsett ()

pinmode (dcmotorsignal1, utgang); /*Initialiser dcmotorsignal1 -pinnen som utgang*/
pinmode (dcmotorsignal2, utgang); /*Initialiser dcmotorSignal2 -pinnen som utgang*/

ugyldig sløyfe ()

med klokken (200); /*roter i urviseren*/
forsinkelse (1000); /*Forsinkelse på 1 sekund*/
antiklockwise (200); /*roter i retning mot klokken*/
forsinkelse (1000); /*forsinkelse i 1 sekund*/

void med klokken (int rotasjonshastighet) /*Denne funksjonen vil kjøre og rotere motoren i urviseren* /

analogWrite (DcmotorSignal1, Rotationalspeed); /*Sett motorhastighet*/
analogwrite (dcmotorsignal2, lav); /*Stopp dcmotorSignal2 -pinnen til motor*/

ugyldig motstand (int rotasjonshastighet) /*Funksjonen vil drive og rotere motoren i retning mot klokken* /

analogWrite (DcmotorSignal1, lav); /*Stopp dcmotorSignal1 -pinnen til motor*/
analogWrite (DcmotorSignal2, Rotationalspeed); /*Sett motorhastighet*/

Her i koden ovenfor initialiserer vi to digitale pinner for DC Motor Control. Digital PIN 9 er satt som inngang for den første pinnen og D10 er satt som inngang for den andre pinnen til DC -motoren. Neste ved hjelp av pinmode Funksjon Vi initialiserer begge disse digitale pinnene som utgang.

I Løkke Seksjon av kode To funksjoner som heter klokken og antiklockwise initialiseres med en rotasjonshastighet på 200. Etter det ved å bruke to tomromsfunksjoner med klokken og mot klokken endrer vi retningen på motorrotasjon ved å sette pinne 9 og 10 så lav og høy.

Hvorfor vi brukte motordrivermodul med Arduino?

Motordrivere kan ta et lavt strømsignal fra en Arduino eller hvilken som helst annen mikrokontroller og øke det opp til et høyt strømsignal som kan drive hvilken som helst DC -motor lett. Normalt fungerer Arduino og andre mikrokontrollere med lav strøm, mens de for å drive likestrømsmotorer de krever høy strøm konstant inngang som Arduino ikke kan gi. Arduino kan gi oss maksimalt 40 mA strøm per pinne som bare er en brøkdel av hva en DC -motor krever for å betjene. Motordrivermoduler som L293D kan kontrollere to motorer og gi brukere gratis hånd for å kontrollere hastighet og retning i henhold til deres letthet.

Merk: Mens du bruker flere motorer med Arduino, anbefales det å bruke ekstern separat forsyning for DC -motorer sammen med motordrivermodul fordi Arduino ikke kan holde tilbake strømmen mer enn 20mA og normalt tar motorer oppdatert mye mer enn dette. Et annet problem er Kickback, Steppermotorer har magnetiske komponenter; De vil fortsette å skape strøm selv når strømmen er avskåret, noe som kan føre til nok negativ spenning som kan skade Arduino -tavlen. Så kort sagt, en motorisk driver og separat strømforsyning er nødvendig for å kjøre en DC -motor.

Konklusjon

DC Motors er en viktig komponent for å designe Arduino -baserte robotprosjekter. Å bruke DC Motors Arduino kan kontrollere bevegelse og retning av prosjektets periferiutstyr. For å kontrollere disse motorene jevnt trenger vi en drivermodul som ikke bare sparer Arduino -brettet fra ekstremstrømpigger, men som også gir full kontroll til brukeren. Denne artikkelen vil guide deg til design og grensesnitt DC Motors i ethvert Arduino -prosjekt.