In questo articolo analizzeremo un sistema a microcontrollore per modulare la potenza erogabile a motori DC, lampade ad incandescenza, etc. Questa seconda 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.
L’INTEGRATO ST-L293D
E’ un driver di potenza a 4 canali controllabile con livelli di tensione TTL e DTL, per il pilotaggio di carichi induttivi (relè, motori DC e stepper) e transistor switching di potenza. Le sue caratteristiche più importanti sono:
- Erogazione massima di corrente per canale: 600 mA
- Massima dissipazione di potenza (a 90 °C): 4 W
- Massima tensione di potenza (Vs): 36 V
- Diodi clamp integrati (due per uscita e per ognuno dei canali)
- Massima frequenza di funzionamento: oltre i 5 KHz
- Circuito di protezione dalle sovratemperature
- 1,2 A di corrente di picco (non ripetitiva)
In Figura 1 è riportato il lato rame del circuito stampato in scala 1:1. Per la sua realizzazione, meglio utilizzare una basetta in vetronite (monofaccia) di dimensioni 10x11 cm, e nel momento in cui si va a mascherare la superficie ramata, di non lasciare troppa distanza tra il bordo superiore della basetta, e le due morsettiere in alto (CONN3 e CONN4). Sarà meglio riservare quei millimetri in più alla parte inferiore, dove trovano posto i due pulsanti ed il potenziometro, quest’ultimo sicuramente il componente più ingombrante. Per chi facesse uso della fotoincisione, attenzione a non usare una soluzione di soda caustica per lo sviluppo positivo della basetta, che non sia troppo forte; meglio aspettare un pò di tempo piuttosto che rischiare di dover ripetere tutto. Una volta inciso il rame, oltre ad un controllo generale in contro luce, consiglio anche una verifica delle piste più vicine e di quelle più fini, con il test di continuità del multimetro. Adesso, passiamo al processo di foratura: quasi tutti i reofori dei componenti necessitano di fori da 0,8 mm (sconsiglio l’uso di punte più grosse per i 13 ponticelli) mentre per alcuni sono necessarie punte da:
- 0,9 mm: diodo D2, transistor T, regolatore U1, microswitch SW1/2/3, potenziometro POT1
- 1 mm: morsettiere CONN3/4/5
- 2,2 mm: plug di alimentazione CONN2
Per quanto riguarda i jumper, dipende da quelli che avete trovato; ve ne sono alcuni i cui terminali sono a sezione circolare, e per questi vanno bene punte da 0,8 mm.
SALDATURA DEI COMPONENTI
A questo punto, passiamo alla saldatura di tutti i componenti del circuito. In Figura 3 viene mostrato il piano di montaggio dal lato componenti. Per avere un riscontro migliore delle dimensioni e, soprattutto, della loro posizione sul CS, in Figura 4 vi è una fotografia del prototipo fatta dall’alto.
Iniziate con i 13 ponticelli, dal momento che sono i componenti più bassi; a questo proposito non dimenticatevi di quello situato sotto U3, l’integrato da 16 pin. A seguire, disponete e saldate tutte le 12 resistenze, i due diodi e i 3 microswitch, i quali vanno prima preparati raddrizzando i loro 4 terminali (onde favorirne l’inserimento nei loro fori del CS). Consiglio di porre i loro corpi a contatto con la basetta. Adesso è il turno dei 3 zoccoli, i due degli integrati U2 e U3 e quello del display; per quest’ultimo andranno prima preparate due barrette da 5 pin a tulipano. A questo proposito, sarà bene saldare preliminarmente uno dei pin angolari, poi accertarsi che lo zoccolo sia stato posizionato bene, dopodiché continuare col saldare i rimanenti pin. Fate più attenzione a quello del display, dal momento che le due file di pin non sono tra loro unite. Proseguite con tutti i condensatori (per ultimi quelli più alti), i jumper (anche per INT1 e CONN7) e i 3 led (da lasciarli sollevati di circa 1 cm per favorirne una migliore visualizzazione). Continuate occupandovi del plug di alimentazione e a seguire di CONN1 e CONN6, i due connettori strip da 6 pin. Non preoccupatevi se non trovate quelli del tipo a vaschetta, che consente l’inserimento del complementare connettore femmina solo in un verso, ma fate attenzione nel momento in cui andrete ad inserirgli il connettore esterno.
Andate avanti con le tre morsettiere bipolari ed il quarzo, che potrete mettere a contatto con la basetta. A questo punto, saldate T (BD135) col terminale di emettitore a sinistra, e lasciando qualche mm di spazio tra il corpo plastico ed il piano della basetta. Stesso discorso per il regolatore di tensione U1, che consiglio di lasciare ancora più sollevato e va orientato con le scritte verso l’esterno. A questo proposito, se il regolatore di tensione dovesse scaldarsi troppo, perché magari lo si alimenta con una tensione superiore a 9 V, sarà bene dotarlo di un piccolo dissipatore; sul CS vi è abbastanza spazio per farlo. Per scongiurare pericolosi corto circuiti, controllate visivamente tutte le saldature, accertandovi che nessuna di questa abbia sconfinato su altre piste o altre piazzole (in particolar modo per U2 e U3). Proseguite con il potenziometro, il cui alberino andrebbe accorciato, considerando che andrà accoppiato ad una manopola; prolungate i suoi 3 terminali con altrettanti spezzoni di filo, in modo da poter connettere POT1 al circuito. Piegate prima a 90° questi prolungamenti e dopo attaccate un pezzettino di nastro bi-adesivo (possibilmente del tipo spesso), sul dorso del suo corpo. Dal momento che alcuni modelli di potenziometro hanno una parte terminale dell’alberino che dà sul dorso, per non frenarne la sua rotazione, evitate di coprirlo col nastro. A questo punto, sia per sollevare il lato rame del CS dal piano di appoggio, sia per dare maggiore stabilità alla piastra, consiglio di applicare 4 piedini gommati adesivi su ciascun angolo. In alternativa, potrete usare 4 piccoli feltrini. Per concludere, inserite con la massima attenzione i due circuiti integrati (PIC e driver di potenza) e il display, orientandoli come mostrato nelle figure, e chiudete tutti i jumper col relativo ponticello (tranne JP2). Per alcuni di questi, se lo ritenete necessario, saldate un interruttore: per esempio su JP1 per l’alimentazione e INT1 per il blocco di emergenza. A questo punto, rimane solo l’applicazione della manopola sull’alberino del potenziometro, che consiglio però di fare in seguito, dal momento che è necessario orientare la tacca di riferimento in modo conveniente. Per concludere l’assemblaggio, consiglio di scrivere con un pennarello indelebile i nomi e/o le funzionalità di alcuni componenti, come per esempio per SW1, SW2 e SW3 rispettivamente le scritte sw_set, sw_up (+) e sw_down (- ), oppure le due alimentazioni, e ancora le uscite per i due motori e i diversi jumper di settaggio.
PROGRAMMAZIONE DEL PIC 16F876A
Come già anticipato, potrete programmare il PIC in-circuit. Scaricate il file esadecimale del firmware dal sito internet della rivista, e scrivetelo per esempio col programmatore PICkit 2 della Microchip, opportunamente connesso al dispositivo (circuito target) tramite cavetto piatto. NOTA: nel caso in cui il vostro programmatore non disponga del riconoscimento automatico della tensione del circuito target (il nostro dispositivo), e se vorrete programmare il PIC con l’alimentatore già inserito, dovrete togliere il ponticello da JP1 (in alto a sinistra).
COLLAUDO
A questo punto del lavoro, il sistema è pronto per funzionare; basterà collegare un alimentatore con connettore circolare complementare a quello del plug del CS. Dovrete fornire al circuito una tensione di almeno 7,5 V (dal momento che la tensione di dropout del regolatore 7805 è al massimo 2,5 V) e polarizzare il connettore dell’alimentatore con il positivo all’esterno! Fatto questo, vedrete accendersi il led di alimentazione (in basso a sinistra), e ruotare in un senso i segmenti più esterni del display. Arrivati fin qui, possiamo mettere subito alla prova il nostro lavoro, collegando un motorino DC in uno dei due connettori predisposti (CONN4 o CONN5), e fornendo tensione a CONN3, dal quale i motori assorbiranno energia. A questo proposito, dovremo avere l’accortezza di fornire una tensione, che sia superiore di circa 2 V rispetto a quella nominale del motorino. Ciò perché il driver di potenza L293D (U3), "trattiene" questi 2 volt tra le due uscite di ogni sua coppia di driver. Ad esempio, se utilizziamo un motorino DC da 3 V, dovremo applicare circa 5 V ai morsetti di CONN3 (morsettiera centrale in alto). Comunque sia, per essere certi che il motorino riceva la massima tensione quando l’onda PWM ha il massimo D.C. (circa il 100%), basterà misurare la tensione applicata al motorino e constatare che coincida con quella nominale. Faccio osservare che il polo positivo di ciascuna delle 3 morsettiere bipolari è quello sinistro, se le si osservano dal bordo del CS. Nel caso in cui i motori venissero polarizzati con i due terminali invertiti otterremo, in generale, un verso contrario di rotazione. Per essere certi del verso di rotazione, controllate che sul retro del motore siano segnate le polarità dei 2 terminali, ed il relativo verso di rotazione dell’albero. In caso contrario, verificherete ciò provando il motore direttamente azionando il circuito. Per semplificare il collaudo lasciamo il ponticello da JP4, così da far funzionare il sistema in modalità "a singolo senso di rotazione"; ciò significa che ruotando il potenziometro in senso antiorario, otterremo un aumento di velocità. In alternativa, possiamo pigiare ripetutamente i pulsanti sw_up o sw_down, rispettivamente per incrementare o decrementare la velocità di rotazione del motore.
ACCENDERE UNA LAMPADINA E VARIARNE LA LUMINOSITÀ
Per far questo, procuriamoci una lampadina in corrente continua che non superi 36 V di tensione di alimentazione, e una corrente di 600 mA (questi sono i limiti imposti da U3, il driver di potenza siglato ST-L293D). Chiaramente, in questo caso non ha nessuna importanza come polarizzeremo la lampadina. Anche in questo caso, tramite il potenziometro e i due pulsanti, saremo in grado di modificare l’apporto di potenza in uscita, che in questo caso si traduce in una maggiore o minore emissione di luce. Osservate adesso come i due led di segnalazione, posti uno a fianco dell’altro e di colori verde e rosso (rispettivamente per la segnalazione della rotazione oraria e per quella antioraria), si comportino in funzione del livello di potenza richiesto per il carico (la nostra lampadina in questo caso):
- se il livello è al minimo (D.C. = 0%) o in prossimità, entrambi i led saranno spenti
- se il livello è al massimo (D.C. = 100%) o prossimo, entrambi i led lampeggeranno velocemente
- per il resto della scala dei livelli (0% < D.C. < 100%), i due led li vedremo accesi
Ciò accadrà a patto che non sia stato attivato il blocco di emergenza (logico), togliendo il jumper da INT (oppure aprendo l’interruttore ad esso collegato). In questo caso, i due led lampeggeranno velocemente, i segmenti del display smetteranno di ruotare e la potenza in uscita verrà annullata (D.C.=0%). Questo, chiaramente, provocherà lo spegnimento istantaneo della lampadina.
Descrizione di comandi e funzionalità
Innanzitutto, riepiloghiamo il significato di Jumper e interruttori:
- JP1 aperto: la programmazione avviene con i 5 V dell’alimentatore
- JP1 chiuso: la scheda viene alimentata con i 5 V forniti dal programmatore (ATTENZIONE: qui è necessario tenere spento l’alimentatore!)
- JP2 aperto: l’alimentatore è spento
- JP2 chiuso: l’alimentatore è funzionante (se gli si fornisce la dovuta tensione)
- JP3 aperto: blocco diretto di emergenza: (interruzione linea PWM)
- JP3 chiuso: funzionamento normale con erogazione di potenza in uscita
- JP4 aperto: modalità : doppio senso di rotazione (orario/antiorario)
- JP4 chiuso: modalità : singolo senso di rotazione (orario)
- INT1 aperto: blocco logico di emergenza: attivo
- INT1 chiuso: blocco logico di emergenza: spento
NOTA IMPORTANTE: se decidete di alimentare il circuito tramite il programmatore (sempre che questo sia in grado di erogare la corrente necessaria), badate bene affinché l’alimentatore sia spento, o lasciando aperto il suo ingresso tramite JP2 (che può essere un interruttore generale), o staccando l’alimentatore esterno. In questo caso, comunque, i 5 V del programmatore polarizzerebbero inversamente il regolatore U1, quindi, anche se questo è provvisto di protezione, consiglio sempre di fare attenzione. Per meglio prendere confidenza con i comandi, consiglio di far funzionare il circuito "a singolo verso di rotazione".