PROGRAMMATORE ORARIO 6 CANALI

 

 

Progetto pubblicato sulla rivista Fare Elettronica  

 

IL PROGETTO

 

Avete mai avuto la necessità di controllare un carico elettrico in maniera automatica senza la necessità della vostra presenza, con questo circuito lo potete fare.

 

 

Il progetto in questione è un programmatore orario a sei canali e può trovare un'infinità di applicazioni.

Infatti, è possibile controllare un qualsiasi dispositivo elettrico e, attraverso i suoi comodi relè, è possibile controllare anche carichi alimentati a 12 o 24 volt.

Per renderlo il più versatile possibile, si può scegliere nella programmazione, oltre al solito orario, anche qualsiasi giorno o giorni della settimana nonché il giorno del mese. In questo modo è possibile soddisfare qualsiasi tipo di applicazione.

Vediamo in dettaglio lo schema elettrico anche se scoprirete che è veramente semplici da costruire e, grazie al solito microcontrollore, anche molto economico.

Schema elettrico DISTINTA COMPONENTI


R1-6: 1,5 KOHM 1/8W
R7: 10 KOHM 1/8W
R8: 4,7 KOHM 1/8W
R9: 1 KOHM 1/8W
R10: 22 OHM 1/8W
R11: 180 OHM 1/8W
V1: TRIMMER ORIZZ. 10 KOHM
C1: 22 pF TRIMMER CAP. 6mm
C2: 22pF
C3: 470 mF 35VL
C4: 47mF 25VL
C5: 100 mF 16VL

XT1: QUARZO 4MHz
D1-6: 1N4148
PR1: PONTE 1A
DL1-6 LED 3mm
TR1: BC547B

U1: PIC16F628(A)
U2: ULN2003
U3: 7805

DIS1: DISPLAY 2x16 CARATTERI (CONNETTORE IN BASSO es.: XIAMEN LCM1602B)

K1-6: RELE' 12V TIPO SPDT
P1-2: PULSANTE PER CS
X1-7: MORSETTIERA DA CS 2 POLI

Il cuore del circuito è il nostro PIC 16F628A che, con l'ausilio di un quarzo da 4 MHz e l'appoggio di un display due righe per 16 caratteri, diventa un preciso orologio. Il PIC in questione, molto conosciuto dai nostri lettori, oltre ad essere molto economico (circa € 3,5) possiede una grande quantità di periferiche. Nel nostro caso utilizziamo unicamente il TMR2, come generatore di clock molto preciso partendo da un semplice quarzo da 4 MHz.

Per visualizzare e programmare il tutto, abbiamo fatto ricorso al classico display LCD da due per 16 caratteri e, attraverso quattro pulsanti, diventa veramente comodo programmare il tutto. Anche l'estetica finale del circuito sicuramente non ne risente di tale soluzione.

Sia il PIC che il display li ritrovate da Elettroshop (www.elettroshop.com) ad un prezzo molto competitivo.

Completa il circuito un integrato di facile reperibilità, un ULN2803, che in maniera molto semplice ed economica è in grado di pilotare i 6 relè delle uscite. La scelta è caduta su tale soluzione perché tutto sommato sei transistor, altrettante resistenze di polarizzazione e i diodi di protezione avrebbero reso sicuramente il circuito più complesso, in particolare il circuito stampato necessario sarebbe stato certamente più grande.

I LED da DL1 a DL6 assieme alle resistenze da R1 a R6 danno un tocco di professionalità e confermano con un semplice colpo d’occhio quali uscite risultano attivate in qualsiasi istante. Tali componenti non sono necessari al funzionamento se non come monitor. Se non disponete dei componenti menzionati, potete ometterli dal circuito.

I relè sono di tipo piuttosto comune. Se nel cassetto disponete dei soliti surplus di origine industriale da 24V, usateli pure avendo l’accortezza di aumentare la tensione di alimentazione a 15-18 V se in alternata, oppure 22-24 V in continua.

Nel completare la descrizione del progetto, da notare il condensatore variabile C1 necessario per aggiustare le piccole variazioni del quarzo in maniera da rendere il clock più preciso possibile. Il trimmer V1 regola semplicemente il contrasto del display e va regolato nella fase di collaudo in modo da leggere le scritte sul display senza difficoltà.

La sezione di alimentazione è talmente semplice da non meritare alcuna descrizione.

All'ultimo momento, per aumentare l'affidabilità del dispositivo, è stato aggiunto il circuito composto da D5, D6, R11, C5 e dalla batteria B1. Nel caso di Black-Out la batteria garantisce l'alimentazione al PIC. Nel caso durante la commutazione batteria/rete il PIC si reseta, inserite sperimentalmente un resistenza da 100ohms a 1Kohms tra il Catodo di D5 e il punto in comune tra C5, R11 e il Catodo di D6,  abbondando con la capacità di C5.

Questa parte di circuito, teoricamente funzionante, non è stata provata, lascio a voi la sperimentazione. Mi auguro vogliate informarmi se il tutto funziona correttamente e in particolare se avete apportato alcune modifiche in maniera da aggiornare il progetto.

 

Montaggio

Per facilitare il montaggio, è stato disegnato un circuito stampato dove trovano posto tutti componenti. A tal fine vi consiglio l'utilizzo dei fogli blu, molto semplici da utilizzare e molto comodi per chi come noi hobbisti realizza unicamente prototipi. Le istruzioni di utilizzo di tali fogli sono allegati ai fogli stessi al momento dell'acquisto. Tra l'altro sono molto economici, cinque fogli formato A4 costano circa € 12, l'unico problema è che richiedono l’utilizzo della stampante laser o di una fotocopiatrice. A tal proposito consiglio di abbondare con il tonner (fotocopia o stampa molto scura) e lavare e sgrassare molto bene la superficie del supporto da incidere prima di “stirare” la stampa sulla faccia ramata del supporto.

Una volta in possesso del circuito stampato inciso e forato, passiamo montaggio dei componenti.

Come al solito vi consigliamo di montare i componenti radenti al circuito stampato come resistenze, diodi, condensatori, il regolatore di tensione, il quarzo e infine i due zoccoli. I LED non sono necessari, l'omissione con le relative resistenze, non pregiudica il funzionamento dell'intero circuito. Se volete completare il montaggio continuate con i relè e le morsettiere, se invece volete semplicemente fare delle prove, attraverso il display sarà possibile visualizzare le uscite che vengono attivate dai tempi impostati. Anche la presenza dei LED in prossimità dei relè, possono aiutare l'hobbista nel collaudo finale.

Abbiamo montato i pulsantini, peraltro molto economici e reperibili da vecchi videoregistratori guasti, direttamente sul circuito stampato per evitare fili che inevitabilmente creano confusione e guasti. Anche per il display abbiamo previsto il montaggio direttamente da CS, attraverso una semplice coppia di connettori maschio/femmina. A tal fine si è reso necessario il montaggio di alcuni componenti in orizzontale. In particolare U3, C3, C5, C6 e del quarzo XT1. Regolatevi come da foto.

La batteria, non trovando posto nel CS, va collegata con 2 spezzoni di filo.

Ovviamente ciò non impedisce a chiunque di adottare soluzioni diverse, influenzate anche dal tipo di contenitore disponibile.

Come vedete stiamo parlando di un circuito che può risolvere molteplici problemi con una semplicità unica.

Collaudo

Prima di infilare i due integrati nei relativi zoccoli, vi consiglio di alimentare il dispositivo con 12 Vcc o 9Vca circa, con il classico tester controllare la presenza di 12 Volt tra i piedini 9 e 10 di U2 e 5V tra i piedini 5 e 14 di U1.

Se tutto è a posto, dopo avere tolto l'alimentazione, inserite i due integrati nei relativi zoccoli controllando l'orientamento corretto. Inserite il display nel connettore, e rialimentate il circuito.

Apriamo una piccola parentesi, l'integrato U1 è un microcontrollore che va programmato con il programma che trovate nell’apposito spazio on-line che la rivista vi riserva prima di inserirlo nel relativo zoccolo. Per la programmazione potete usare uno degli infiniti programmatori che trovate gratuitamente in rete.

A questo punto, con il circuito alimentato, sul display dovrebbe apparire brevemente una scritta di default, subito dopo il datario e l'ora nella prima riga e, lo stato delle sei uscite nella seconda. La forma è la seguente:

Lun 00Gen 00:00

CH:1-2-3-4-5-6-

Se nel vostro dispositivo appare questo, allora potete stare sicuri che il circuito funziona perfettamente. Se il display non visualizza alcun che, niente panico e regolate il trimmer V1 per il giusto contrasto e poter leggere quanto descritto sopra in maniera chiara.

 

Programmazione

Come abbiamo già detto l'intera programmazione avviene tramite i quattro pulsanti presenti a bordo del circuito stampato. Il primo pulsante da sinistra incrementa i valori (P1), il secondo li decrementa (P2), il terzo viene utilizzato per uscire dalla programmazione in qualsiasi momento (P3) e infine il quarto per cambiare campo (P4).

Per entrare nella programmazione è necessario tenere premuto il quarto pulsante per almeno tre secondi. La fase di programmazione viene visualizzata dalla scritta

Program

nella prima riga mentre nella seconda è possibile scegliere tra l'aggiustaggio dell'ora e della data e la programmazione degli orari per controllare le uscite.

®Ora/Dat  Canali

Il passaggio dall'una o l'altra funzione, avviene tramite il pulsante di “INCREMENTA” (P1) e visualizzata da una freccia che si sposta da un campo all'altro.

  Ora/Dat®Canali

Scelta la funzione, che ovviamente come primo avviamento sarà la regolazione dell'ora e della data, va confermata premendo il tasto di cambio campo (P4).

Ammesso che vogliate regolare l'orario e la data, la pagina di regolazione si presenta con il datario completo nella prima riga, e la scritta “program ora/data” nella seconda.

Lun 00 Gen 00:00

Program Ora/Data

Il pulsante “INCREMENTA” (P1) cambia l'informazione o il valore nel campo selezionato dal pulsante “cambia campo” e visualizzata nel display da un cursore lampeggiante. Per prima cosa va aggiornato il giorno della settimana semplicemente premendo il primo pulsante tante volte fino a visualizzare il giorno preciso. La pressione del P4 sposta il cursore lampeggiante sulla data del mese. Proseguite l'operazione con la regolazione del mese, delle ore, dei minuti. Ad ogni pressione del P4 è possibile ricominciare dal giorno della settimana e così in un loop infinito. Per uscire da questa fase di programmazione, è necessario prendere P3 e ritornare nella pagina di visualizzazione principale.

Per impostare gli orari della gestione delle uscite, bisogna ritornare nella fase di programmazione premendo P4 per tre secondi, con il P1 spostare la freccia nel “campo  Canali” e premere P4. La pagina di programmazione si presenta più complicata rispetto a quella della regolazione dell'ora, vediamo in dettagli di che si tratta.

07 CH6 OFF 21:15

G.1234567 G.M.00

La prima informazione riguarda il numero di stringa presente in memoria e parte sempre dall'ultima. Ci spieghiamo meglio, se in memoria sono presenti i sei stringhe ovvero sei orari, nella fase di programmazione verrà visualizzata la sesta stringa. Ovviamente con i pulsanti P1 e P2 è possibile inserire la nuova stringa oppure visualizzare e/o modificare le stringhe in memoria. La logica è la stessa vista per la programmazione dell'ora, P4 cambia il campo e P3 permette l'uscita in qualsiasi momento dalla fase di programmazione.

Proseguiamo la descrizione con il secondo campo che indica il canale scelto cioè l'uscita, CH1 indica l'OUT 1, mentre CH6 l'OUT 6. La terza informazione riguarda il tipo di uscita, ON indica l'eccitazione della relè, mentre OFF indica lo spegnimento. Segue l'ora e i minuti in cui il carico verrà acceso o spento, mentre nella seconda riga troviamo i giorni della settimana in cui tale orario verrà rispettato. Infatti dobbiamo programmare sette campi uno per ogni giorno della settimana, 1 indica il lunedì, mentre il 7 indica la domenica. Con il pulsante “INCREMENTA” (P1) possiamo cancellare il giorno oppure visualizzarlo.

Se programmiamo l'orario in questo modo ‘1234_67’ l'orario resta valido per tutti i giorni della settimana ma ignorato il venerdì. Altro esempio, ‘12345__‘ in questo caso l'orario viene rispettato da lunedì a venerdì, ignorato il sabato e la domenica. Come vedete non c'è nulla di complicato è sufficiente un po' di pratica perché la programmazione diventi veramente cosa semplice. L'ultimo campo riguarda il giorno del mese. Se impostiamo “00” non vogliamo tale filtro, cioè tutti i giorni del mese rendono valido l'orario. Se invece desideriamo, per esempio, attivare un carico a mezzogiorno del giorno 10 di ogni mese e staccarlo alle cinque di sera del giorno 15 di ogni mese, è sufficiente impostare il giorno 10 nella stringa di “ON” e il giorno “15” in quella di “OFF”.

07 CH1 ON  12:00

G.1234567 G.M.10

08 CH1 OFF 17:00

G.1234567 G.M.15

Informazione molto importante: perché la stringa venga accettata e scritta nell'area di memoria EEPROM, è necessario cambiare il campo di tutta la stringa e ritornare al numero di stringa. Infatti il programma salva la stringa soltanto quando il loop viene completato.

Pertanto se uscite dalla fase di programmazione a metà stringa questa viene persa.

In ogni caso è possibile visualizzare il contenuto in memoria senza necessariamente apportare modifiche.

Ogni stringa è composta da quattro Byte quindi è possibile memorizzare fino al 31 stringhe nei 128 BYTE dell’EEPROM del PIC16F628A, mentre utilizzando un PIC16F648A, che di BYTE ne possiede 256 e modificando il programma, possono essere salvate fino a 63 stringhe (cioè orari). Il valore da cambiare si trova nel file “program.inc” all'etichetta “_Program_canali” trovate la parte di programma sotto descritta

                   

movf            TOP,w

            sublw            .31                                          ; Max 31 orari programmabili

            btfss            carry

            clrf            TOP

                   

sostituite “.31” con “.63”. Non dimenticate il punto prima del numero, indica il formato decimale nel valore.

Questo solo nel caso utilizzate il PIC16F648A che possiede un’area di memoria EEPROM doppia rispetto al PIC16F628A.

Come potete notare è stato utilizzato il modello con la ‘A’ finale, ma penso che anche la variante senza ‘A’ possa funzionare ugualmente bene.


Puoi scaricare il pacchetto completo dal sito di Fare Elettronica

Il pacchetto non è più raggiungibile dal sito della rivista: scaricalo QUI.

 

RITORNA ALLA MAIN PAGE