Timer ciclico programmabile 24h.

Posted in: Elettronica,Schemi e Progetti |

Timer ciclico programmabile

Introduzione
Salve, il circuito che vi presento è nato dall’esigenza di alimentare giornalmente e con cadenza regolare quattro dispositivi diversi, con la possibilità di prefissarne indipendentemente l’ora d’accensione e di spegnimento, anche più volte al giorno. Essendo svariati i campi di possibile applicazione del circuito in oggetto, ho voluto renderlo disponibile a tutti tramite le pagine di questo sito. Io lo sto impiegando nel mio acquario soprattutto durante i miei allontanamenti da casa, dove ad intervalli regolari viene distribuito il mangime per i pescetti ed accesa la luce interna per l’illuminazione delle piantine. Ma tornerebbe utile anche nei negozi per cambiare tipo d’illuminazione automaticamente o per accendere l’insegna luminosa esterna ad orari prefissati. Negli ambienti di lavoro potremmo attivare luci, sirene, motori etc.etc. VEDI SCHEMA

Funzionamento

Il timer dispone di 32 posti di memoria per la programmazione giornaliera residenti in EEPROM, quindi i dati conservati in tale zona di memoria non andranno persi dopo lo spegnimento del timer e saranno sempre presenti ad ogni riaccensione. Possiamo visionare il contenuto di ogni posto programma, esercitando una breve pressione sui tasti “freccia-alto­” per andare indietro e “freccia-basso” per andare avanti, visualizzando tali dati sulla riga in basso del display. I primi due numeri indicano il numero della memoria sotto esame ed assumeranno valori compresi tra 1 e 32. A destra di questi ultimi intervallato da uno spazio, troviamo un numero compreso tra zero e quattro indicante l’uscita da impegnare; a seguire a destra troviamo l’ora di accensione e subito dopo l’ora di spegnimento.

Per modificare i dati di una qualsiasi memoria visualizzata, basta premere brevemente il tasto indicato con “M”; immediatamente su ognuno dei dati visualizzati comparirà un’indicazione per ricordarne la funzione. VEDI DISPLAY

“ME” indica il numero di memoria programma sotto esame; “U” indica l’uscita da impegnare; “ACC” l’ora di accensione ed infine “SPEGN” l’ora di spegnimento; inoltre il cursore sarà visualizzato sotto al numero indicante l’uscita. In questa fase di programmazione possiamo proseguire in quattro modi diversi:

1)      Confermare o cambiare l’uscita digitando il numero appropriato;

2)      Disattivare la memoria digitando uno zero, in questo caso i dati successivi relativi all’accensione ed allo spegnimento, saranno ignorati dalla routine di gestione delle uscite e non presi in considerazione;

3)      Premere il tasto “freccia-destra” per saltare alla fase successiva, ovvero all’inserimento dell’ora di accensione, senza modificare il dato relativo all’uscita da impegnare;

4)      Premere il tasto “ freccia-sinistra” per uscire dalla fase di programmazione in corso, lasciando invariati tutti i dati della memoria selezionata in quel momento.

Se in questa fase tenterete di inserire un numero maggiore di quattro, il cursore non si muoverà finché non sarà digitato un numero valido. Se avremo optato per l’ultima delle opzioni precedenti, il software di gestione tornerà a visualizzare l’orologio interno scandendo lo scorrere del tempo. Se invece opteremo per una delle prime tre opzioni precedenti, il cursore si troverà adesso sotto l’ora di accensione, da cui potremo procedere in tre modi diversi:

1)      Inserire i dati relativi alle ore ed ai minuti che andranno a sostituire i precedenti;

2)      Premere il tasto “freccia-destra” per saltare alla fase successiva, ovvero all’inserimento dell’ora di spegnimento, senza modificare il dato relativo all’ora di accensione;

3)      Premere il tasto “ freccia-sinistra” per uscire dalla fase di programmazione in corso.

Superata questa prima parte, saremo giunti alla fase d’inserimento dei dati per lo spegnimento, dove saranno valide le stesse modalità viste per l’inserimento dei dati di accensione. Anche in questi ultimi due inserimenti, se i dati digitati non saranno validi il cursore tornerà all’inizio, finché il dato inserito non sarà corretto. Per la precisione, è considerato non valido l’inserimento di un numero maggiore di 23 per le ore, oppure di un numero maggiore di 59 per i minuti.

Volevo inoltre precisare che il tasto “ freccia-sinistra” è attivo sempre, per cui se premuto ad esempio tra l’inserimento delle ore e dei minuti, sarà abbandonata la fase di programmazione in corso ed i dati in quel momento inseriti saranno ignorati e sostituiti coi precedenti. Di ciò, ci si rende conto subito, in quanto il display sarà aggiornato dopo ogni  abbandono della fase di programmazione.

A questo punto se vogliamo programmare un’altra memoria, dobbiamo scegliere un altro posto programma coi tasti “­freccia-alto” e “freccia-basso” , premere il tasto “M” e continuare con l’inserimento dei dati.

Come avrete notato al flessibilità del software è tale che i 32 posti programma possono essere impegnati come si desidera. Possiamo ad esempio assegnarli tutti ad una sola uscita, oppure suddividerli alle quattro uscite anche in misura diversa.

Infine, non dobbiamo dimenticare di aggiornare l’orologio interno premendo il tasto ”H” . In questo caso il cursore si porterà sotto l’indicazione delle ore, da cui potremo proseguire digitando i dati da inserire. Se i dati non saranno validi il cursore tornerà indietro per un reinserimento corretto.

Anche da questa fase si può uscire premendo il tasto “ freccia-sinistra” e l’orologio non sarà aggiornato.

Da notare che dopo ogni aggiornamento dell’orologio interno, il conteggio dei secondi riparte da zero, per cui per effettuare la sincronizzazione del timer con un altro orologio, basta digitare l’ultimo numero relativo ai minuti, allo scadere del 60° secondo dell’orologio di riferimento.

Da questo momento in poi e fintanto che il timer sarà alimentato, ogni giorno alle ore prefissate, le uscite saranno attivate o disattivate con regolarità.

Circuito elettrico

Il circuito elettrico è visibile in Fig.1. Oltre al PIC troviamo una tastiera a matrice di righe e colonne ed un display a due righe per sedici caratteri funzionante con logica HD44780. La parte di circuito visibile all’interno del rettangolo rosso, si riferisce al circuito di pilotaggio dei relè; anche se sullo schema è rappresentato una sola volta, in realtà bisogna realizzarne quattro, una per ogni uscita disponibile, da collegare oltre che al piedino 13 del PIC, anche ai piedini 12; 11 e 10.

Montaggio

Vista la semplicità circuitale, il timer può anche essere realizzato su basetta mille fori. A montaggio ultimato, dato che non ci sono punti di taratura, il timer se alimentato dovrà funzionare immediatamente. Naturalmente dovrete prima programmare il PIC col file HEX che potrete richiedere al mio indirizzo, dove potrete anche inoltrare eventuali richieste di chiarimenti. Sperando di non aver dimenticato nulla, salutandovi auguro a tutti buon lavoro e buon divertimento.

IT9DPX – #135  (Francesco M.)

(Articolo visitato: 18.576)

141 Risposte to “Timer ciclico programmabile 24h.”

  1. maurizio Says:

    sono interesato a realizzarte questo bel progetto .se miinvii il file hex e il file di programmazzione esm ti ringrazi per la tua cortese attenzione maurizio Pavia

  2. maurizio Says:

    sono interessato a realizzarte questo bel progetto .se mi invii il file hex e il file di programmazzione esm ti ringrazi per la tua cortese attenzione maurizio Pavia

  3. Giuseppe Says:

    Complimenti per il progetto, veramente ben fatto!
    Come per molti altri che ti hanno scritto la mia esigenza è per l’innaffio del giardino comadandando 4 elettrovalvole bistabili.

    Gradirei ricevere il file .asm e il file .hex per programmare il pic (sono un neofita che tipo di programmatore devo usare?).

    Utilizzando elettrovalvole bistabili, i relè da inserire nel circuito devono essere bistabili e, secondo te, cambia qualcosa nella logica di funzionamento?

    Ti ringrazio e ancora tanti complimenti
    Grazie mille
    Gioacchino

  4. Claudio Says:

    ciao se fosse possibile (visto che è passato un po di tempo) vorrei avere il tuo file necessario per la programmazione..
    Grazie e complimenti per la soluzione 🙂

  5. Giacomo Says:

    Ciao Francesco,
    è da molto che mi scervello alla ricerca di un modo per controllare almeno 4 rèlè tramite pic,
    e navigando su internet ho trovato il tuo
    post, che più che un post è una relazione tecnica
    e ti voglio fare i miei complimenti,
    gradirei molto ricevere l’HEX, grazie in anticipo 😉

  6. Stefano Says:

    Ciao, bel progetto!
    mi piacerebbe realizzarlo per comandare l’irrigazione del giardino. potresti mandarmi il file per programmare il Pic? una seconda domanda, posso collegare al pic un sensore di umidità che blocca le uscite?

  7. Stefano Says:

    ciao Francesco, molto bello il progetto. potresti mandarmi i file hex e asm.
    grazie mille.

  8. Biagio Says:

    Ciao Francesco

    Davvero un circuito molto semplice ed utile nel mio caso.

    Potresti gentilmente mandarmi il file HEX?

    Solo 2 chiarimenti, il primo vorrei sapere se cmq il file è modificabile in modo che successivamente potrò inserire qualche messaggio prima di programmare il micro, e secondo che diodo è quello nel riquadro rosso??valori e tutto,meglio se il codice direttamente XD…

    Grazie anticipatamente

  9. Biagio Says:

    Scusa se rompo ancora, ma ho risp alla mail che mi hai mandato, non hai avuto tempo o non ricevi su quella mail??

  10. Max Says:

    Salve Francesco ho iniziato da poco a programmare (e meglio dire a provare ) i pic purtroppo è un settore che non è di mia competenza sono operatore cnc comunque ho sempre avuto la passione per l’elettronica ti sarei grato se potessi mandarmi il file .hex del Timer ciclico programmabile 24h ti ringrazio un saluto max

  11. Mimmo Says:

    Ciao , bel progetto. Semplice e funzionale , Ti chiedo cortesemente il file HEX e , se puoi . anche l’ASM per eseguire alcune modifiche.
    grazie.

  12. Paolo Says:

    Ciao ho realizzato il tuo progetto tempo fa, va che è una meraviglia ma vorrei aggiungere una batteria per non perdere l’ora se mancasse la corrente. Come posso fare per alimentare solo il pic?

  13. f.mira Says:

    Devi interrompere la pista che porta l’alimentazione al solo pin 14 del pic, ed inserirvi in serie un diodo 1n4007 o similare, col catodo verso il pin 14.
    Inoltre devi inserire un’altro diodo come il precedente col catodo verso il pin 14, e con l’anodo collegato ad una o più pilette in serie, che ti diano una tensione di 3 volt circa. Io non ho provato ma dovrebbe funzionare.
    Facci sapere…..
    Saluti…it9dpx

  14. Paolo Says:

    Ok, provata la modifica per la batteria funziona benissimo. Grazie

  15. Francesco Says:

    ciao Francesco, molto bello il progetto. potresti mandarmi i file hex e asm.
    grazie mille.

  16. Domenico Says:

    Ciao Francesco vorrei capire se i pin 10, 11, 12, 13 sono le uscite che io vado ad collegare a ciò che voglio controllare e anche se per piacere potresti inviarmi i file per programmare il PIC.
    Grazie mille in anticipo. 😉

  17. f.mira Says:

    Confermo per i pin.
    In allegato il file.
    Facci sapere.
    Ciao.

  18. Stefano Says:

    Salve, mi interessa moltissimo il circuito perchè vorri utilizzarlo per il mio acquario. E’ possibile avere il listato ASM per imparare come ha gestito la cosa ? e magari fare qualche modifica per l’alba/tramonto.
    Grazie in anticipo.

  19. Emiliano Says:

    ciao, complimenti per il progetto, sarei interessato a costruirmelo, potresti mandarmi il file hex.(anche il file asm se possibile)
    Saluti.

  20. Verano Says:

    Sono interessato alla costruzione del tuo circuito,potresti inviarmi il file hex.
    Complimenti per la bella idea.
    Sicuramente avrai molte richieste.

  21. Giuliano Says:

    Ciao!
    questo è proprio quello che cercavo! Sto provando a mettere su un orto idroponico e un timer del genere sarebbe davvero utile! Potresti cortesemente mandarmi il file hex? ma come programmi? in C oppure direttamente in assembler?
    Grazie mille!

  22. Wolney Says:

    Gostaria de receber o arquivo .hex do timer ciclico, pretendo monta-lo para o meu aquario. Obrigado.

  23. Wolney Says:

    Ciao amico Francesco, grazie per l’invio del file. HEX, potreste inviarmi il codice sorgente., Or ASM. C. Am Radio amatoriale, hobbisti e volevano usare il tuo progetto in acquari, radio e fonti. Voglio usare il 16F628A e 16F876A. Mi dispiace per la grammatica sto usando un traduttore. Forte 73 dal Brasile.

  24. Nuara Antonio Says:

    Avrei bisogno di un timer per gestire l’accensione manuale di 10 lampadine votive che dopo un’ora della loro accensione, si spengono automaticamente da sole. Grazie Don Antonio Nuara

  25. Luca Says:

    Salve, ho visto l’interessante progetto da lei creato.
    Siccome volevo provare a costruirlo, mi potrebbe mandare il file ASEMBLER di programmazione?
    La ringrazio e la saluto
    Luca

  26. matteo Says:

    Salve , bellisimo progetto , vorrei usarlo per programmare l’accensione delle elettrovalvole nel mio giardino.
    Mi potrebbe mandare il file.hex ?
    La saluto
    Matteo

  27. Stefano Says:

    Buona sera, come di rito complimenti per il lavoro, ne ho visto anche altri interessanti sul tuo sito. Un hardware semplicissimo, che però denota un grande lavoro di software.
    La mia richiesta è una copia del sorgente,
    ho la necessita di comandare con un ponte ad H per circa mezzo secondo, delle elettrovalvole da irrigazione, cercando di ottenere così una centralina di irrigazione da giardino.
    Cordili 73…..
    Stefano

  28. simone Says:

    Buongiorno , prima di tutto volevo farle i complimenti per il circuito ! siccome ho intenzione di costruirlo, mi potrebbe mandare il file di linguaggio e il file .hex?
    La ringrazio
    Simone

  29. Oliviero Says:

    Buongionro, per prima cosa mi sembra doveroso fare i complimenti per questa realizzazione. Sto procurandomi i pezzi necessari, e sarei grato se mi inviaste il file HEX e se possibile anche il sorgente, mi piacerebbe studiarlo e capirne di piu’ di questo mondo. Grazie.

  30. gianni Says:

    ciao, cortesemente vorrei avere il file .hex del tuo temporizzatore ciclico h24, grazie gianni

  31. gianni Says:

    ciao francesco, ho realizzato il tuo timer, ma non sono riuscito a fare accendere il display , non mi sembra di aver commesso errori sia nella scelta del display , che e’ “Displaytech 162A” che nella programmazione del pic eseguita con pickitc2 che mi dice “programmazione ok” unico neo e’ che ho disposto il timer in 2 piccole basette con un cavo di connessione “Flat” di 15 cm circa in modo che una volta fatta l’impostazione dei tempi andrebbero sconnessi display e tastiera e usato solo il pic e relais, penso si possa fare vero? purtroppo pero’ non riesco ad accendere il display, potresti ripostarmi il file di programmazione magari controllare che sia quello giusto? grazie per la cortesia.

  32. gianni Says:

    ciao francesco, il problema del non funzionamento era proprio il display guasto, ne ho “appoggiato” un’altro ma con una sola riga e si e’ acceso con i caratteri giusti, adesso pero’ ho notato che pur funzionando bene, tempistiche ecc ecc. quando tolgo la corrente si resetta e ricomincia da capo, come e’ possibile renderlo insensibile se va via la corrente? forse con una piccola batteria in tampone?

  33. f.mira Says:

    Cmplimenti per la riuscita del montaggio.
    Con una piccola batteria in tampone risolverai benissimo.
    Ciao.

  34. Lorenz Says:

    Ciao Francesco,
    come te devo gestire un acquario e vorrei togliere i vari timer +o- ticchettanti…
    Già un po’ di esperienza con i montaggi elettronici ce l’ho (valvolare & co.) quindi spero di non far casino 😉
    Più che altro gradirei sapere se c’è possibilità di combinare l’accensione del motorino del mangime con uno stop di 5′ della pompa (per evitare risucchio dello stesso) tutto via SW.
    Dove posso scaricare il prog?
    Grazie mille!

  35. Lorenz Says:

    Un’informazione per piacere. 4 è il limite messimo del PIC o potrebbe gestirne ancora un paio?

  36. Wolney Says:

    Ciao amico Francesco, io sono Radioamatori e voleva usare il progetto in acquari, e sorgenti radio. Voglio usare 16F628A e 16F876A.
    Mi può inviare il codice sorgente in ASM, C o .txt, perché mi piace imparare a vedere il codice sorgente.
    Mi dispiace per la grammatica sto usando un traduttore. Forte 73 del Brasile.

  37. Pasquale Says:

    Ciao!
    questo circuito è proprio quello che da tempo cercavo. Potresti cortesemente mandarmi il file .hex o .asm? Ti ringrazio in anticipo.

  38. Mimmo Says:

    Salve ho letto il tuo articolo, interessante, potresti condividere il file hex e magari il sorgente da usare come spunto per adattamenti ad altre esigenze.
    Grazie
    Cordiali Saluti 😉

  39. ROBERTO Says:

    Ciao Francesco,
    Progetto molto interessante, potresti cortesemente inviarmi il file hex, vorrei provare a ralizzarlo.
    Grazie in anticipo.
    Cordiali saluti.

  40. Anto Says:

    Complimenti per il progetto. 😉 Volendolo realizzare chiedo l’invio dei file hex e asm. Grazie.

  41. Granata Lauro iW0QiT Says:

    Un mio amico deve azionare un motore con il quale muove una macchina fotografica e per fare questo gli serve un timer programmabile e di discreta precisione ,ricordavo il tuo sito di progetti e mi pareva di avere vsto proprio quello che cercavo ed infatti , se sei così gentile da inviarmi il file in formato asm e se gia convertito in hex te ne sarei grato e sopratutto spero sia idoneo per far funzionare il progetto del mio amico..grazie , 73 de iW0QiT Lauro da Assisi PG

Lascia un Commento!