Motorströmkrets med hög ström med Arduino

Prova Vårt Instrument För Att Eliminera Problem





I det här projektet diskuterar vi hur kontrollera motorhastigheten använder Arduino PWM-krets, och hur man implementerar backning framåt eller riktningskontroll i en likströmsmotor med Arduino genom ett par tryckknappsbrytare. Alla motorer med hög ström upp till 30 ampere kan styras med denna inställning

FörbiAnkit Negi



Motor är en mycket viktig komponent inom el och elektronik eftersom de används som ställdon på många områden.

Vi behöver motorer för små applikationer som robotik samt i områden där tunga motorer används (industrier etc.).



Nu kan motorer som används för små applikationer enkelt styras eftersom de inte tar mycket ström (mindre än 2 amp).

Och dessa motorer kan enkelt styras med hjälp av mikrokontroller som arduino med motorförare ic som L298 eller L293D .

Men motorer som används för tunga ändamål (större än 10 amp) kan inte styras använder dessa ic eftersom de kan leverera begränsad ström (max 2amp). Så hur styrs dessa motorer än?

Svaret är enkelt: använder reläer , som fungerar som omkopplare, dvs byter stor ström med liten ström. På detta sätt kan två saker uppnås:

1. Köra vår högströmsmotor själv.

2. Isolering av kretsen, vilket förhindrar stötar.

Nu kan valfri mikrokontroller användas för att växla dessa reläer. Vi kommer att använda arduino UNO här.

KOMPONENTER SOM KRÄVS FÖR DETTA PROJEKT:

1. ARDUINO UNO: att ge ingångslogik till reläets primära sida.

2. SPDT RELÄ -2: två reläer krävs för rotation i båda riktningarna. Kontakterna måste klassificeras för att hantera motorns specifikationer med hög ström

Reläbild blå färg relä som visar N / O N / C och poldetaljer3. Power Mosfet: Du kan använda IRF1010 mosfet tryckknapp mikrobrytare

4. BATTERI (12v): för att leverera ström till motorn.

5. TVÅ PUSHBUTTONS: för att ge ingångar till arduino (dvs. när du trycker på och när den inte trycks ned)

10k 1/4 watt motstånd

6. TVÅ 10K MOTSTANDAR: för avstängning (förklaras nedan)

Motorströmkrets med hög ström med Arduino

7. ANSLUTNINGSKABLAR: för anslutningar.

SCHEMATISK:

PWM Arduino Motor Control Circuit

Gör anslutningar enligt bilden.

1. Anslut den normala öppna terminalen på både reläet till den positiva polen på batteriet och den normalt slutna terminalen till batteriets minuspol.

2. Anslut motorn mellan återstående terminal (av tre) på varje relä.

3. Anslut en terminal på primärsidan av reläer till utgångarna på arduino som anges i koden och den andra terminalen till jord.

4. Anslut en terminal på båda tryckknapparna till 5v-stift av arduino och andra terminaler till ingångsstift som anges i koden.

4. ** Glöm inte att ansluta motstånd eftersom de är mycket viktiga för att den här kretsen ska fungera, som förklaras nedan:

VARFÖR MOTSTÅNDER ANSLUTAS?

Du kanske upptäcker att det alls inte är något anslutet till Arduinos ingångsstift, men det betyder inte att dessa pinouts kan vara en logisk noll när den angivna omkopplaren är öppen

Snarare innebär det att när växeln är öppen kan arduino ta vilket slumpmässigt värde som helst mellan logik 0 och logik 1, vilket inte alls är bra (detta kallas studsande).

Så vad vi vill ha här är att när ingenting är anslutet till ingångsstiftet, dvs tryckknappen är öppen, tar arduino 0 ingångar från stiftet.

Och för att uppnå detta är stiftet direkt anslutet till jord före tryckknappen via motstånd. Om den är direkt ansluten till jord utan motstånd finns det goda chanser att den kommer att brinna ut eftersom stiftet kommer att kortslutas till marken och enorm mängd ström kommer att strömma. För att förhindra detta är ett motstånd anslutet däremellan.

Detta motstånd kallas nedrullningsmotstånd eftersom det drar logiken på stiftet till 0. Och denna process kallas avstängning.

KODA:

Bränn den här koden 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)
}
}

Arbete (förståelse kod):

• RIKTNINGSKONTROLL:

A. När båda tryckknapparna inte är nedtryckta:

I detta tillstånd tar arduino 0 ingångar från båda stiften. Som anges i koden i detta tillstånd ger båda utgångsstiften 0-logik (LOW):

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

digitalWrite (9, LOW)}

Eftersom ingångsspänningen till primär för båda reläerna är noll sekundär terminal för båda förblir i normalt stängt läge. Således är det noll volt vid båda terminalerna på motorn, vilket orsakar ingen rotation.

B. När tryckknapp X trycks in men Y inte:

I detta tillstånd tar arduino 0 ingångar från stift 4 men ingång1 från stift3. Såsom anges i koden i detta tillstånd ska stift 6 vara vid logik 1 (HÖG) medan stift 9 vid logik 0 (LÅG):

om (x == 1 && y == 0) {digitalWrite (6, HÖG)

digitalWrite (9, LOW)}

Eftersom ingångsspänningen till relä # 1 är hög kastas omkopplaren för detta relä till normalt öppet tillstånd medan ingångsspänningen till relä 2 är låg, förblir omkopplaren för detta relä i normalt stängt tillstånd och orsakar 12v respektive 0v över motoranslutningarna, vilket orsakar motorns rotation i en riktning.

C. När tryckknapp Y trycks in men X inte:

I detta tillstånd tar arduino 1 ingång från stift 4 men input0 från stift3. Såsom anges i koden i detta tillstånd ska stift 6 vara vid logik 0 (LÅG) medan stift 9 vid logik 1 (HÖG):

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

digitalWrite (9, HÖG)}

Eftersom ingångsspänningen till relä # 2 är hög den här gången kastas omkopplaren till detta relä till normalt öppet tillstånd medan ingångsspänningen till relä nr 1 är låg, förblir omkopplaren för detta relä i normalt stängt tillstånd och orsakar 12v respektive 0v över motorn terminaler, vilket orsakar motorns rotation i en annan riktning.

D. När båda tryckknapparna trycks in:

I detta tillstånd tar arduino 1 ingång från båda stiften. Som anges i koden i detta tillstånd ger båda utgångsstiften 0-logik (LOW):

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

digitalWrite (9, LOW)}

Eftersom ingångsspänningen till primär för båda reläerna är noll sekundär terminal för båda förblir i normalt stängt läge. Således finns det noll volt vid båda terminalerna på motorn, vilket orsakar ingen rotation.

• HASTIGHETS KONTROLL:

Låt oss säga att potentiometer är i en sådan position när den ger 0 volt som ingång till A0-stiftet på arduino. På grund av detta kartlägger arduino detta värde som 0 och ger därmed 0 som utgång PWM på stift nr 10, dvs.

analogWrite (10,0) // skriv det mappade värdet till 10: e stift som utdata

Därför får mosfets grind 0 ström på grund av vilken den förblir avstängd och motorn är i avstängt läge.

Men när potten roteras och värdet på potten varieras varierar också spänningen på stift A0, och detta värde mappas på stift nr 10 med en proportionellt ökande PWM-bredd, vilket får mer ström att strömma genom motorn och mosfet avlopp, vilket i sin tur gör att motorn kan öka hastigheten proportionellt, och detsamma händer tvärtom.

Således från ovanstående diskussion kan vi se hur en Arduino kan användas för att styra hastigheten såväl som riktningen (bakåt framåt) för en högströms DC-motor helt enkelt genom att justera den angivna potten och genom några tryckknappar.

Uppdatering : För motor med hög ström, använd 12V / 30 amp-reläer och BJT-drivsteg för att driva dessa högeffektreläer enligt följande modifierade diagram:




Tidigare: Car Reverse Parking Sensor Circuit with Alarm Nästa: Arduino PWM Signal Generator Circuit