Come pilotare un motore elettrico usando Arduino
Pubblicato su News il 15/06/2018 da sergio rame ‐ 3 min di lettura

In questa pagina
Come azionare Robot, servomandi e luci ad alto assorbimento usando un semplice transistor di tipo darlington, il TIP120 collegato al tuo Arduino.
Nelle applicazioni industriali della Robotica ci troviamo in genere a lavorare con dispositivi ad alto assorbimento, assai più ostici di LED o piccoli servocomandi: nulla che i delicati circuiti della microelettronica potrebbero mai pilotare. Ci servono i muscoli dei transistor di grande e media potenza come il TIP120.
Uno dei malintesi più comuni tra chi inizia con la microelettronica è l’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.

La cosa che ti darà più noia nell’usare il TIP120 è vedere nello schema teorico ufficiale la base al centro del transistor e nel componente fisico ritrovarla piazzata a sinistra! Perciò pensa solo ai PIN fisici, così disposti: B - C - E.
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.
Ho scelto il terminale 9 di Arduino non a caso ma perchè facilissimo da inviduare sulla scheda: se guardi altri progetti vedrai come molti abbiano fatto la stessa scelta. Non per esigenze tecniche dunque, ma solo per comodità.
Lo schema grafico:
Segui attentamente la disposizione dei connettori, studia la foto e potrai collegare Il TIP120 al tuo Arduino in pochi minuti.

La tabella delle connessioni:
Breadboard Arduino - VCC <------> 5V - base Tip 120 <------> Pin 9 - GND <------> GND
E infine il codice completo:
Questo programma è stato scritto in ambiente Windows 10. In genere utilizzo solo Linux nei miei progetti per un motivo semplicissimo: se devo programmare delle schede di tipo Raspberry o BeagleBone non è possibile installare Windows. Per questo motivo ti consiglio di installare subito Ubuntu 22.04 sul tuo PC desktop e iniziare ad usare il terminale a linea di comando con la shell "Bash".