Come pilotare un motore elettrico usando Arduino

Pubblicato su News il 15/06/2018 da sergio rame ‐ 4 min di lettura

Come pilotare un motore elettrico usando Arduino

Arduino e i dispositivi ad alto assorbimento

In molte applicazioni della Robotica ci troveremo ad usare dispositivi ad alto assorbimento, che richiedono correnti che i nostri controller possano pilotare. In questi casi, prima di passare ai relay dedicati potremo usare un transistor di media potenza come il TIP120.


Uno dei malintesi più comuni tra chi inizia con la microelettronica è la idea di pilotare motori elettrici, servocomandi o decine di Led usando solo le uscite di Arduino. Purtroppo questi e svariati altri dispositivi richiedono correnti e tensioni molto più alte di quelle erogabili da Arduino (40mA ~ 5.0V).

Solo per fare un esempio, il piccolo motore elettrico che useremo in questo progetto richiede correnti di 500mA (milliampere) per potere funzionare: pensate alla corrente che sarebbe necessaria per spostare un cancello automatico!

Detto questo, la soluzione ai problemi di corrente o tensione è davvero semplice: usare un transistor come interruttore o “switch”, e per questo compito non esiste nulla di meglio che usarne uno di tipo Darlington come ad esempio il TIP120.


Non appena applichiamo una piccola tensione alla base di un transistor Darlington, il componente si attiva e permette alla corrente ad alto amperaggio di passare liberamente.

Se vuoi approfondire la differenza tra corrente e tensione ti consiglio di leggere questo articolo del blog.

Usando il TIP120 come un interruttore velocissimo, possiamo regolare la velocità del motorino usando la tecnica PWM o Modulazione a larghezza di impulso. Per applicare la PWM al nostro controller useremo la piccola tensione proveniente dal pin 9 di Arduino per attivare il Tip 120 in modo discontinuo. Con delle pause sempre più lunghe tra un impulso e l’altro possiamo rallentare la velocità del motorino, mentre con pause ridotte a zero possiamo mandarlo al massimo.

schema dei PIN del TIP120

Nel circuito useremo anche un piccolo diodo, l’N4001 destinato a proteggere il transistor dalle correnti prodotte dal motorino quando, ad esempio, lo fai girare manualmente: il diodo serve appunto come una “conduttore a senso unico” e impedirà alle correnti parassite o in “reverse” di danneggiare il TIP120.



Come proteggere un circuito dalle tensioni parassite

Se un circuito è alimentato da una batteria, è possibile utilizzare un diodo N4001 per proteggere il circuito dalla tensione inversa della batteria. La batteria ha una tensione inversa di circa 2 V. Se la tensione inversa della batteria supera la tensione di soglia del diodo N4001, il diodo inizierà a condurre corrente. Questa corrente limiterà la tensione inversa applicata al circuito, proteggendolo da danni.

Un altro modo per utilizzare un diodo N4001 per proteggere un circuito è di collegarlo in parallelo al circuito. In questo modo, il diodo si accenderà in caso di sovraccarico del circuito. Il sovraccarico può essere causato da un aumento della corrente o della tensione applicata al circuito. Quando il diodo si accende, limita la corrente che fluisce attraverso il circuito, proteggendolo da danni.


Ecco altri esempi specifici di come può essere utilizzato un diodo N4001 per proteggere un circuito:

  • Protezione da tensione inversa: un diodo N4001 può essere utilizzato per proteggere un circuito alimentato da una batteria dalla tensione inversa della batteria.
  • Protezione da sovraccarico di corrente: un diodo N4001 può essere utilizzato per proteggere un circuito da un sovraccarico di corrente.
  • Protezione da sovraccarico di tensione: un diodo N4001 può essere utilizzato per proteggere un circuito da un sovraccarico di tensione.

Perchè il pin 9

Useremo spesso il terminale 9 PWM di Arduino perchè rappresenta il pin PWM più facile da individuare sulla scheda: se guardi altri progetti vedrai come molti abbiano fatto la scelta, non per esigenze tecniche dunque, ma solo per comodità.

Lo schema del circuito

Segui attentamente la disposizione dei connettori, studia la foto e potrai collegare Il TIP120 al tuo Arduino in pochi minuti.

schema del driver per motore elettrico con TIP120 per Arduino

I collegamenti del “solo” Arduino

graph TD VCC -->|5V| E[Arduino] base-TIP-120 -->|PIN 9| E[Arduino] GND -->|GND| E[Scheda Arduino]

Il codice completo

int pinMotorino = 9;

void setup() {
  Serial.begin(9600);
  pinMode(pinMotorino, OUTPUT);  
}

void loop() {
  Serial.println("Loop");
    for(int x = 0; x <= 255; x++)
      analogWrite(pinMotorino, x); 
      delay(20); 
    }    
  delay(1);
}

Fai copia e incolla nell’IDE di Arduino e quindi compila e fai l’upload programma. Dopo il reset dovresti sentire il motorino accelerare e rallentare ciclicamente…

Robotdazero.it - post - R.137.2.1.0

RESTA IN CONTATTO

Novità settimanali su prodotti, offerte speciali, corsi e altro ancora.