- Components necessaris:
- Diagrama del circuit i explicacions:
- Càlculs actuals:
- Funcionament del motor bidireccional controlat per Arduino:
En aquest projecte controlem la direcció i la velocitat d’un motor de corrent alt de 24 V mitjançant Arduino i dos relés. No es necessiten interruptors d’alimentació per a aquest circuit, només dos botons i potenciómetre per controlar la direcció i la velocitat del motor de corrent continu. Un polsador girarà el motor en sentit horari i l’altre el girarà en sentit antihorari. Es requereix un MOSFET de canal n per controlar la velocitat del motor. Els relés s’utilitzen per canviar les direccions del motor. S'assembla al circuit H-Bridge.
Components necessaris:
- Arduino Uno
- Dos relés de 12v (també es pot utilitzar relé de 5v)
- Dos transistors; BC547
- Dos polsadors
- IRF540N
- 10k resistència
- Font de 24 volts
- Potenciòmetre de 10K
- Tres díodes 1N4007
- Connexió de cables
Diagrama del circuit i explicacions:
El diagrama de circuits d’aquest projecte de control del motor bidireccional es mostra a la imatge següent. Feu les connexions segons:

- Connecteu el terminal normalment tancat dels dos relés al terminal positiu de la bateria.
- Connecteu el terminal normalment obert dels dos relés al terminal de drenatge del MOSFET.
- Connecteu la font del MOSFET al terminal negatiu de la bateria i al pin de terra d'Arduino UNO.
- Terminal de porta al pin 6 de PWM d'Arduino.
- Connecteu la resistència de 10 k de porta a font i el díode 1N4007 de font a drenatge.
- Connecteu el motor entre el terminal mitjà dels relés.
- Dels dos terminals restants, un va al pin Vin d'Arduino Uno i l'altre al terminal del transistor del col·lector (per a cada relé).
- Connecteu el terminal emissor dels dos transistors al pin GND d'Arduino.
- Els pins digitals 2 i 3 d'Arduino, cadascun en sèrie amb polsador, van a la base dels transistors.
- Connecteu el díode a través del relé exactament com es mostra a la figura.
- Connecteu el terminal final del potenciòmetre al pin 5v i al pin Gnd d’Arduino respectivament. I terminal del netejador al pin A0.
- ** Si teniu dues bateries separades de 12 V, connecteu el terminal positiu d'una bateria al terminal negatiu d'una altra bateria i utilitzeu els dos terminals restants com a positius i negatius.


Propòsit dels transistors: els
pins digitals d'Arduino no poden subministrar la quantitat de corrent necessària per engegar un relé normal de 5 V. A més, estem utilitzant relés de 12v en aquest projecte. El pin Vin d'Arduino no pot subministrar fàcilment tant de corrent per als dos relés. Per tant, els transistors s'utilitzen per conduir el corrent des del pin Vin d'Arduino fins al relé que es controla mitjançant un polsador connectat des del pin digital al terminal base del transistor.
Finalitat d'Arduino:
- Per proporcionar la quantitat de corrent necessària per activar el relé.
- Per activar el transistor.
- Per controlar la velocitat dels motors de CC amb potenciòmetre mitjançant la programació. Comproveu el codi Arduino complet al final.
Propòsit de MOSFET:
es requereix MOSFET per controlar la velocitat del motor. El MOSFET s’encén i s’apaga a una tensió d’alta freqüència i, atès que el motor està connectat en sèrie amb el drenatge de MOSFET, el valor de la tensió PWM determina la velocitat del motor.
Càlculs actuals:
La resistència de la bobina del relé es mesura mitjançant un multímetre que resulta ser = 400 ohms
Vin pin d'Arduino dóna = 12v
Per tant, cal activar el relé actual = 12/400 amperes = 30 mA
Si els dos relés estan activats, el corrent = 30 * 2 = 60 mA
** El pin Vin d'Arduino pot subministrar corrent màxim = 200mA.
Per tant, no hi ha cap problema actual a Arduino.
Funcionament del motor bidireccional controlat per Arduino:
El funcionament d’aquest circuit de control de motor de dues vies és senzill. Els dos pins (2, 3) d'Arduino es mantindran sempre alts.

Quan no es prem cap botó:
En aquest cas, no circula corrent cap a la base del transistor, de manera que el transistor roman apagat (actua com un interruptor obert) a causa del qual no circula corrent per transmetre la bobina del pin Vin d'Arduino.
Quan es prem un botó:
En aquest cas, una mica de corrent flueix a la base del transistor mitjançant un polsador premut que l'encén. Ara el corrent flueix fàcilment a la bobina del relé des del pin Vin a través d’aquest transistor que encén aquest relé (RELAY A) i el commutador d’aquest relé es posa a la posició NO. Mentre que un altre relé (RELÉ B) encara està en posició NC. Així, el corrent flueix des del terminal positiu de la bateria fins al terminal negatiu a través del motor, és a dir, el corrent flueix des del relé A fins al relé B. Això provoca una rotació del motor en sentit horari.
Quan es prem un altre botó:
Aquesta vegada s’encén un altre relé. Ara el corrent flueix fàcilment a la bobina del relé des del pin Vin a través del transistor que encén aquest relé (RELÉ B) i el commutador d'aquest relé es llença a la posició NO. Mentre que un altre relé (RELÉ A) es manté en posició NC. Així, el corrent flueix des del terminal positiu de la bateria fins al terminal negatiu de la bateria a través del motor. Però aquesta vegada el corrent flueix del relé B al relé A. Això provoca una rotació del motor en sentit antihorari
Quan es premen els dos botons:
En aquest cas, el corrent flueix cap a la base dels dos transistors a causa dels quals s'encenen els dos transistors (actua com un interruptor tancat). I, per tant, els dos relleus estan ara en posició NO. Per tant, el corrent no flueix des del terminal positiu de la bateria cap al terminal negatiu a través del motor i, per tant, no gira.
Control de la velocitat del motor de corrent continu:
Gate of MOSFET està connectat al pin 6 de PWM d'Arduino UNO. El Mosfet s’encén i s’apaga a una tensió de freqüència PWM elevada i, atès que el motor està connectat en sèrie amb el drenatge del mosfet, el valor de la tensió PWM determina la velocitat del motor. Ara, la tensió entre el terminal del netejador del potenciòmetre i Gnd determina la tensió PWM al pin no 6 i a mesura que es gira el terminal del netejador, el voltatge del pin analògic A0 canvia provocant un canvi de velocitat del motor.
El funcionament complet d’aquest control bidireccional de velocitat i direcció del motor basat en Arduino es mostra al vídeo següent amb el codi Arduino.
