Didelės srovės variklio valdymo grandinė naudojant „Arduino“

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame projekte aptariame, kaip tai padaryti valdyti variklio greitį naudojant „Arduino PWM“ grandinę ir kaip nuolatinės srovės variklyje įgyvendinti atbulinės eigos arba krypties valdymą naudojant „Arduino“ per kelis mygtukų jungiklius. Bet kurį didelės srovės variklį iki 30 amperų galima valdyti naudojant šį nustatymą

IkiAnkit Negi



Variklis yra labai svarbus elektros ir elektronikos komponentas, nes daugelyje sričių jie naudojami kaip pavaros.

Mums reikia variklių mažoms reikmėms, pavyzdžiui, robotikos, taip pat tose vietose, kur naudojami sunkieji varikliai (pramonės šakose ir kt.).



Dabar variklius, naudojamus mažoms reikmėms, galima lengvai valdyti, nes jie neima daug srovės (mažiau nei 2ampamp).

Šiuos variklius galima lengvai valdyti naudojant mikrovaldiklį, pvz., „Arduino“ variklio vairuotojo ic, pavyzdžiui, L298 ar L293D .

Tačiau variklių, naudojamų sunkiems tikslams (didesniems nei 10ampamp), negalima valdyti naudojant šias ic nes jie gali tiekti ribotą srovę (maks. 2amp). Taigi, kaip valdomi šie varikliai, nei?

Atsakymas paprastas: naudojant Relės , kuris veikia kaip jungikliai, ty perjungia didelę srovę naudodami mažą srovę. Tokiu būdu galima pasiekti du dalykus:

1. Paleiskite savo didelės srovės variklį.

2. Izoliuokite grandinę, taip išvengdami bet kokių smūgių.

Dabar šioms relėms perjungti galima naudoti bet kurį mikrovaldiklį. Čia naudosime „arduino UNO“.

ŠIAM PROJEKTUI BŪTINOS SUDEDAMOSIOS DALYS:

1. ARDUINO UNO: suteikti įvesties logiką pagrindinei relės pusei.

2. SPDT RELĖ -2: norint sukti į abi puses, reikalingos dvi relės. Kontaktai turi būti įvertinti, kad jie atitiktų didelės srovės variklio specifikacijas

Relės vaizdas mėlynas relė, rodanti N / O N / C ir stulpų detales3. „Power Mosfet“: galite naudoti „IRF1010“ „mosfet“ mygtuko mikros jungiklis

4. BATERIJA (12v): maitinti variklį.

5. DVIEJI MUSIKLIAI: kad įvestumėte „arduino“ įvestį (t. Y. Paspaudus ir nepaspaudus)

10k 1/4 vatų rezistorius

6. DVIEJI 10 000 REZISTORIAI: debatavimui (paaiškinta toliau)

Didelės srovės variklio valdymo grandinė naudojant „Arduino“

7. LAIDŲ JUNGIMAS: jungtims užmegzti.

SCHEMATIKA:

PWM „Arduino“ variklio valdymo grandinė

Prijunkite jungtis, kaip parodyta paveikslėlyje.

1. Prijunkite normaliai atidarytą abiejų relių gnybtą prie teigiamo akumuliatoriaus gnybto ir įprastai uždarytą gnybtą prie neigiamo akumuliatoriaus gnybto.

2. Prijunkite variklį tarp likusio kiekvienos relės gnybto (iš trijų).

3. Prijunkite vieną pagrindinės relių pusės gnybtą prie „arduino“ išvesties kaiščių, kaip nurodyta kode, o kitą gnybtą - prie žemės.

4. Prijunkite vieną abiejų mygtukų gnybtą prie 5v arduino kaiščio ir kitą gnybtą prie įvesties kaiščių, kaip nurodyta kode.

4. Nepamirškite prijungti rezistorių, nes jie yra labai svarbūs tinkamam šios grandinės veikimui, kaip paaiškinta toliau:

KODĖL REZISTORIAI SUJUNGTI?

Galite pastebėti, kad nieko nėra prijungta prie „Arduino“ įvesties kaiščių, tačiau tai nereiškia, kad šie kontaktai gali būti logiškas nulis, kai atidarytas nurodytas jungiklis

Veikiau tai reiškia, kad kai jungiklis yra atidarytas, „Arduino“ gali užimti bet kokią atsitiktinę reikšmę tarp logikos 0 ir logikos 1, o tai visai nėra gerai (tai vadinama atšokimu).

Taigi, ko mes čia norime, yra tai, kad kai nieko nėra prijungta prie įvesties kaiščio, ty mygtukas yra atidarytas, arduino paima 0 įvestį iš kaiščio.

Norėdami tai pasiekti, kaištis yra tiesiogiai prijungtas prie žemės prieš paspaudžiant mygtuką per rezistorių. Jei jis yra tiesiogiai prijungtas prie žemės be rezistoriaus, yra didelė tikimybė, kad jis perdegs, nes kaištis bus sutrumpintas iki žemės ir tekės didžiulis srovės kiekis. Norėdami to išvengti, tarp jų yra prijungtas rezistorius.

Šis rezistorius vadinamas išskleidžiamuoju rezistoriumi, nes jis traukia kaiščio logiką į 0. Ir šis procesas vadinamas debouncing.

KODAS:

Įrašykite šį kodą į savo „arduino“.

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)
}
}

Darbas (kodo supratimas):

• Kryptis:

A. Kai abu mygtukai nėra paspausti:

Esant tokiai būklei, „arduino“ ima 0 įvesties iš abiejų kaiščių. Kaip nurodyta šios sąlygos kode, abu išvesties kaiščiai suteikia 0 logikos (LOW):

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

„digitalWrite“ (9, LOW)}

Kadangi abiejų relių pirminio įėjimo įtampa yra lygi nuliui, antrinis gnybtas lieka įprastai uždarytoje padėtyje. Taigi abiejuose variklio gnybtuose yra nulis voltų, dėl kurio nesisuka.

B. Paspaudus mygtuką X, bet nespaudus Y:

Esant tokiai būklei, „arduino“ paima 0 įėjimų iš 4 kaiščio, bet „input1“ iš „pin3“. Kaip nurodyta šios sąlygos kode, kaištis 6 turėtų būti logikoje 1 (HIGH), o kaištis 9 logikoje 0 (LOW):

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

„digitalWrite“ (9, LOW)}

Kadangi relės Nr. 1 įėjimo įtampa yra aukšta, šios relės jungiklis persijungia į įprastai atidarytą būseną, o 2 relės įėjimo įtampa yra maža, šios relės jungiklis išlieka įprastai uždarytoje būsenoje, atitinkamai sukeldamas 12v ir 0v variklio gnybtuose, sukeldamas variklio sukimasis viena kryptimi.

C. Paspaudus mygtuką Y, bet nepaspaudus X:

Esant tokiai būklei, „arduino“ ima 1 įvestį iš 4 kaiščio, bet įvestį0 iš „pin3“. Kaip nurodyta šios sąlygos kode, kaištis 6 turėtų būti logikoje 0 (LOW), o kaištis 9 - logikoje 1 (HIGH):

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

„digitalWrite“ (9, HIGH)}

Kadangi šį kartą relės Nr. 2 įėjimo įtampa yra aukšta, šios relės jungiklis persijungia į įprastai atidarytą būseną, o relės Nr. 1 įėjimo įtampa yra maža, šios relės jungiklis išlieka įprastai uždarytoje būsenoje, atitinkamai per variklį 12v ir 0v gnybtų, sukdami variklį kita kryptimi.

D. Paspaudus abu mygtukus:

Esant tokiai būklei, „arduino“ paima 1 įvestį iš abiejų kaiščių. Kaip nurodyta šios sąlygos kode, abu išvesties kaiščiai suteikia 0 logikos (LOW):

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

„digitalWrite“ (9, LOW)}

Kadangi abiejų relių pirminio įėjimo įtampa yra lygi nuliui, antrinis gnybtas lieka įprastai uždarytoje padėtyje. Taigi abiejuose variklio gnybtuose yra nulis voltų, todėl nesisuka.

• GREIČIO KONTROLĖ:

Tarkime, potenciometras yra tokioje padėtyje, kai jis suteikia 0 voltų įvestį į A0 arduino kaištį. Dėl šios priežasties „arduino“ šią vertę priskiria 0 ir suteikia 0 kaip išvestį PWM ant kaiščio Nr. 10, t.

„analogWrite“ (10,0) // susirašytą vertę įrašykite į 10-ąjį kaištį kaip išvestį

Taigi „mosfet“ vartai gauna 0 srovės, dėl kurios jie lieka išjungti ir variklis yra išjungtas.

Tačiau, kai puodas pasukamas ir keičiasi puodo vertė, taip pat skiriasi įtampa ant kaiščio A0, ir ši vertė yra susieta su kaiščiu Nr. 10 proporcingai didėjančiu PWM pločiu, todėl per variklį ir „mosfet“ teka daugiau srovės. nutekėjimas, o tai savo ruožtu leidžia varikliui proporcingai įgyti didesnį greitį, ir tas pats vyksta atvirkščiai.

Taigi iš pirmiau pateiktos diskusijos galime pamatyti, kaip „Arduino“ galima naudoti reguliuojant didelės srovės nuolatinės srovės variklio greitį ir kryptį (atgal į priekį), tiesiog sureguliuojant nurodytą puodą ir per keletą mygtukų.

Atnaujinti : Didelės srovės varikliui naudokite 12 V / 30 amperų reles ir BJT tvarkyklių pakopas, kad veiktų šios didelės galios relės, kaip nurodyta šioje modifikuotoje diagramoje:




Pora: Automobilio atbulinės eigos jutiklio grandinė su pavojaus signalu Kitas: „Arduino PWM“ signalo generatoriaus grandinė