Indipendentemente da quale applicazione di robotica siate interessati, quasi sicuramente vi ritroverete con la necessità di pilotare dei motori elettrici DC. Se per piccoli carichi, quali mini servomotori o motorini simili a quelli della vibrazione del telefonino, potrebbe essere sufficiente (anche se caldamente sconsigliato vista la natura induttiva del carico) collegarli direttamente al microcontrollore utilizzando l’alimentazione delle sue porte di uscita, per carichi più impegnativi sarà necessario avere una alimentazione esterna dei motori.

Per tale seconda evenienza ci vengono in aiuto degli integrati chiamati driver. Di driver ne esistono una infinità di tipologie, differenti a seconda della potenza erogabile, della tipologia di motori pilotabili (stepper, DC, ecc…) e dal tipo di pilotaggio. Uno dei driver maggiormente usati è l’L298, sia per la sua semplicità costruttiva (necessita di pochi altri componenti) che per la sua potenza erogabile.

Il circuito integrato L298 è un doppio driver per motori DC.

componenti

Il funzionamento di detto circuito è garantito a partire da tensioni di ingresso di 6V fino a tensioni di 30V e consente un pilotaggio di motorini fino aduna corrente di 4A.

Ma adesso veniamo a ciò che tutti voi aspettavate: che componenti mi servono? la risposta la trovate nella seguente “lista della spesa”:

Lista dei componenti

  • 1 x L298 motor driver chip
  • 1 x LM2937 regolatore di tensione
  • 1 x 22μF capacità
  • 1 x 0.1μF capacità
  • 2 x 47k Enable pull-up resistors (Yellow / Violet / Orange / Gold)
  • 2 x 2.2k LED current limit resistors – (Red / Red / Red / Gold)
  • 2 x Red LEDs
  • 2 x Green LEDs
  • 8 x 1N5818 Schottky EMF-protection Diodes
  • 1 – 3-position terminal block
  • 2 – 2-position terminal block
  • 2 – 3-position interface socket strips
schema_l298
Schema circuito driver

Nella configurazione che appresso vi presenteremo sono stati inseriti una serie di componenti opzionali che però rendono l’uso del driver, sia in fase di testing che di lavoro, molto più agevole. In particolare sono stati inseriti dei diodi di protezione (nello schema indicati con numerazione progressiva da D5 a D12) e 4 led (due per canale, quelli verdi D1 eD4 e quelli rossi D2 e D3) che ci segnaleranno il verso di rotazione dei motorini.

Sebbene l’inserimento dei led possa sembrare poco rilevante, devo ammettere che in fase di collaudo e durante i vari utilizzi ci ha permesso di riscontrare subito errori nei collegamenti (inversione dei poli).

Il driver presenta anche due pin di Current sensing (SEN_A e SEN_B), uno per canale, che ci consentono di misurare la corrente assorbita da ciascun canale ed eventualmente limitarla per evitare di bruciare il circuito.

Se non si vuole misurare la corrente (come abbiamo fatto al momento noi nel nostro prototipo) basta mettere a massa i due pin di sensing. Invece, se si vuole avere un controllo sull’assorbimento della corrente, bisogna inserire una resistenza di 0.1 – 1 Ohm (R5 e R6), avendo cura di scegliere una resistenza con il giusto valore di potenza dissipabile secondo la formula

P=I^2*R

Sono state inserite due resistenze di pull-up (R1 e R4) che hanno il compito di inviare il segnale alto al canale dell’Enable così che, se non si vuole o non si può (per mancanza di uscite dal microcontrollore) pilotare i pin dell’Enable il circuito sarà sempre abilitato. I due pin di Enable hanno il compito di “abilitare”  o “disabilitare” i canali del driver.