Automatismo per orologio campanile

  • fer_ver
  • Avatar di fer_ver
  • Offline
  • Premium Member
  • Premium Member
Di più
9 Anni 11 Mesi fa - 7 Anni 10 Mesi fa #1 da fer_ver
Automatismo per orologio campanile è stato creato da fer_ver
Buongiorno a tutti, ad un anno di distanza dal primo progetto realizzato con un pic invio una mia seconda realizzazione. Si tratta di un automatismo ideato per sostituire il vecchio e ormai obsoleto orologio meccanio del campanile del paese in cui abito.
L’apparecchiatura realizzata è quindi predisposta per :
1) Azionare tramite motore passo-passo l’avanzamento delle lancette
2) Attivare i 3 elettromagneti per il battito delle relative campane
3) Eseguire i rintocchi ad ogni ora con ripetizione dopo 2 minuti
4) Eseguire un rintocco al passare della mezz’ora
5) Riprodurre 9 tipi di melodie
Attualmente ne sono utilizzate 4: ciclico feriale, ciclico festivo, suono festa e suono morto
6) Eseguire 10 suonerie programmabili come orario,tipo melodia e festivo/feriale
Al momento sono inserite le suonerie del vecchio orologio che sono:
ciclico feriale che suona a tre orari differenti (07:00 12:00 20:00) nei giorni feriali,
ciclico festivo che suona a tre orari differenti (08:00 12:00 21:00) nei giorni festivi,
suono festa (Ave Maria) che suona nei giorni festivi alle ore 10:00,
suono morto che viene eseguito 24 ore prima del funerale per due volte in caso di morte
femminile e tre volte in caso di maschio inoltre viene eseguito manualmente durante il
corteo funebre.
7) Ricevere comandi tramite SMS per cambio orario, attivare suonerie,richiedere all’orologio
stesso il credito residuo della propria Sim(solo per gestori TIM o VODAFONE) ed altro ancora.
8) Inviare tramite SMS dei messaggi di errore di funzionamento ad esempio :
Mancanza alimentazione rete elettrica
Batteria quasi scarica
Scostamento tra orario digitale interno e posizione lancette
messaggi di conferma di avvenuta ricezione comandi ricevuti da SMS
9 ) Eseguire delle melodie tramite squillo telefonico
10) Adeguare automaticamente il cambio ora legale-solare
11) Eseguire automaticamente il suono festivo nelle seguenti festività:
Capodanno\Epifania\25 Aprile\ 1 Maggio\ 2 Giugno\ Ferragosto\Natale\ Santo Stefano
12) Eseguire un ciclo speciale per la per Settimana Santa.
Le campane non devono suonare al Venerdì ed al Sabato, mentre il Lunedì vengono attivate le
relative melodie festive.
13) Funzionare anche senza rete elettrica tramite batteria tampone

L’ orologio è stato realizzato tramite un microcontrollore PIC18F4620 , la base dei tempi viene fornita da un integrato Clock Calendar PCF8563, una memoria EEPROM i2c 24LC32 in cui vengono memorizzate tutte le variabili, una scheda MOD-GSM basata sulla SIM340 , due integrati L6203 per pilotare il motore passo-passo, ed i fotoaccoppiatori per gestire le uscite per il martelletto delle campane ed i due ingressi utilizzati per rilevare la posizione “zero” delle lancette minuti ed ore. Tutti i comandi vengono inseriti tramite una tastiera a matrice 4 x 4 gestita tramite bus i2c e visualizzati su un display LCD 16X2.
Il programma è stato compilato con MPLAB e tengo a precisare che come programmatore sono un allievo autodidatta. A questo proposito voglio ringraziare Laurenti (www.laurtec.it) e Giovanni Bernardo (www.settorezero.com ). Proprio perchè non sono un professionista la stesura del programma non è sicuramente di tipo professionale ma….. FUNZIONA !! .... ormai da tre mesi, anche se continuo a modificarlo continuamente.
Pubblico inoltre l’intero file sorgente utilizzato al momento in quanto ritengo possa essere di aiuto per tutti coloro che vogliono unirsi al mondo dei PIC.
All’inizio ho usato un PIC18F4550 ma poi non mi bastava più la memoria per il programma e ho quindi optato per il PIC18F4620. Ho quindi dovuto ricompilare tutte le librerie di Laurtec per questo modello di PIC.
Il modulo GSM è gestito tramite interrupt ad alta priorità, ed è stato usato per inviare e ricevere comandi con l’invio di SMS o squilli telefonici. Il connettore seriale DB9 è stato inserito per collegare, tramite la porta seriale, un PC che attraverso il programma HyperTerminal permette di leggere i comandi inviati dal PIC al modulo gsm o viceversa a secondo di come sono impostati gli interruttori minidip. Sempre tramite l’impostazione dei minidip è inoltre possibile escludere il controllo del PIC e collegare tra di loro il PC ed il modulo GSM. Questo serve per fare delle prove e quindi per imparare il funzionamento del modulo. Come tutte le cose, quando si sono imparate risultano facili, ma posso garantirvi che ho dedicato alcune settimane di “tempo libero” per capire come inviare comandi tra PIC e GSM. A volte basterebbe avere a fianco un esperto per 5 minuti per evitare di passare giorni e giorni a fare delle prove ma posso assicurarvi che quando si riesce a realizzare quello che si cerca si prova una soddisfazione che ha prezzo.
Ho usato questo modulo perché ha già l’antenna incorporata sul circuito stampato, inoltre ho impostato una velocità di 9600 baud per permettere al PIC di leggere “con tranquillità” e correttamente gli SMS in arrivo.
L’interrupt a bassa priorità è stato usato per sganciare gli elettromagneti delle campane in quanto da programma vengono solamente attivati. In questo modo una volta attivato l’elettromagnete il programma è libero di proseguire senza doversi preoccupare di disattivare il “martelletto” dopo alcuni decimi di secondo.
I due fotoaccoppiatori in ingresso li avevo inseriti nel progetto per utilizzarli nel caso in cui avessi avuto dei disturbi a causa dei cavi schermati che vanno dal cs ai prossimity situati sull’albero delle lancette.
Non avendo avuto questo problema li ho utilizzati solo per adattare la tensione di alimentazione dei prossimità (12V.) con i 5V del pic; in questo modo ho evitato di dover utilizzare una tensione di alimentazione supplementare per i prossimity .
Allego lo schema elettronico, il file sorgente, alcune foto della realizzazione e un “manuale” in cui è spiegato il funzionamento dell’orologio.
E’ inoltre possibile visualizzare un filmato al seguente indirizzo:



Ciao, grazie a tutti e spero di non aver confuso le idee a chi sta imparando a programmare. :whistle:

Renato
Ultima Modifica 7 Anni 10 Mesi fa da fer_ver.
Ringraziano per il messaggio: Di Pace, StefA

Si prega Accedi o Crea un account a partecipare alla conversazione.

Di più
9 Anni 11 Mesi fa #2 da Fendo
Risposta da Fendo al topic Re: Automatismo per orologio campanile
Complimenti, bravo!
Il vecchio PIC elettromeccanico spero finisca in una sorta di museo! :evil:

Ciao
Ferdinando

Si prega Accedi o Crea un account a partecipare alla conversazione.

Di più
9 Anni 11 Mesi fa - 9 Anni 11 Mesi fa #3 da Matteo Garia
Risposta da Matteo Garia al topic Re: Automatismo per orologio campanile
... congratulazioni,
davvero un ottimo lavoro, sotto tutti gli aspetti.
Ho guardato al volo il sorgente, l'unico appunto che posso muoverti è che l'avrei organizzato in pù file per renderlo più "navigabile"

forse è meglio se rimuovi dal manuale il numero di telefono ;)

Matteo

dimenticavo: vero che non avete buttato via la meccanica? :)
Ultima Modifica 9 Anni 11 Mesi fa da Matteo Garia.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • fer_ver
  • Avatar di fer_ver
  • Offline
  • Premium Member
  • Premium Member
Di più
9 Anni 11 Mesi fa #4 da fer_ver
Risposta da fer_ver al topic Re: Automatismo per orologio campanile
Grazie mille , avevo dimenticato di togliere il numero di telefono.
L'orologio meccanico è ancora lì pronto ad entrare in funzione......non si sa mai !!! :S

Quando ho aggiunto il modulo GSM ho pensato di fare un file a sè ma poi ho proseguito sempre sul main.c.
Se ho ben capito però sarebbe stato meglio suddividerlo ancora di più.
Grazie del consiglio :cheer:
Renato

Si prega Accedi o Crea un account a partecipare alla conversazione.

Di più
9 Anni 11 Mesi fa #5 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Automatismo per orologio campanile
Salve Renato,

prima di tutto complimenti per il progetto.
Devo dire che l'aver condiviso il progetto e l'averlo reso noto mi ha fatto molto piacere.
Vedere che hai fatto uso delle librerie disponibili sul sito per un'applicazione "inusuale" ai progetti ed applicazioni per cui vengono normalmente utilizzate mi fa piacere.
Pensare che le campane possano suonare con la libreria PCF8563...ripaga le ore passate sulla stessa.

Armonizzare il tutto in un sistema complesso e con tutte le funzioni che hai descritto ha richiesto sicuramente tempo.
Ti sei trovato a dover affrontare diverse difficolta' di natura software, hardware e meccanica ma credo che sei stato ben ripagato dal sistema e dall'applicazione.

Qualora avessi modo, mi farebbe piacere vedere un altro video in cui le campane suonano una melodia.
...oltre agli occhi anche le orecchie vogliono la loro parte! :)

ancora complimenti.

Saluti,

Mauro

PS
Vedo che non ti piace usare le costanti nel programma! :)

Si prega Accedi o Crea un account a partecipare alla conversazione.