http://tomasella.altervista.org/it/elettronica/microcontrollori/timer_programmabile_16F84.html

Timer programmabile

In questa pagina presento un semplice e probabilmente stupido timer programmabile fra 30 secondi e 16 minuti, con passi di regolazione di mezzo minuto. Queste apparentemente scarse caratteristiche sono dovute all'esigenza di realizzare un timer funzionale e, allo stesso tempo, estremamente compatto. Infatti fa uso solamente di un classico microcontrollore PIC16F84, di un display a 7 segmenti, 2 pulsanti, un relč e, opzionalmente, di un led e di un buzzer, oltre a qualche componente di contorno. Il circuito richiede una tensione di alimentazione nominale di 5Vcc, ma funziona anche se alimentato con una normale batteria da 4,5V.

foto timer programmabile

Questo timer č stato inizialmente pensato per controllare l'accensione e lo spegnimento del bromografo al fine di regolare il tempo d'esposizone delle basette.

Il suo funzionamento č molto semplice: quando il sistema č in attesa il tasto "START/STOP" fa chiudere il contatto del relč e avvia il conto alla rovescia, mentre se č attivo il conteggio apre il contatto del relč e resetta il conto alla rovescia. Il tasto "UP" č abilitato solamente quando il sistema č in attesa e serve a regolare ciclicamente il valore del conteggio. Il led lampeggia ogni secondo, mentre il buzzer genera un breve suono alla pressione dei tasti e un suono piů prolungato al termine del conteggio. Il display visualizza un carattere alfanumerico i cui valori possono andare da 0 a 9 e da A a G, che corrispondono a tempi da 0 a 16 minuti. Il punto decimale, quando acceso, indica il mezzo minuto, cioč, ad esempio, la scritta "B." indica 11 minuti e 30 secondi. Durante il conto alla rovescia il display lampeggia e indica il tempo rimanente.

schema circuitale del timer programmabile a catodo comune

Una particolaritŕ del codice presentato č che ogni volta che il tempo viene regolato esso viene salvato nella memoria EEPROM del microcontrollore. In questo modo alla successiva accensione del timer viene caricato il valore di tempo utilizzato l'ultima volta e non sarŕ necessario reimpostarlo. Il valore di default al quale viene impostato il tempo durante la programmazione del microcontrollore č di 10 minuti, che dovrebbe essere adatto ad un bromografo del tipo presentato nella pagina PCB (o perlomeno č quello che utilizzo io).

Pur essendo stato scritto per il PIC16F84, questo codice č adatto ad essere caricato anche su PIC16F84A senza alcuna modifica.

Per concludere, metto a disposizione due versioni del codice per il microcontrollore, una da utilizzare con display a catodo comune (codice sorgente in assembly: ASM, codice macchina: HEX) e l'altra per display ad anodo comune (ASM, HEX). In modo analogo metto a disposizione 4 versioni del master del circuito (in formato FidoCad), per display ad anodo e a catodo comune, ognuna sia per display da 10mm (CC10, AC10), sia per display da 13.2mm (CC13.2, AC13.2).

pcb del timer programmabile ad anodo comune


torna all'inizio     Stampa

Valid HTML 4.01 Transitional    Valid CSS