Suure vooluga mootori juhtimisahel Arduino abil

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Selles projektis arutame, kuidas seda teha juhtige mootori kiirust kasutades Arduino PWM-ahelat ja kuidas rakendada DC-mootoris tagasikäigu edasi- või suuna juhtimist Arduino abil paari nupuvajutusega lüliti abil. Selle seadistuse abil saab juhtida mis tahes suure vooluga mootorit kuni 30 amprini

KõrvalAnkit Negi



Mootor on elektris ja elektroonikas väga oluline komponent, kuna neid kasutatakse paljudes piirkondades ajamitena.

Vajame mootoreid nii väikeste rakenduste jaoks nagu robootika kui ka rasketes mootorites kasutatavates piirkondades (tööstused jne).



Nüüd saab väikestes rakendustes kasutatavaid mootoreid hõlpsasti juhtida, kuna need ei võta palju voolu (vähem kui 2amp).

Neid mootoreid saab hõlpsasti juhtida, kasutades mikrokontrollerit nagu arduino mootorijuhid nagu L298 või L293D .

Kuid mootoreid, mida kasutatakse rasketel eesmärkidel (üle 10 amp), ei saa juhtida neid ic-sid kasutades kuna nad suudavad anda piiratud voolu (max 2amp). Kuidas siis neid mootoreid juhitakse kui?

Vastus on lihtne: releede abil , mis toimib lülititena, st lülitab suurt voolu väikese voolu abil. Sel viisil on võimalik saavutada kaks asja:

1. Töötame meie suure vooluga mootoriga ise.

2. Vooluahela isoleerimine, vältides sellega lööke.

Nüüd saab nende relee ümberlülitamiseks kasutada mis tahes mikrokontrollerit. Kasutame siin arduino UNO-d.

SELLE PROJEKTI NÕUTAVAD KOMPONENDID:

1. ARDUINO UNO: sisendloogika andmine relee põhipoolele.

2. SPDT RELE -2: mõlemas suunas pööramiseks on vaja kahte releed. Suure voolutugevusega mootori spetsifikatsioonide käsitlemiseks tuleb kontaktid hinnata

Releepildi sinine värv relee, mis näitab N / O N / C ja postide üksikasju3. Power Mosfet: saate kasutada IRF1010 mosfetti nupuvajutusega mikrolüliti

4. AKU (12v): mootori toiteallikaks.

5. KAKS NUPU: sisendite andmiseks arduinole (st kui seda vajutatakse ja kui seda ei vajutata)

10k 1/4 vatt takisti

6. KAKS 10K TAKISTIT: debiteerimiseks (selgitatud allpool)

Suure vooluga mootori juhtimisahel Arduino abil

7. Juhtmete ühendamine: ühenduste loomiseks.

Skeem:

PWM Arduino mootori juhtimisahel

Looge ühendused, nagu on näidatud joonisel.

1. Ühendage mõlema relee normaalselt avatud klemm aku positiivse klemmiga ja tavaliselt suletud klemm aku negatiivse klemmiga.

2. Ühendage mootor iga relee ülejäänud klemmi (kolmest) vahele.

3. Ühendage üks relee primaarkülje klemm arduino väljundnõeltega, nagu koodis täpsustatud, ja teine ​​klemm maandusega.

4. Ühendage mõlema nupu üks terminal arduino 5v tihvtiga ja teine ​​terminal sisendis olevate tihvtidega vastavalt koodile.

4. ** Ärge unustage takisteid ühendada, kuna need on selle vooluahela nõuetekohaseks toimimiseks väga olulised, nagu allpool selgitatud:

MIKS ON TAKISTID ÜHENDATUD?

Võib juhtuda, et Arduino sisendnõeltega pole üldse midagi ühendatud, kuid see ei tähenda, et need kinnitused võivad olla loogiline null, kui näidatud lüliti on avatud

Pigem tähendab see, et kui lüliti on avatud, võib arduino võtta mis tahes juhusliku väärtuse loogika 0 ja loogika 1 vahel, mis pole üldse hea (seda nimetatakse põrkeks).

Nii et me tahame siin seda, et kui sisendnõelaga pole midagi ühendatud, st nupp on avatud, võtab arduino tihvtilt 0 sisendit.

Ja selle saavutamiseks on tihvt takisti kaudu otse enne nuppu ühendatud maaga. Kui see on otse maandusega ühendatud ilma takistita, on tõenäoline, et see põleb läbi, kuna tihvt lühistatakse maapinnale ja voolab tohutu kogus voolu. Selle vältimiseks on nende vahele ühendatud takisti.

Seda takistit nimetatakse allatakistiks, kuna see tõmbab tihvti loogikat nulli. Ja seda protsessi nimetatakse tühistamiseks.

KOOD:

Kirjutage see kood oma arduinosse.

int x// initialise variables
int y
int z
int w
void setup() {
pinMode(6,OUTPUT)//initialise pin 6 as output to RL1
pinMode(9,OUTPUT)//initialise pin 9 as output to RL2
pinMode(3,INPUT)//initialise pin 3 as input
pinMode(4,INPUT)//initialise pin 4 as input
pinMode(10,OUTPUT)//initialise PWM pin 8 as output to gate of mosfet
pinMode(A0,INPUT)//initialise pin A0 as input from pot.
Serial.begin(9600)
}
void loop() {
z=analogRead(A0)// read values from potentiometer in terms of voltage
w= map(z,0,1023,0,255)// map those values from 0 to 255
analogWrite(10,w)// write the mapped value to 10thpin as output
delay(1)//on time period of mosfet
analogWrite(10,w)
delay(1)//off time period of ,mosfet
Serial.println(z)//print value from pot to serial monitor
Serial.println(w)//print mapped value to serial monitor
x= digitalRead(3)
y= digitalRead(4)
if(x==0 && y==0){digitalWrite(6,LOW)//hault motor
digitalWrite(9,LOW)}
if(x==1 && y==0){digitalWrite(6,HIGH)// clockwise rotation of motor
digitalWrite(9,LOW)}
if(x==0 && y==1){digitalWrite(6,LOW)// anticlockwise rotation of motor
digitalWrite(9,HIGH)}
if(x==1 && y==1){digitalWrite(6,LOW)//hault motor
digitalWrite(9,LOW)
}
}

Töötamine (koodi mõistmine):

• SUUNAKONTROLL:

A. Kui mõlemat nuppu ei vajutata:

Selles olukorras võtab arduino 0 sisendit mõlemalt tihvtilt. Nagu selles tingimuses koodis täpsustatud, annavad mõlemad väljundtapid 0 loogikat (LOW):

if (x == 0 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, LOW)}

Kuna mõlema relee sisendpinge on primaarne null, jääb mõlema relee normaalselt suletud asendisse. Seega on mootori mõlemas klemmis null volti, mis ei põhjusta pöörlemist.

B. Kui vajutatakse nuppu X, kuid Y ei vajutata:

Selles olekus võtab arduino 0 sisendit pinilt 4, kuid input1 pin3-lt. Nagu selle tingimuse koodis täpsustatud, peaks tihvt 6 olema loogikal 1 (HIGH), samas kui tihvt 9 loogikal 0 (LOW):

if (x == 1 && y == 0) {digitalWrite (6, HIGH)

digitalWrite (9, LOW)}

Kuna relee nr 1 sisendpinge on kõrge, visatakse selle relee lüliti tavaliselt avatud olekusse, samas kui relee 2 sisendpinge on madal, jääb selle relee lüliti tavaliselt suletud olekusse, põhjustades mootori klemmide kaudu vastavalt 12v ja 0v mootori pöörlemine ühes suunas.

C. Kui vajutatakse nuppu Y, kuid X ei vajutata:

Selles olukorras võtab arduino 1 sisendi pinilt 4, kuid input0 pin3-lt. Nagu selle tingimuse koodis on täpsustatud, peaks tihvt 6 olema loogikal 0 (LOW), samas kui nupp 9 loogikal 1 (HIGH):

if (x == 1 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, HIGH)}

Kuna relee nr 2 sisendpinge on seekord kõrge, visatakse selle relee lüliti tavapäraselt avatud olekusse, samas kui relee nr 1 sisendpinge on madal, jääb selle relee lüliti tavaliselt suletud olekusse, põhjustades mootori korral vastavalt 12v ja 0v klemmid, põhjustades mootori pöörlemist teises suunas.

D. Mõlema nupu vajutamisel:

Selles olekus võtab arduino 1 sisendi mõlemalt tihvtilt. Nagu selles tingimuses koodis täpsustatud, annavad mõlemad väljundtapid 0 loogikat (LOW):

if (x == 0 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, LOW)}

Kuna mõlema relee sisendpinge on primaarne null, jääb mõlema relee normaalselt suletud asendisse. Seega on mootori mõlemas klemmis null volti, mis ei põhjusta pöörlemist.

• KIIRUSKONTROLL:

Oletame, et potentsiomeeter on sellises asendis, kui see annab 0 volti sisendina arduino A0-tihvtile. Seetõttu kaardistab arduino selle väärtuse väärtusega 0 ja annab seega kontakti # 10 väljundina PWM 0, st

analogWrite (10,0) // kirjutage kaardistatud väärtus väljundiks 10. kontaktile

Seega saab mosfeti värav 0 voolu, mille tõttu see jääb välja ja mootor on välja lülitatud asendis.

Kuid kui potti pööratakse ja poti väärtus varieerub, varieerub ka tihvti A0 pinge ja see väärtus kaardistatakse tihvtile nr 10 proportsionaalselt kasvava PWM laiusega, põhjustades mootori ja mosfeti kaudu rohkem voolu tühjendus, mis omakorda võimaldab mootoril saada proportsionaalselt rohkem kiirust, ja sama juhtub ka vastupidi.

Seega näeme ülaltoodud arutelust, kuidas Arduinot saab kasutada suure vooluga alalisvoolumootori kiiruse ja suuna (edasi-tagasi) juhtimiseks, lihtsalt reguleerides määratud potti ja paari nuppu.

Uuenda : Suurvoolumootori korral kasutage nende suure võimsusega releede käitamiseks 12V / 30 amprireleid ja BJT draiveri astmeid, nagu on näidatud järgmises muudetud skeemis:




Paar: Alarmiga auto tagurpidi parkimisanduri ahel Järgmine: Arduino PWM signaaligeneraatori ahel