DRIVER per motori DC (Puntata 3)

Driver

In questo articolo analizzeremo un sistema a microcontrollore per modulare la potenza erogabile a motori DC, lampade ad incandescenza, etc. Questa terza e ultima puntata fa parte della serie "DRIVER per motori DC" della Rubrica Firmware Reload, nella quale sono inseriti articoli tecnici della passata rivista cartacea Firmware, ancora di interesse per progettisti, ingegneri e appassionati di elettronica.

DEFINIZIONE DEI LIMITI DI POTENZA MINIMO E MASSIMO

Questi due limiti servono a far in modo che la potenza erogata in uscita (tradotta in velocità di un motore o luminosità di una lampadina), non scenda oltre un minimo e non superi un certo massimo. Questi due livelli vengono scelti entro l’intera scala dei valori di potenza consentiti, e vengono definiti uno per volta. La procedura ha inizio tenendo pressato il pulsante sw_set per almeno 2 secondi, al termine dei quali si riceverà una conferma con un triplice lampeggio del punto decimale del display (che poi rimarrà acceso). Una volta rilasciato il pulsante, il range di valori selezionabili si espanderà al massimo (da 0 al 100%), anche se in passato erano già stati settati tali limiti di potenza. A questo punto, tramite la manopola del potenziometro o tramite i tasti sw_up e sw_down, si dovrà scegliere il livello desiderato (massimo o minimo che sia). Il livello di potenza raggiunto sarà mostrato dal funzionamento del carico applicato (motore, lampadina, etc.).

Dopodiché, si dovrà pressare di nuovo sw_set e subito dopo sw_up o sw_down, se si intende settare rispettivamente il limite massimo o quello minimo. Un triplice lampeggio del punto decimale del display confermerà il termine della procedura e il salvataggio permanente su EEPROM (almeno fino alla prossima ridefinizione del limite appena salvato). Tale procedura deve essere completata entro circa 30 secondi, altrimenti verrà autodeterminata, e si vedrà il lampeggio veloce del punto decimale e del carattere "E" di ERRORE. A questo punto, viene ripreso il funzionamento normale del dispositivo, e vengono ripristinati i limiti precedentemente settati. Osserverete che, una volta modificati i limiti di potenza, l’accensione dei led si adeguerà a questi nuovi valori (vedi esempio per l’accensione di una lampadina). Nota: conviene eseguire questa procedura in modalità "a singolo senso di rotazione", dal momento che così si può godere dell’intera escursione del potenziometro. Infatti, nell’altra modalità di funzionamento (a doppio senso di rotazione), l’escursione del potenziometro viene equamente divisa ad entrambi i versi di rotazione.

connessione del programmatore al circuito

Figura 1: Connessione del programmatore al circuito

DEFINIZIONE DELLO STEP DI INCREMENTO/DECREMENTO DI POTENZA

Da questo momento in poi, questo parametro lo identificheremo con la scritta "inc", che tra le altre cose troverete sul codice sorgente del firmware. Si inizia la procedura tenendo premuti contemporaneamente sw_up e sw_down: dopo un secondo apparirà sul display il carattere "C" e dopo ulteriori 2 secondi entrerete nella procedura voluta; ecco allora che appariranno in sequenza "P" ed "S" (stanno per Power Step). A questo punto, l’uscita PWM verrà disabilitata, onde consentire lo spegnimento dei carichi pilotati. Seguirà uno zero, e a quel punto inizierete a fornire un numero a 3 cifre (partendo da quella delle centinaia), non superiore a 255. La limitazione a tale valore avverrà in automatico durante l’inserimento delle stesse cifre. Considerate che il livello di potenza varia da 0 a 1023, dunque se setterete inc a 255, con soli 4 incrementi/decrementi coprirete l’intero range di valori. Questo parametro quindi mi definisce la finezza della regolazione di potenza operata dai due pulsanti. Per cambiare la cifra da inserire, dovrete pigiare su sw_down, dopodiché la selezionerete pigiando su sw_up. Al termine della procedura, osserverete sul display il riepilogo del numero inserito e, automaticamente, il valore di inc verrà permanentemente salvato su EEPROM (almeno fino alla prossima riscrittura). Concluderà la procedura una molteplice rotazione dei segmenti del display. A questo punto, l’erogazione di potenza viene ristabilita riprendendo il precedente livello selezionato. Anche qui, se la procedura non viene chiusa dall’utente entro 30 sec, verrà segnalata la condizione di ERRORE, e ripristinato lo stato del sistema anteriore alla procedura stessa.

VELOCIZZAZIONE INCREMENTO/DECREMENTO DI POTENZA

Per poter passare più velocemente da un livello di potenza ad un altro (e così anche da un senso di rotazione all’altro), è possibile aumentare inc (lo step di potenza operato da sw_up e sw_down), semplicemente tenendo pressato uno dei due tasti: così facendo, la variabile inc verrà aumentata di un fattore 2. Osserverete che, una volta rilasciato il tasto, la velocità di cambiamento del livello di potenza verrà ripristinata al valore nominale. Ad esempio, se precedentemente avevate posto inc a 100 (quindi si avevano circa 10 livelli di potenza selezionabili), tenendo pressato uno dei due tasti porteremo automaticamente inc al valore 200 (quindi avremo 5 livelli di potenza).

BLOCCO DI EMERGENZA

Questa funzione consente l’azzeramento della potenza in uscita, e quindi il blocco dei motori pilotati (o lo spegnimento delle lampade). Sono previsti due metodi: uno logico e uno diretto. Blocco Logico: questo si attua aprendo INT1, ed è una condizione logica che viene rilevata dal microcontrollore ed attuata in tal senso. E’ sicuramente un metodo indiretto ma consente alcune prestazioni: la segnalazione visiva dei due led, e l’annullamento della potenza in uscita (condizione che permane fino allo sblocco, e alla prossima variazione di livello operato o con POT1 o con sw_up e sw_down). Blocco Diretto: viene azionato aprendo JP3. In questo modo, la linea PWM viene interrotta e posta a massa: questo comporta automaticamente la disabilitazione dei driver di potenza (U3), e quindi lo spegnimento del motore (o lampada). Così facendo, si ha la certezza di disabilitare i driver, ma non è una condizione valutata dal microcontrollore.

DISPLAY

Il display si accenderà sempre durante quelle procedure che richiedono la visualizzazione di cifre da inserire, e di altre informazioni come la condizione di ERRORE. Tuttavia, può essere disabilitata la sua accensione durante il normale funzionamento, ovvero la rotazione del display (la cui velocità è proporzionale alla potenza erogata in uscita). Basterà tenere pressati anche qui sw_up e sw_down fino all’apparizione di "C", dopodiché bisogna rilasciare i tasti e immediatamente pressare sw_set.

Apparirà:

  • "A" se prima il display era spento ed ora viene ACCESO
  • "S" se prima il display era acceso ed ora viene SPENTO

Anche lo stato del display viene memorizzato sulla EEPROM, come anche i limiti di potenza ed inc, in modo che alla prossima accensione del dispositivo, venga richiamato lo stato dei parametri precedentemente impostati.

MODALITÀ DI FUNZIONAMENTO

Avendo già studiato la modalità a singolo senso di rotazione, sicuramente più indicata quando si vuole far girare il motore in un solo verso (orario se si rispettano i collegamenti elettrici), o se si intende variare la luminosità di una lampada, ci dedicheremo adesso alla modalità "a doppio senso di rotazione". Questa viene abilitata aprendo JP4. In questo modo, il led verde segnalerà il verso di rotazione orario, mentre quello rosso il verso antiorario. Quando un verso è attivo, il led del verso opposto viene mantenuto spento. Anche qui, come già spiegato per la modalità "a singolo senso di rotazione" (vista quando abbiamo portato l’esempio dell’accensione di una lampadina), si ha che: se il livello è al minimo (D.C. = 0%) o in prossimità, il led sarà spento; se il livello è al massimo (D.C. = 100%) o prossimo, il led lampeggerà velocemente; per il resto della scala dei livelli (0% < D.C. < 100%), il led lo vedremo acceso. Qui la scala dei livelli, selezionabili dal potenziometro e dai pulsanti, viene equamente divisa ai due versi. Dunque, la metà sinistra della scala (quella più alta) è dedicata al verso antiorario, l’altra al verso orario. Per cambiare verso basterà agire sui soliti comandi, e più ci si allontana dalla centralità, maggiore sarà la potenza erogata in uscita nel verso di competenza. Centrato in questa scala, vi è un piccolo range di valori per i quali entrambi i led sono spenti e, soprattutto, la potenza in uscita è nulla. Consiglio di posizionare la manopola sull’alberino del potenziometro, facendo in modo che la tacca di riferimento si trovi in posizione verticale (e verso l’interno del dispositivo), proprio quando si è in questo centro scala. Precisiamo comunque che i parametri di funzionamento come i limiti di potenza, lo step di incremento/decremento (inc) e l’attivazione del display, possono essere definiti indifferentemente in entrambe le modalità.

POSSIBILI UPGRADE

Il dispositivo dispone di un connettore da 6 pin (CONN6), il quale riporta i seguenti segnali e tensioni:

  • +5V
  • GND
  • VccMot a tensione di alimentazione del carico (motore, ecc.)
  • Rot_or a segnale di polarizzazione per la rotazione oraria
  • Rot_an a segnale di polarizzazione per la rotazione antioraria
  • segnale PWM

Potrete utilizzarli, per esempio, per pilotare un driver più potente di quello montato sul dispositivo, come ad esempio l’ST-L298N da 25W (vedere riquadro di approfondimento), oppure un MOSFET di potenza oppure, per le applicazioni in AC, un triac. A proposito delle applicazioni in corrente alternata, poiché la frequenza dell’onda PWM (1KHz) è nettamente superiore a quella della 220V (50Hz), potremo facilmente controllare la potenza di lampade ad incandescenza a 220V, e non solo: infatti, avremo circa 20 onde PWM per ciascuna onda di rete. Si consiglia comunque di adottare opportuni filtri di rete, onde evitare che la modulazione di potenza a 1KHz possa generare disturbi nel vostro impianto elettrico.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend