Pilotare un motore con Arduino

Buongiorno e ben ritrovati cari amici lettori, l’argomento della lezione odierna è come comandare un motore con Arduino.

Direte: niente di più facile, basta che prendo un shield per il controllo dei motori, beh ormai lo saprete, noi odiamo le cose facili e soprattutto comprate già pronte, noi dobbiamo fare fatica, costruirle, e soprattutto riciclare!

Altra soluzione potrebbe essere alimentare i motori con qualcosa di esterno ad Arduino e utilizzare un relè (soluzione molto semplice ma comunque necessita l’acquisto dei suddetto relè), noi però da bravi avventurieri abbiamo deciso di costruirci un circuito da battaglia per il pilotaggio.

Fase 1: Progettazione

L’idea di base del progetto è molto semplice ed è spiegata molto bene in questo disegno

2014-06-05 09.47.41

Il nucleo del circuito è il BJT 2n2222 grazie al quale avviene il pilotaggio del motore, poichè quando viene dato il segnale tramite un pin di Arduino sulla base del BJT esso farà scorrere corrente in modo tale che il motore giri

Fase 2: Testing

Mettendo il BJT in configurazione transdiodo ed alimentando il circuito con due batterie stilo da 3V ne abbiamo testato il funzionamento prima di collegarlo per la prova finale ad Arduino, onde evitare di bruciare qualcosa.

Fase 3: Arrabbiarsi

Come ultimo passo della nostra prova abbiamo collegato il circuito ad Arduino, dopo aver caricato il semplice programma del blink led, aumentandone però il delay, abbiamo appurato che la resistenza sulla base era troppo alta (2kohm) ed il motore non iniziava a girare spontaneamente, così, dopo aver abbassato la stessa ed averne messa una da 300 ohm non si è risolto nulla, ed in preda ad una furia che solo Hulk potrebbe comprendere, è giunto il momento di usare un fottutissimo MOS.

Fase 4: Tentativo con MOS

Dopo aver sostituito con un nMOS il BJT usato precedentemente cambiando l’alimentazione da 5V a 3.3V abbiamo risolto ogni problema ed il motore gira tranquillamente rispettando i comandi di Arduino. Ora però si è posto un altro problema: credo che il regolatore di tensione interno di Arduino sia troppo sollecitato con tutta questa corrente, ma questa è un’altra storia, ne parleremo più avanti.

2014-06-05 19.28.07

Stay Tuned