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
|
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 docchio 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 laccortezza 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
lutilizzo 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.
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
nellapposito 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:
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
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
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
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
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
dellEEPROM 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 unarea 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.