Upravljački krug motora velike struje koji koristi Arduino

Upravljački krug motora velike struje koji koristi Arduino

U ovom projektu razgovaramo o tome kako kontrolirati brzinu motora koristeći Arduino PWM krug i kako implementirati kontrolu naprijed ili prema naprijed u istosmjernom motoru pomoću Arduina kroz nekoliko prekidača s tipkama. Bilo kojim motorom jake struje do 30 amp može se upravljati pomoću ovog podešavanja



PoAnkit Negi

Motor je vrlo bitna komponenta u električnoj i elektroničkoj industriji jer se koriste kao pokretači u mnogim područjima.





Motori su nam potrebni za male primjene poput robotike, kao i za područja u kojima se koriste teški motori (industrija itd.).

Sada se motori koji se koriste za male primjene mogu lako kontrolirati jer ne uzimaju puno struje (manje od 2amp).



A tim se motorima lako može upravljati pomoću mikrokontrolera poput arduina s motornih vozača poput L298 ili L293D .

No, motori koji se koriste za teške svrhe (veće od 10amp) ne mogu se kontrolirati koristeći ove ic jer mogu napajati ograničenu struju (max 2amp). Pa kako se upravlja tim motorima?

Odgovor je jednostavan: pomoću releja , koji djeluje kao prekidači tj. prebacuje veliku struju pomoću male struje. Na taj se način mogu postići dvije stvari:

1. Pokretanje samog našeg motora velike jačine struje.

2. Izolirajte krug, sprječavajući tako bilo kakve udare.

Sada se za prebacivanje ovih releja može koristiti bilo koji mikrokontroler. Ovdje ćemo koristiti arduino UNO.

KOMPONENTE POTREBNE ZA OVAJ PROJEKT:

1. ARDUINO UNO: dati ulazne logike primarnoj strani releja.

2. SPDT RELEJ -2: potrebna su dva releja za rotaciju u oba smjera. Kontakti moraju biti ocijenjeni kako bi mogli podnijeti visoke strujne specifikacije motora

Relejna slika plave boje relej koji prikazuje N / O N / C i detalje pola3.Power Mosfet: Možete koristiti IRF1010 MOSFET tipka mikroprekidač

4. BATERIJA (12v): za napajanje motora.

5. DVA GUMBA: za unos arduina (tj. Kada se pritisne i kad se ne pritisne)

Otpornik od 10 k 1/4 vata

6. DVA 10K OTPORA: za debounking (objašnjeno u nastavku)

Upravljački krug motora velike struje koji koristi Arduino

7. PRIKLJUČNE ŽICE: za spajanje.

SHEMATSKI:

Upravljački krug PWM Arduino motora

Uspostavite veze kako je prikazano na slici.

1. Spojite normalno otvoreni terminal oba releja na pozitivni terminal akumulatora, a normalno zatvoreni terminal na negativni terminal akumulatora.

2. Spojite motor između preostalog terminala (od tri) svakog releja.

3. Spojite jedan terminal primarne strane releja na izlazne pinove arduina kako je navedeno u kodu, a drugi terminal na masu.

4. Spojite jedan terminal obje tipke na 5v pin arduino-a, a drugi terminal na ulazne igle kako je navedeno u kodu.

4. ** Ne zaboravite spojiti otpore jer su oni vrlo važni za pravilno funkcioniranje ovog kruga, kao što je objašnjeno u nastavku:

ZAŠTO SU OTPORI POVEZANI?

Možda ćete otkriti da uopće nema ničega povezanog s ulaznim pinovima Arduina, ali to ne znači da ti izlazi mogu biti logična nula kad je naznačena sklopka otvorena

Umjesto toga, implicira da kada je sklopka otvorena arduino može uzeti bilo koju slučajnu vrijednost između logike 0 i logike 1, što uopće nije dobro (to se naziva odskakanjem).

Dakle, ono što ovdje želimo jest da kada ništa nije povezano na ulazni pin, tj. Gumb je otvoren, arduino uzima 0 ulaza s pin-a.

Da bi se to postiglo, pin je preko otpornika izravno povezan s masom prije tipke. Ako je izravno spojen na masu bez otpornika, velike su šanse da će pregorjeti jer će pin biti kratko spojen na masu i teći će ogromna količina struje. Da bi se to spriječilo, između je spojen otpornik.

Taj se otpor naziva pulldown otporom jer povlači logiku na pin na 0. A taj se postupak naziva debouncing.

KODIRATI:

Spali ovaj kod u svoj 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)
}
}

Radi (kod za razumijevanje):

• KONTROLA SMJERA:

A. Kad se obje tipke ne pritisnu:

U ovom stanju, arduino uzima 0 ulaza s obje pinove. Kao što je navedeno u kodu u ovom stanju, oba izlazna pina daju 0 logike (LOW):

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

digitalWrite (9, LOW)}

Budući da je ulazni napon na primarnom dijelu oba releja nula, sekundarni terminal oba ostaje u normalno zatvorenom položaju. Stoga na oba priključka motora postoji nula volti, što ne uzrokuje rotaciju.

B. Kad se pritisne tipka X, ali se ne pritisne Y:

U ovom stanju, arduino uzima 0 ulaza s pin 4, ali input1 s pin3. Kao što je navedeno u kodu u ovom stanju, pin 6 trebao bi biti na logici 1 (HIGH), dok pin 9 na logici 0 (LOW):

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

digitalWrite (9, LOW)}

Budući da je ulazni napon na releju # 1 visok, prekidač ovog releja prebačen je u normalno otvoreno stanje, dok je ulazni napon na releju 2 nizak, prekidač ovog releja ostaje u normalno zatvorenom stanju uzrokujući 12v, odnosno 0v na stezaljkama motora, što uzrokuje rotacija motora u jednom smjeru.

C. Kad se pritisne tipka Y, ali se ne pritisne X:

U ovom stanju, arduino uzima 1 ulaz s pina 4, ali ulaz 0 s pina 3. Kao što je navedeno u kodu u ovom stanju, pin 6 trebao bi biti na logici 0 (LOW), dok pin 9 na logici 1 (HIGH):

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

digitalWrite (9, VISOKO)}

Budući da je ulazni napon na relej # 2 ovaj put visok, prekidač ovog releja prebačen je u normalno otvoreno stanje, dok je ulazni napon na relej # 1 nizak, prekidač ovog releja ostaje u normalno zatvorenom stanju uzrokujući 12v odnosno 0v na motoru stezaljke, uzrokujući rotaciju motora u drugom smjeru.

D. Kad se pritisnu obje tipke:

U ovom stanju, arduino uzima 1 ulaz s obje pinove. Kao što je navedeno u kodu u ovom stanju, oba izlazna pina daju 0 logike (LOW):

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

digitalWrite (9, LOW)}

Budući da je ulazni napon na primarnom dijelu oba releja nula, sekundarni terminal oba ostaje u normalno zatvorenom položaju. Stoga na oba priključka motora postoji nula volta, što ne uzrokuje rotaciju.

• KONTROLA BRZINE:

Recimo da je potenciometar u takvom položaju kad daje 0 volti kao ulaz na A0 pin arduina. Zbog toga arduino preslikava ovu vrijednost kao 0 i tako daje 0 kao izlazni PWM na pin # 10, tj.

analogWrite (10,0) // zapišite preslikanu vrijednost u 10. pin u obliku izlaza

Stoga vrata mosfet-a dobivaju 0 struje zbog čega ostaju isključena i motor je u isključenom položaju.

Međutim, kako se lonac okreće i vrijednost lonca varira, napon na pin A0 također varira, a ta se vrijednost preslikava na pin # 10 s proporcionalno povećanjem širine PWM-a, što dovodi do toga da više struje teče kroz motor i MOSFET odvod, što zauzvrat omogućuje proporcionalno povećavanje brzine motora, a isto se događa i obrnuto.

Tako iz gornje rasprave možemo vidjeti kako se Arduino može koristiti za kontrolu brzine kao i smjera (unatrag) jakog istosmjernog motora jednostavnim podešavanjem navedenog lonca i pomoću nekoliko tipki.

Ažuriraj : Za jaki motor, upotrijebite releje od 12 V / 30 pojačala i BJT stupnjeve pogona za rad ovih releja velike snage kako je naznačeno u sljedećem izmijenjenom dijagramu:




Prethodno: Krug senzora za parkiranje za vožnju unatrag s alarmom Dalje: Arduino PWM sklop generatora signala