Motorstrømskreds med høj strøm ved hjælp af Arduino

Prøv Vores Instrument Til At Fjerne Problemer





I dette projekt diskuterer vi hvordan kontrol motorhastighed ved hjælp af Arduino PWM-kredsløb, og hvordan man implementerer baglæns eller retningskontrol i en DC-motor ved hjælp af Arduino gennem et par trykknapkontakter. Enhver højstrømsmotor op til 30 amp kan styres ved hjælp af denne opsætning

VedAnkit Negi



Motor er en meget vigtig komponent i elektrisk og elektronik, da de bruges som aktuatorer i mange områder.

Vi har brug for motorer til små applikationer som robotik samt i områder, hvor der anvendes tunge motorer (industrier osv.).



Nu kan motorer, der bruges til små applikationer, let styres, da de ikke tager meget strøm (mindre end 2 amp).

Og disse motorer kan let styres ved hjælp af mikrocontroller som arduino med motorchauffør, som L298 eller L293D .

Men motorer, der bruges til tunge formål (større end 10 amp), kan ikke styres ved hjælp af disse ic'er da de kan levere begrænset strøm (maks. 2amp). Så hvordan styres disse motorer end?

Svaret er simpelt: ved hjælp af relæer , som fungerer som switche, dvs. skifte stor strøm ved hjælp af lille strøm. På denne måde kan to ting opnås:

1. At køre vores motor med høj strøm.

2. Isolering af kredsløbet og dermed forhindring af stød.

Nu kan enhver mikrokontroller bruges til at skifte disse relæer. Vi bruger arduino UNO her.

KOMPONENTER, DER KRÆVES TIL DETTE PROJEKT:

1. ARDUINO UNO: at give inputlogik til relæets primære side.

2. SPDT RELAY -2: to relæer kræves for rotation i begge retninger. Kontakter skal klassificeres for at håndtere specifikationer for motorer med høj strøm

Relæbillede blå farve relæ, der viser N / O N / C og poldetaljer3. Power Mosfet: Du kan bruge IRF1010 mosfet trykknap mikrobryder

4. BATTERI (12v): for at levere strøm til motoren.

5. TO PUSHBUTTONS: at give input til arduino (dvs. når den trykkes og når den ikke trykkes)

10k 1/4 watt modstand

6. TO 10K MODSTAND: til afvisning (forklaret nedenfor)

Motorstrømskreds med høj strøm ved hjælp af Arduino

7. TILSLUTNINGSLEDNINGER: til oprettelse af forbindelser.

SKEMATISK:

PWM Arduino Motor Control Circuit

Foretag forbindelser som vist på figuren.

1. Tilslut normalt åben terminal på begge relæer til batteriets positive terminal og normalt lukkede terminal til batteriets negative terminal.

2. Tilslut motoren mellem den resterende terminal (ud af tre) på hvert relæ.

3. Tilslut den ene terminal på den primære side af relæerne til udgangsstifterne på arduino som specificeret i koden og den anden terminal til jorden.

4. Tilslut den ene terminal på begge trykknapper til 5v-stiften på arduino og den anden terminal til inputstifterne som specificeret i koden.

4. ** Glem ikke at forbinde modstande, da de er meget vigtige for, at dette kredsløb fungerer korrekt, som forklaret nedenfor:

HVORFOR TILSLUTTES MODSTANDE?

Du kan finde ud af, at der slet ikke er noget forbundet med Arduino-indgangsstifter, men det betyder ikke, at disse pinouts kan være et logisk nul, når den angivne kontakt er åben

Det betyder snarere, at når switch er åben, kan arduino tage en tilfældig værdi mellem logik 0 og logik 1, hvilket slet ikke er godt (dette kaldes hoppende).

Så hvad vi vil have her, er at når intet er forbundet til inputstiften, dvs. trykknappen er åben, tager arduino 0 input fra stiften.

Og for at opnå dette er stiften direkte forbundet til jorden før trykknappen via modstand. Hvis den er direkte forbundet til jorden uden modstand, er der gode chancer for, at den vil brænde ud, da stiften vil blive kortsluttet til jorden, og en enorm mængde strøm vil strømme. For at forhindre dette tilsluttes en modstand imellem.

Denne modstand kaldes nedrulningsmodstand, da den trækker logikken på stiften til 0. Og denne proces kaldes afvisning.

KODE:

Brænd denne kode i din 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)
}
}

Arbejde (forståelse kode):

• RETNINGSKONTROL:

A. Når begge trykknapper ikke trykkes ned:

I denne tilstand tager arduino 0 input fra begge stifter. Som specificeret i koden i denne tilstand giver begge outputstifter 0 logik (LAV):

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

digitalWrite (9, LAV)}

Da indgangsspænding til primær for begge relæer er nul sekundær terminal af begge forbliver i normalt lukket position. Således er der nul volt ved begge terminaler af motoren, hvilket forårsager ingen rotation.

B. Når der trykkes på trykknap X, men Y ikke trykkes:

I denne tilstand tager arduino 0 indgange fra pin 4, men input1 fra pin3. Som specificeret i koden i denne tilstand skal pin 6 være i logik 1 (HIGH), mens pin 9 ved logik 0 (LOW):

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

digitalWrite (9, LAV)}

Da indgangsspænding til relæ # 1 er høj, kastes kontakten til dette relæ til normalt åben tilstand, mens indgangsspænding til relæ 2 er lav, kontakten til dette relæ forbliver i normalt lukket tilstand, hvilket forårsager henholdsvis 12v og 0v på tværs af motorklemmerne, hvilket forårsager motorens rotation i en retning.

C. Når der trykkes på trykknap Y, men X ikke trykkes:

I denne tilstand tager arduino 1 input fra pin 4, men input0 fra pin3. Som specificeret i koden i denne tilstand skal pin 6 være ved logik 0 (LAV), mens pin 9 ved logik 1 (HIGH):

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

digitalWrite (9, HIGH)}

Da indgangsspænding til relæ # 2 er høj denne gang, kastes kontakten til dette relæ til normalt åben tilstand, mens indgangsspænding til relæ # 1 er lav, kontakten til dette relæ forbliver i normalt lukket tilstand, hvilket forårsager henholdsvis 12v og 0v over motoren terminaler, hvilket forårsager rotation af motoren i en anden retning.

D. Når begge trykknapper trykkes ned:

I denne tilstand tager arduino 1 input fra begge stifter. Som specificeret i koden i denne tilstand giver begge outputstifter 0 logik (LAV):

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

digitalWrite (9, LAV)}

Da indgangsspænding til primær for begge relæer er nul sekundær terminal af begge forbliver i normalt lukket position. Således er der nul volt ved begge terminaler af motoren, hvilket forårsager ingen rotation.

• HASTIGHEDSKONTROL:

Lad os sige, at potentiometer er i en sådan position, når det giver 0 volt som input til A0-stiften på arduino. På grund af dette kortlægger arduino denne værdi som 0 og giver således 0 som output PWM på pin # 10, dvs.

analogWrite (10,0) // skriv den tilknyttede værdi til 10. pin som output

Derfor får mosfets port 0 strøm, som den forbliver slukket, og motoren er i slukket position.

Da gryden roteres, og grydelens værdi varieres, varierer spændingen på pin A0 også, og denne værdi kortlægges på pin # 10 med en forholdsmæssigt stigende PWM-bredde, hvilket får mere strøm til at strømme gennem motoren og mosfet afløb, hvilket igen giver motoren mulighed for at få større hastighed forholdsmæssigt, og det samme sker omvendt.

Således kan vi fra ovenstående diskussion se, hvordan en Arduino kan bruges til at kontrollere hastigheden såvel som retningen (baglæns fremad) på en højstrøms DC-motor ved blot at justere den specificerede pot og gennem et par trykknapper.

Opdatering : Ved motor med høj strøm skal du bruge 12V / 30 amp relæer og BJT driver trin til at betjene disse høj effekt relæer som angivet i følgende ændrede diagram:




Forrige: Car Reverse Parking Sensor Circuit with Alarm Næste: Arduino PWM Signal Generator Circuit