Suurivirtainen moottorinohjauspiiri Arduinoa käyttämällä

Suurivirtainen moottorinohjauspiiri Arduinoa käyttämällä

Tässä projektissa keskustelemme miten moottorin nopeuden säätö käyttämällä Arduino PWM -piiriä ja miten taaksepäin suuntautuva eteen- tai suuntaohjaus voidaan toteuttaa tasavirtamoottorissa Arduinoa käyttäen muutamalla painikkeella. Minkä tahansa suurivirtaista moottoria, jopa 30 ampeeria, voidaan ohjata tällä asetuksella

TekijäAnkit Negi



Moottori on erittäin tärkeä osa sähköä ja elektroniikkaa, koska niitä käytetään toimilaitteina monilla alueilla.



Tarvitsemme moottoreita pieniin sovelluksiin, kuten robotiikkaan, sekä alueilla, joilla käytetään raskaita moottoreita (teollisuus jne.).

Nyt pieniin käyttötarkoituksiin käytettäviä moottoreita voidaan hallita helposti, koska ne eivät kuluta paljon virtaa (alle 2 ampeeria).



Ja näitä moottoreita voidaan helposti ohjata käyttämällä mikro-ohjainta, kuten arduino moottorin kuljettaja, kuten L298 tai L293D .

Mutta raskaisiin tarkoituksiin (yli 10 ampeeria) käytettyjä moottoreita ei voida ohjata käyttämällä näitä ic: itä koska ne voivat syöttää rajoitettua virtaa (enintään 2 ampeeria). Joten miten näitä moottoreita ohjataan kuin?

Vastaus on yksinkertainen: käyttämällä releitä , joka toimii kytkiminä eli kytkee suuren virran pienellä virralla. Tällä tavoin voidaan saavuttaa kaksi asiaa:



1. Käyttää itse suurivirtaista moottoria.

2. Piirin eristäminen estäen siten iskut.

Nyt mitä tahansa mikro-ohjainta voidaan käyttää näiden releiden kytkemiseen. Käytämme arduino UNO: ta täällä.

TÄTÄ PROJEKTIA VAATIVAT KOMPONENTIT:

1. ARDUINO UNO: antaa syöttölogiikka releen ensisijaiselle puolelle.

2. SPDT-RELE -2: kaksi releä tarvitaan pyörimiseen molempiin suuntiin. Koskettimet on luokiteltava suurvirtaisten moottoreiden vaatimusten käsittelemiseksi

Relekuvan sininen väri rele, joka näyttää N / O N / C: n ja napatiedot3.Power Mosfet: Voit käyttää IRF1010 mosfetiä painonappikytkin

4. AKKU (12v): syöttää virtaa moottoriin.

5. KAKSI PAINIKETTA: antaa tuloja arduinolle (ts. Kun sitä painetaan ja kun sitä ei paineta)

10k 1/4 watin vastus

6. KAKSI 10 000 VASTUSTA: purkamiseen (selitetty alla)

Suurivirtainen moottorinohjauspiiri Arduinolla

7. JOHDOSTEN LIITTÄMINEN: liitäntöjen tekemiseen.

KAAVIO:

PWM Arduino -moottorin ohjauspiiri

Tee liitännät kuvan mukaisesti.

1. Liitä molempien releiden normaalisti avoin napa akun plusnapaan ja normaalisti suljettu napa akun negatiiviseen napaan.

2. Liitä moottori kunkin releen jäljellä olevan liittimen (kolmesta) väliin.

3. Yhdistä yksi releiden ensiöpuolen liitin arduinon lähtöliittimiin koodin mukaisesti ja toinen pää maahan.

4. Liitä molempien painikkeiden yksi liitin 5v: n arduino-napaan ja toinen liitin tuloliittimiin koodissa määritetyllä tavalla.

4. ** Älä unohda liittää vastuksia, koska ne ovat erittäin tärkeitä tämän piirin moitteettoman toiminnan kannalta, kuten alla selitetään:

MIKSI RESISTORIT ON LIITETTY?

Saatat huomata, että Arduinon tuloliittimiin ei ole kytketty mitään, mutta se ei tarkoita, että nämä pinoutit voivat olla loogisia nollia, kun ilmoitettu kytkin on auki

Pikemminkin se tarkoittaa, että kun kytkin on auki, arduino voi ottaa minkä tahansa satunnaisarvon logiikan 0 ja logiikan 1 välillä, mikä ei ole ollenkaan hyvää (tätä kutsutaan palautumiseksi).

Joten mitä me täällä haluamme, on se, että kun mitään ei ole kytketty tuloliittimeen, ts. Painike on auki, arduino ottaa 0 tuloa nastasta.

Ja tämän saavuttamiseksi tappi on kytketty suoraan maahan ennen painonappia vastuksen kautta. Jos se on kytketty suoraan maahan ilman vastusta, on hyvät mahdollisuudet, että se palaa, kun tappi oikosuljetaan maahan ja valtava määrä virtaa. Tämän estämiseksi vastus on kytketty väliin.

Tätä vastusta kutsutaan pudotetuksi vastukseksi, koska se vetää nastan logiikkaa nollaan. Ja tätä prosessia kutsutaan purkamiseksi.

KOODI:

Polta tämä koodi arduinoosi.

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

Työskentely (koodin ymmärtäminen):

• SUUNNAN HALLINTA:

A. Kun molempia painikkeita ei paineta:

Tässä tilassa arduino ottaa 0 tuloa molemmilta nastoilta. Kuten tämän ehdon koodissa on määritelty, molemmat lähtönastat antavat 0 logiikkaa (LOW):

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

digitalWrite (9, LOW)}

Koska molempien releiden ensiöjännite on nolla sekundääriliitintä, ne pysyvät normaalisti suljetussa asennossa. Siten moottorin molemmissa navoissa on nolla volttia, mikä ei aiheuta pyörimistä.

Kun painetaan X-painiketta, mutta Y ei paineta:

Tässä tilassa arduino ottaa 0 tuloa nastasta 4, mutta tulo1 nastasta 3. Kuten tämän ehdon koodissa on määritelty, nastan 6 tulee olla logiikassa 1 (HIGH), kun taas nastan 9 logiikassa 0 (LOW):

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

digitalWrite (9, LOW)}

Koska releen 1 tulojännite on korkea, tämän releen kytkin heitetään normaalisti auki olevaan tilaan, kun taas releen 2 tulojännite on matala, tämän releen kytkin pysyy normaalisti suljetussa tilassa aiheuttaen vastaavasti 12v ja 0v moottoriliittimien yli aiheuttaen moottorin pyöriminen yhteen suuntaan.

C. Kun painetaan Y-painiketta, mutta X ei paineta:

Tässä tilassa arduino ottaa 1 tulon nastasta 4, mutta tulo 0 nastasta 3. Kuten tämän ehdon koodissa on määritelty, nastan 6 tulee olla logiikassa 0 (LOW), kun taas nastan 9 logiikassa 1 (HIGH):

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

digitalWrite (9, HIGH)}

Koska releen nro 2 tulojännite on tällä kertaa korkea, tämän releen kytkin heitetään normaalisti auki olevaan tilaan, kun taas releen nro 1 tulojännite on matala, tämän releen kytkin pysyy normaalisti suljetussa tilassa aiheuttaen vastaavasti 12v ja 0v moottorin poikki liittimet aiheuttaen moottorin pyörimisen toiseen suuntaan.

Kun molempia painikkeita painetaan:

Tässä tilassa arduino ottaa 1 syötteen molemmilta nastoilta. Kuten tämän ehdon koodissa on määritelty, molemmat lähtönastat antavat 0 logiikkaa (LOW):

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

digitalWrite (9, LOW)}

Koska molempien releiden ensiöjännite on nolla sekundääriliitintä, ne pysyvät normaalisti suljetussa asennossa. Siten moottorin molemmissa liittimissä on nolla volttia, mikä ei aiheuta pyörimistä.

• NOPEUDEN SÄÄTÖ:

Oletetaan, että potentiometri on sellaisessa asennossa, kun se antaa 0 volttia tulona arduinon A0-nastalle. Tästä johtuen arduino kartoittaa tämän arvon arvoksi 0 ja antaa tällöin 0 lähtöön PWM tapille # 10, ts.

analogWrite (10,0) // kirjoita kartoitettu arvo 10. nastaksi lähdöksi

Siksi mosfetin portti saa 0 virtaa, minkä vuoksi se pysyy pois päältä ja moottori on kytketty pois päältä -asentoon.

Kuitenkin, kun kattilaa pyöritetään ja astian arvoa vaihdellaan, myös tapin A0 jännite vaihtelee, ja tämä arvo kartoitetaan tapille # 10 suhteellisesti kasvavalla PWM-leveydellä, mikä aiheuttaa enemmän virtaa virtaamaan moottorin ja mosfetin läpi tyhjennys, mikä puolestaan ​​antaa moottorille suuremman nopeuden suhteellisesti, ja sama tapahtuu päinvastoin.

Siten edellä olevasta keskustelusta voimme nähdä, kuinka Arduinoa voidaan käyttää suurivirtaisen DC-moottorin nopeuden ja suunnan (taaksepäin eteenpäin) säätämiseen yksinkertaisesti säätämällä määritettyä pottia ja muutamalla painikkeella.

Päivittää : Käytä suurivirtaista moottoria varten 12 V / 30 ampeerin releitä ja BJT-ohjainvaiheita näiden suuritehoisten releiden käyttämiseen seuraavan muutetun kaavion mukaisesti:




Pari: Auton peruutusanturipiiri hälytyksellä Seuraava: Arduino PWM-signaaligeneraattorin piiri