Augstas strāvas motora vadības ķēde, izmantojot Arduino

Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai





Šajā projektā mēs apspriežam, kā to izdarīt kontrolēt motora ātrumu izmantojot Arduino PWM ķēdi un to, kā līdzstrāvas motorā ieviest atpakaļgaitas virzienu uz priekšu vai virzienu, izmantojot Arduino, izmantojot pāris spiedpogu slēdžus. Izmantojot šo iestatījumu, var vadīt jebkuru lielu strāvas motoru līdz 30 ampēriem

AutorsAnkits Negi



Motors ir ļoti būtiska sastāvdaļa elektriskajā un elektroniskajā ierīcē, jo daudzās jomās tos izmanto kā izpildmehānismus.

Mums ir nepieciešami motori maziem lietojumiem, piemēram, robotikai, kā arī vietās, kur tiek izmantoti smagie motori (rūpniecībā utt.).



Tagad motorus, kurus izmanto maziem lietojumiem, var viegli vadīt, jo tie neuzņem daudz strāvas (mazāk par 2 amp).

Šos motorus var viegli vadīt, izmantojot mikrokontrolleru, piemēram, arduino motora vadītājs, piemēram, L298 vai L293D .

Bet motorus, kas tiek izmantoti smagiem mērķiem (lielāki par 10 amp), nevar kontrolēt izmantojot šos ic jo tie var piegādāt ierobežotu strāvu (max 2amp). Tātad, kā šie motori tiek kontrolēti nekā?

Atbilde ir vienkārša: izmantojot relejus , kas darbojas kā slēdži, t.i., pārslēdz lielu strāvu, izmantojot nelielu strāvu. Tādā veidā var panākt divas lietas:

1. Darbināmies ar mūsu pašu strāvas motoru.

2. Ķēdes izolēšana, tādējādi novēršot jebkādus triecienus.

Tagad, lai pārslēgtu šos relejus, var izmantot jebkuru mikrokontrolleru. Mēs šeit izmantosim arduino UNO.

ŠAM PROJEKTAM NEPIECIEŠAMĀS SASTĀVDAĻAS:

1. ARDUINO UNO: lai ievadītu loģiku releja galvenajai pusei.

2. SPDT RELE -2: rotācijai abos virzienos ir nepieciešami divi releji. Kontakti jānovērtē, lai tie darbotos ar strāvas stipruma motoru

Releja attēls zilā krāsā relejs, kas parāda N / O N / C un pole detaļas3. Power Mosfet: Jūs varat izmantot IRF1010 mosfet spiedpogas mikroslēdzis

4. BATERIJA (12v): baro motoru.

5. DIVAS PUSES: lai ievadītu arduino ieejas (t.i., nospiežot un nepiespiežot)

10k 1/4 vatu rezistors

6. DIVI 10K REZISTORI: atcelšanai (paskaidrots tālāk)

Augstas strāvas motora vadības ķēde, izmantojot Arduino

7. VADU SAVIENOŠANA: savienojumu izveidošanai.

SHĒMA

PWM Arduino motora vadības ķēde

Veiciet savienojumus, kā parādīts attēlā.

1. Savienojiet gan atvērta, gan releja kontaktu ar pozitīvu akumulatora spaili, un parasti slēgtu spaili ar akumulatora negatīvo spaili.

2. Pievienojiet motoru starp katra releja atlikušo spaili (no trim).

3. Pievienojiet vienu releju primārās puses spaili arduino izejas tapām, kā norādīts kodā, un citu spaili - zemei.

4. Savienojiet vienu spaili ar abām spiedpogām ar ardino 5v kontaktdakšu un citu spaili ar ievades tapām, kā norādīts kodā.

4. ** Neaizmirstiet pieslēgt rezistorus, jo tie ir ļoti svarīgi šīs ķēdes pareizai darbībai, kā paskaidrots zemāk:

KĀPĒC REZISTORI IR SAISTĪTI?

Jūs varat uzzināt, ka Arduino ievades tapām vispār nav nekā pievienota, taču tas nenozīmē, ka šie pieslēgumi var būt loģiska nulle, kad norādītais slēdzis ir atvērts

Drīzāk tas nozīmē, ka tad, kad slēdzis ir atvērts, arduino var ņemt jebkuru nejaušu vērtību starp loģiku 0 un loģiku 1, kas nepavisam nav labi (to sauc par atlēcienu).

Tātad, ko mēs šeit vēlamies, ir tas, ka tad, kad nekas nav savienots ar ievades tapu, t.i., spiedpoga ir atvērta, arduino ņem 0 ievadi no tapas.

Lai to panāktu, tapa ir tieši savienota ar zemi pirms spiedpogas, izmantojot rezistoru. Ja tas ir tieši savienots ar zemi bez rezistora, pastāv lielas izredzes, ka tas izdegs, jo tapai būs īssavienojums ar zemi un plūst milzīgs strāvas daudzums. Lai to novērstu, starp tiem ir pievienots rezistors.

Šo rezistoru sauc par nolaižamo rezistoru, jo tas pievelk loģiku uz tapu līdz 0. Un šo procesu sauc par atcelšanu.

KODS:

Iededziniet šo kodu savā 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)
}
}

Darbs (koda izpratne):

• Virziena kontrole:

A. Kad abas spiedpogas netiek nospiestas:

Šajā stāvoklī arduino ņem 0 ievadi no abām tapām. Kā norādīts kodā šajā stāvoklī, abi izvades tapas dod 0 loģiku (LOW):

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

digitalWrite (9, LOW)}

Tā kā abu releju ieejas spriegums uz primāro ir nulles sekundārais spailis, tas paliek normāli slēgtā stāvoklī. Tādējādi abos motora spailēs ir nulle voltu, kas nerada rotāciju.

B. Kad tiek nospiesta poga X, bet Y netiek nospiesta:

Šajā stāvoklī arduino ņem 0 ieejas no 4. kontakta, bet input1 no 3. kontakta. Kā norādīts kodā šajā stāvoklī, tapai 6 jābūt 1. loģikā (HIGH), savukārt 9. tapai loģikā 0 (LOW):

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

digitalWrite (9, LOW)}

Tā kā ieejas spriegums relejam Nr. 1 ir augsts, šī releja slēdzis tiek nomests normāli atvērtā stāvoklī, turpretī 2. releja ieejas spriegums ir zems, šī releja slēdzis paliek normāli slēgts, izraisot attiecīgi 12v un 0v pāri motora spailēm, izraisot motora rotācija vienā virzienā.

C. Kad tiek nospiesta poga Y, bet X netiek nospiesta:

Šajā stāvoklī arduino ņem 1 ieeju no 4. kontakta, bet input0 no 3. kontakta. Kā norādīts kodā šajā stāvoklī, tapai 6 jābūt ar loģiku 0 (LOW), savukārt 9. tapai pie loģikas 1 (HIGH):

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

digitalWrite (9, HIGH)}

Tā kā ieejas spriegums relejam Nr. 2 šoreiz ir augsts, šī releja slēdzis tiek nomests normāli atvērtā stāvoklī, turpretī releja Nr. 1 ieejas spriegums ir zems, šī releja slēdzis paliek normāli slēgts, izraisot attiecīgi 12v un 0v pāri motoram spailes, izraisot motora rotāciju citā virzienā.

D. Nospiežot abas spiedpogas:

Šajā stāvoklī arduino ņem 1 ievadi no abām tapām. Kā norādīts kodā šajā stāvoklī, abi izvades tapas dod 0 loģiku (LOW):

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

digitalWrite (9, LOW)}

Tā kā abu releju ieejas spriegums uz primāro ir nulles sekundārais spailis, tas paliek normāli slēgtā stāvoklī. Tādējādi abos motora spailēs ir nulle volt, kas nerada rotāciju.

• ĀTRUMA KONTROLE:

Pieņemsim, ka potenciometrs atrodas šādā stāvoklī, kad tas dod 0 voltu kā ievadi arduino A0 tapai. Sakarā ar to, arduino kartē šo vērtību kā 0 un tādējādi dod 0 kā izeju PWM uz tapas # 10, t.i.

analogWrite (10,0) // ierakstiet kartēto vērtību kā 10. kontaktu kā izvadi

Tādējādi mosfet vārti saņem 0 strāvu, kuras dēļ tie paliek izslēgti un motors ir izslēgts.

Tomēr, kad katls tiek pagriezts un katla vērtība mainās, mainās arī spriegums uz tapas A0, un šī vērtība tiek kartēta uz tapu # 10 ar proporcionāli palielinātu PWM platumu, izraisot lielāku strāvas plūsmu caur motoru un mosfetu iztukšošana, kas savukārt ļauj motoram proporcionāli iegūt lielāku ātrumu, un tas pats notiek otrādi.

Tādējādi no iepriekš minētās diskusijas mēs varam redzēt, kā Arduino var izmantot, lai kontrolētu lielas strāvas līdzstrāvas motora ātrumu, kā arī virzienu (atpakaļgaitā uz priekšu), vienkārši pielāgojot norādīto podu un izmantojot pāris spiedpogas.

Atjaunināt : Augstas strāvas motoram, lūdzu, izmantojiet 12 V / 30 amp relejus un BJT vadītāja pakāpienus, lai darbinātu šos lieljaudas relejus, kā norādīts šajā modificētajā diagrammā:




Pāri: Automašīnas atpakaļgaitas stāvvietas sensora ķēde ar trauksmi Nākamais: Arduino PWM signālu ģeneratora shēma