Circuit de control del motor d’alta intensitat mitjançant Arduino

Proveu El Nostre Instrument Per Eliminar Problemes





En aquest projecte, discutim com fer-ho controlar la velocitat del motor fent servir el circuit Arduino PWM i com implementar el control de direcció inversa o de direcció en un motor de corrent continu mitjançant Arduino mitjançant un parell d’interruptors de botó. Es pot controlar qualsevol motor de corrent elevat fins a 30 amp

PerAnkit Negi



El motor és un component molt essencial en electricitat i electrònica, ja que s’utilitzen com a actuadors en moltes àrees.

Necessitem motors per a petites aplicacions com la robòtica, així com en zones on s’utilitzen motors pesats (indústries, etc.).



Ara els motors que s’utilitzen per a aplicacions petites es poden controlar fàcilment ja que no consumeixen molta intensitat (menys de 2 amp).

I aquests motors es poden controlar fàcilment utilitzant un microcontrolador com arduino amb ic del conductor del motor com L298 o L293D .

Però els motors que s’utilitzen per a usos pesats (superiors a 10 amp) no es poden controlar utilitzant aquests ic’s ja que poden subministrar corrent limitat (màxim 2 amp). Llavors, com es controlen aquests motors?

La resposta és senzilla: mitjançant relés , que actua com a commutadors, és a dir, commuta un corrent gran mitjançant un corrent petit. D'aquesta manera es poden aconseguir dues coses:

1. Fent funcionar el nostre propi motor d’alta intensitat.

2. Aïllant el circuit, evitant així xocs.

Ara es pot utilitzar qualsevol microcontrolador per canviar aquests relés. Utilitzarem arduino UNO aquí.

COMPONENTS NECESSARIS PER A AQUEST PROJECTE:

1. ARDUINO UNO: per donar lògiques d’entrada al costat principal del relé.

2. SPDT RELAY -2: es necessiten dos relés per girar en ambdues direccions. Els contactes s’han de classificar per gestionar les especificacions del motor d’alta intensitat

Imatge de relleu de color blau relé que mostra N / O N / C i detalls de pal3. Mosfet de potència: podeu utilitzar el mosfet IRF1010 pulsador de microinterruptor

4. BATERIA (12v): per subministrar energia al motor.

5. DOS PULSADORS: per donar entrades a arduino (és a dir, quan es prem i quan no es prem)

Resistència de 10k 1/4 watts

6. DUES RESISTÈNCIES DE 10 K: per a descompte (s'explica a continuació)

Circuit de control del motor d’alta intensitat mitjançant Arduino

7. CONNEXIÓ DE CABLES: per fer connexions.

ESQUEMA:

Circuit de control del motor PWM Arduino

Feu connexions tal com es mostra a la figura.

1. Connecteu el terminal normalment obert del relé al terminal positiu de la bateria i el terminal normalment tancat al terminal negatiu de la bateria.

2. Connecteu el motor entre el terminal restant (de tres) de cada relé.

3. Connecteu un terminal del costat principal dels relés als pins de sortida de l'arduino tal com s'especifica al codi i un altre terminal a terra.

4. Connecteu un terminal d'ambdós polsadors a un pin de 5 V d'arduino i un altre terminal als pins d'entrada tal com s'especifica al codi.

4. ** No oblideu connectar resistències, ja que són molt importants per al bon funcionament d’aquest circuit, tal com s’explica a continuació:

PER QUÈ ESTAN CONNECTADES LES RESISTÈNCIES?

És possible que trobeu que no hi ha res connectat als pins d'entrada d'Arduino, però això no vol dir que aquests pinouts puguin ser un zero lògic quan l'interruptor indicat està obert.

Més aviat, implica que quan l'interruptor està obert, l'arduino pot prendre qualsevol valor aleatori entre la lògica 0 i la lògica 1, cosa que no és gens bona (això s'anomena rebot).

Per tant, el que volem aquí és que quan no hi ha res connectat al pin d’entrada, és a dir, que el botó de pressió estigui obert, l’arduino pren 0 entrada del pin.

I per aconseguir-ho, el pin es connecta directament a terra abans del polsador mitjançant una resistència. Si està connectat directament a terra sense resistència, hi ha bones probabilitats que es cremi a mesura que el pin es reduirà a terra i fluirà una gran quantitat de corrent. Per evitar-ho, es connecta una resistència pel mig.

Aquesta resistència s’anomena resistència desplegable, ja que està tirant de la lògica al pin fins a 0. I aquest procés s’anomena debouncing.

CODI:

Grabeu aquest codi al vostre 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)
}
}

Funcionament (comprensió del codi):

• CONTROL DE DIRECCIÓ:

A. Quan no es premen els dos botons:

En aquesta condició, arduino pren 0 entrada d'ambdós pins. Com s'especifica al codi en aquesta condició, els dos pins de sortida donen 0 lògica (BAIX):

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

digitalWrite (9, BAIX)}

Atès que la tensió d'entrada al primari d'ambdós relés és zero, el terminal secundari d'ambdós roman en posició normalment tancada. Per tant, hi ha zero volts als dos terminals del motor, cosa que no provoca cap rotació.

B. Quan es prem el botó X però no es prem Y,

En aquesta condició, arduino pren 0 entrades del pin 4 però input1 del pin3. Tal com s’especifica al codi en aquesta condició, el pin 6 hauria d’estar a la lògica 1 (ALTA) mentre que el pin 9 a la lògica 0 (BAIX):

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

digitalWrite (9, BAIX)}

Atès que el voltatge d'entrada al relé núm. 1 és alt, l'interruptor d'aquest relé es posa normalment obert mentre que el voltatge d'entrada al relé 2 és baix, l'interruptor d'aquest relé es manté en estat normalment tancat provocant 12v i 0v respectivament a través dels terminals del motor, rotació del motor en una direcció.

C. Quan es prem el botó Y però no es prem X:

En aquesta condició, arduino pren 1 entrada del pin 4 però input0 del pin3. Tal com s’especifica al codi en aquesta condició, el pin 6 hauria d’estar a la lògica 0 (BAIX) mentre que el pin 9 a la lògica 1 (HIGH):

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

digitalWrite (9, ALT)}

Com que el voltatge d’entrada al relé núm. 2 és elevat aquesta vegada, l’interruptor d’aquest relé es posa normalment obert mentre que el voltatge d’entrada al relé núm. 1 és baix, l’interruptor d’aquest relé es manté normalment tancat provocant 12v i 0v respectivament a través del motor terminals, provocant la rotació del motor en una altra direcció.

D. Quan es premen els dos botons:

En aquesta condició, arduino pren 1 entrada dels dos pins. Com s'especifica al codi en aquesta condició, els dos pins de sortida donen 0 lògica (BAIX):

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

digitalWrite (9, BAIX)}

Atès que la tensió d'entrada al primari d'ambdós relés és zero, el terminal secundari d'ambdós roman en posició normalment tancada. Per tant, hi ha zero volts als dos terminals del motor, cosa que no provoca cap rotació.

• CONTROL DE VELOCITAT:

Diguem que el potenciòmetre es troba en aquesta posició quan dóna 0 volts com a entrada al pin A0 d’arduino. A causa d'això, arduino assigna aquest valor a 0 i, per tant, dóna 0 com a sortida PWM al pin # 10, és a dir,

analogWrite (10,0) // escriviu el valor assignat al 10è pin com a sortida

Per tant, la porta del mosfet té 0 corrent a causa de la qual roman apagada i el motor es troba en la posició APAGADA.

Tanmateix, a mesura que es gira l’olla i el valor de l’olla varia, el voltatge al pin A0 també varia, i aquest valor s’assigna al pin # 10 amb una amplada PWM proporcionalment creixent, cosa que fa que flueixi més corrent a través del motor i del mosfet drenatge, que al seu torn permet que el motor guanyi més velocitat proporcionalment, i passa el mateix a la inversa.

Així, a partir de la discussió anterior, podem veure com es pot utilitzar un Arduino per controlar la velocitat i la direcció (marxa enrere) d’un motor de corrent continu simplement ajustant el pot especificat i mitjançant un parell de botons.

Actualització : Per a motors de gran corrent, utilitzeu relés de 12 V / 30 amperes i etapes de control BJT per operar aquests relés d’alta potència tal com s’indica al següent diagrama modificat:




Anterior: Circuit del sensor d’estacionament invers de cotxe amb alarma Següent: Circuit de generador de senyal Arduino PWM