Orologio da parete esterno

Solo orologi da campanile e da torre.
Rispondi
andreafranz
Senior User
Senior User
Messaggi: 300
Iscritto il: sab set 22, 2018 8:30 am
Località: AO

Orologio da parete esterno

Messaggio da andreafranz » dom mar 22, 2020 2:58 pm

Non è proprio un orologio da torre, semplicemente sulla facciata esterna di casa mia.

IMG_20200322_125140.jpg
IMG_20200322_125140.jpg (108.09 KiB) Visto 2088 volte
Due dettagli:
Diametro 1 metro circa
Quadrante: in ferro recuperato da un orologio da parete per interni e modificato con doppio quadrante tipo "regolatore".
Meccanismo: due motori passo passo comandati da piattaforma Arduino
Software: programmazione Arduino con riallineamento automatico delle lancette alle ore 6 ogni 12 ore.
Controllo del riallineamento automatico mediante crono termostato elettronico.

Sono circa due anni che cerco di risolvere le varie difficoltà che si presentavano mano a mano che il progetto prendeva forma, solo l'extra tempo dedicato a causa della clausura ha permesso di ultimare l'orologio.
Il passo decisivo è stato il bilanciamento della lancetta dei minuti con una leva torcente enorme.

Ovviamente rimango a disposizione per i dettagli se qualcuno fosse interessato.

PS: l'orologio è esattamente di fronte alla fermata del bus del paesino, se sgarra di un minuto c'è una sollevazione popolare :lol:

Avatar utente
Giacomo
Site Admin
Site Admin
Messaggi: 11503
Iscritto il: mer feb 07, 2018 1:50 pm
Località: Varallo (VC)
Qualifica AISOR: Presidente
Contatta:

Re: Orologio da parete esterno

Messaggio da Giacomo » dom mar 22, 2020 3:24 pm

Ovviamente rimango a disposizione per i dettagli se qualcuno fosse interessato
E lo chiedi? Mi piace moltissimo il quadrante che hai usato.
Sono a tutt'occhi !!! Attendo e non solo io credo :roll:

questo invece è il mio. ha un diametro di circa 1,8 metri, ed è comandanto da un servo motore per orologio da campanile acquistato in Germania ed una scheda di comando 12 volt (ne abbiamo parlato nel forum) che doveva essere radicontrollata, ma non arriva più il segnale da un paio di anni.

20200322_152008.jpg
20200322_152008.jpg (54.53 KiB) Visto 2082 volte
20200322_152039.jpg
20200322_152039.jpg (100.1 KiB) Visto 2082 volte

Avatar utente
Calico
Orologiaio
Orologiaio
Messaggi: 9211
Iscritto il: sab feb 17, 2018 9:54 am
Località: PI
OROLOGIAIO: PROFESSIONISTA
Maggior Contributore: 2018
Maggior Contributore: 2019
Maggior Contributore: 2020

Re: Orologio da parete esterno

Messaggio da Calico » dom mar 22, 2020 3:25 pm

Mi avete fatto venire voglia......

Avatar utente
milou
Delegato AISOR
Messaggi: 1630
Iscritto il: sab feb 17, 2018 6:49 am
Località: Francia
Delegato AISOR: Germania e Svizzera T.
Miglior Contributore: 2019

Re: Orologio da parete esterno

Messaggio da milou » lun mar 23, 2020 7:01 am

Complimenti!!!

Mi piacerebbe trovare un orologio da torre per installare un quadrante sulla facciata esterna del mio garage
Immagine

andreafranz
Senior User
Senior User
Messaggi: 300
Iscritto il: sab set 22, 2018 8:30 am
Località: AO

Re: Orologio da parete esterno

Messaggio da andreafranz » lun mar 23, 2020 3:58 pm

Buongiorno a tutti,
allego qualche dettaglio sulla costruzione dell'orologio da parete comandato da hardware "Arduino"

scheda arduino "uno" costo 10 euro
scheda di controllo CNC shield protoneer ver. 3.0 costo 5 euro compatibile ed installabile direttamente su arduino uno
2 stepper motor driver costo 2 euro cad (la scheda supporta fino a 4 motori) da installare direttamente sulla scheda
2 motori passo passo Nema 17 costo 10 euro cad

tutto il kit ,motori esclusi, si trova a 15 euro su ebay

2 microswitch magnetici magnetic glass reed costo 10 pz X 3 euro


funzionamento:
il sistema Arduino provvede, mediante un software adeguato, a far procedere il motore "minuti" di un passo pari a 1,8 gradi
ogni 18 sec. quindi giro completo di 360° in 3600 sec ( 1 ora).
il motore "ore" fa un passo di 1,8° ogni 12 impulsi del motore minuti facendo appunto 360° in 12 ore.

Arduino fornisce gli input ogni tot millisec ma rimane la necessità di comandare i motori ecco perchè la scheda cnc shield e
i motor drivers.

problema 1
è necessario forare il muro con una punta sufficientemente lunga (60 cm nel mio caso) ma in modo assolutamente perpendicolare
al muro stesso. Piccole variazioni dell'angolo a dx o sx, in su o giù provocano poi l'urto delle lancette con il quadrante.
Questo dettaglio mi ha fatto impazzire.

problema 2
non conoscendo la precisione del clock di arduino ed essendo l'orologio abbastanza irraggiungibile c'è la necessità di un
controllo remoto. ( piccoli ritardi dovuti al movimento motori si accumulano, cambio ora un paio di volte anno ecc)
ho installato all'interno dell'edificio rispettivamente di fronte ai motori due piccolissimi microswitch magnetici ad ore 12 dei minuti e ad ore 6 delle ore
due piccole lancette magnetiche inserite direttamente sull'albero motore fanno scattare gli interruttori quando ci passano davanti

Alle ore 6 e alle 18 un "preciso" cronotermostato al quarzo (modello da riscaldamento alloggio) chiude un contatto su arduino e i motori si azionano in continuo fino a quando il magnete non fa scattare il microswitch bloccando i motori a ore 6.00.
questo è il rifasamento ogni 12 ore di cui parlavo nel post precedente.
In realtà arduino è molto più preciso di quanto pensassi ma almeno al cambio ora stagionale non devo pigliare la scala e spostare le lancette!!!

problema 3
i motori passo passo sono regolabili ogni quando fare un passo ma l'accelerazione è fissa e molto elevata.
il sistema albero/lancetta ha un gioco di leve molto sfavorevole (ogni spostamento di 1,8 gradi sono cm alla punta della lancetta minuti).
Ho interposto un giunto elastico tra albero motore e albero passante il muro im modo da ammortizzare l'accelerazione del motore.
Fondamentale è stato poi il bilanciamento della lancetta dei minuti con una placchetta di piombo sulla coda altrimenti c'era un fastidioso tremolio al bloccaggio.
in aggiunta per dar "fiato" ai motori ho scelto di metterli in stand by tra un passo e l'altro quindi in pratica si disattivano e si sganciano. Se la lancetta è più pesante da un lato cade tristemente tra le 12 e le 6 e non risale tra le 6 e le 12!

Ad oggi (dopo 3 giorni) il sistema va ed è molto preciso. speriamo resista!

ps: il sito Aisor non mi permette di allegare files di testo, aggiungo qui sotto il file di programmazione.
se qualcuno è interessato può leggerselo o caricarlo direttamente da txt su un arduino.
ogni modifica o commento sono assolutamente bene accetti, anzi richiesti, se si vuole migliorare è indispensabile il contributo di tutti.
ciao, a presto





// Orologio con motori passo-passo By Andrea & Piero
//
int minuti;
int ore;
int totminuti;
int disrif; //disabilita lettura rifasamento per un'ora
int lettrif; //lettura consenso per continuare rifasamento
int pin9; //lettura input digitale switch minuti (attivo se =0)
int pin10; //lettura input digitale switch ore (attivo =0)
int pin11; // input per iniziare rifasamento


void setup () // inizializza le variabili
{
pinMode (5, OUTPUT); //inizializza pin 5 (direz. ore) come output
pinMode (6, OUTPUT); //inizializza pin 6 (direz. minuti) come output
pinMode (9, INPUT_PULLUP); //inizializza pin 7 come input dello switch
// motore dei minuti a ore 12 (va messo a massa
// per quota raggiunta)
pinMode (2, OUTPUT); //inizializza pin 2 (impulso ore)come output
pinMode (3, OUTPUT); //inizializza pin 3 (impulso minuti)come output
pinMode (10,INPUT_PULLUP);// inizializza pin 10 come input dello switch
//motore delle ore a ore 12 (va messo a massa per
// quota raggiunta)
pinMode (8, OUTPUT); //inizializza pin 8 (abilitazione motori) come output
pinMode (11, INPUT_PULLUP); //input digitale per iniziare rifasamento
digitalWrite (8, HIGH); //disabilita motori
minuti=0;
ore=0;
totminuti=0;
disrif=0; // contatore per disabilitare lettura consenso rifasamento
// dopo la lettura viene portato a 12000 e decrementato
// ogni minuto per rileggere l'input dopo un'ora
// 12000 = 60(minuti)*200(impulsi/minuto
// finchè <>0 lettura rifasamento disabilitata
}

void loop () // programma
{
if(disrif>0) disrif=disrif-1;
delay(17450); //aspetta 18 secondi
digitalWrite (8, LOW); //abilita motori (attivo LOW)
delay(10);
digitalWrite(6,LOW); //direzione motore minuti
digitalWrite (3, HIGH); //esegui 1 step
delayMicroseconds (800); //aspetta 800 microsecondi
digitalWrite (3, LOW); //abbassa il pin step
delay(500); //aspetta 1/2 secondo
digitalWrite (8, HIGH); //disabilita motori
minuti=minuti+1;
totminuti=totminuti+1;
if (minuti==200)
{
minuti=0;
ore=ore+1;
}
if(totminuti==12)
// dopo 12 impulsi sui minuti, da' un impulso sul motore ore
{totminuti=0; // riporta a zero totalizzatore minuti
digitalWrite (8, LOW); //abilita motori (attivo LOW)
delay(10);
digitalWrite(5,LOW); //direzione motore ore
digitalWrite (2, HIGH); //esegui 1 step
delayMicroseconds (800); //aspetta 800 microsecondi
digitalWrite (2, LOW); //abbassa il pin step
delay(500); // aspetta 1/2 secondo
digitalWrite (8, HIGH); //disabilita motori
if(ore==200) // quando la lancetta ore è sul 12, riporta a zero
{
ore =0;
}
}
//
//controlla se devi eseguire rifasamento
//
if (disrif==0)
{
{lettrif=digitalRead(11); //leggi input consenso rifasamento
}
if(lettrif==0)
{
disrif=12000; //disabilita lettura consenso rifasamento per un'ora
/* tratta rifasamento incrementando gli impulsi
sia delle ore che dei minuti finchè l'input digitale
di ciascuno dei 2 motori sia attivo
*/

pin10=digitalRead(10);
while(pin10==1) // esegui uno step finchè non va a 0
{
digitalWrite (8, LOW); //abilita motori (attivo LOW)
delay(10);
digitalWrite(5,LOW); //direzione motore ore
digitalWrite (2, HIGH); //esegui 1 step
delayMicroseconds (800); //aspetta 800 microsecondi
digitalWrite (2, LOW); //abbassa il pin step
delay(10);
digitalWrite (8, HIGH); //disabilita motori
pin10=digitalRead(10);
}
pin9=digitalRead(9); //leggi switch minuti
while(pin9==1) // esegui step finchè non va a false
{
digitalWrite (8, LOW); //abilita motori (attivo LOW)
delay(10);
digitalWrite(6,LOW); //direzione motore minuti
digitalWrite (3, HIGH); //esegui 1 step
delayMicroseconds (800); //aspetta 800 microsecondi
digitalWrite (3, LOW); //abbassa il pin step
delay(10);
digitalWrite (8, HIGH); //disabilita motori
pin9=digitalRead(9);
}
}
}
}

Avatar utente
Giacomo
Site Admin
Site Admin
Messaggi: 11503
Iscritto il: mer feb 07, 2018 1:50 pm
Località: Varallo (VC)
Qualifica AISOR: Presidente
Contatta:

Re: Orologio da parete esterno

Messaggio da Giacomo » lun mar 23, 2020 4:50 pm

ti ringrazio moltissimo. Se mi invi il file txt lo carico direttamente io.

premetto che io di arduino non ne capisco niente, pero' anni fa in collaborazione con Jean Claude Sulka, avevamo fatto un dispositivo per un divisore per fare le ruote.
avevamo usato un motore 400 step ma era molto robusto e aveva vermamente molta forza.
Comunque mi piace molto la tua realizzazione , e soprattutto ti ringrazio a nome di tutti, per aver voluto condividere con tutti i nostri forumisti i tuoi successi.

Sono sicuro che potrai ricevere altri aiuti, Stefano Calico è un grande appassionato ed esperto in questo campo. A mio parere potete fare molte cose insieme.

Avatar utente
Calico
Orologiaio
Orologiaio
Messaggi: 9211
Iscritto il: sab feb 17, 2018 9:54 am
Località: PI
OROLOGIAIO: PROFESSIONISTA
Maggior Contributore: 2018
Maggior Contributore: 2019
Maggior Contributore: 2020

Re: Orologio da parete esterno

Messaggio da Calico » lun mar 23, 2020 5:13 pm

Ero esperto. Da quando mi avete coinvolto coi meccanismi, l'armadio e lo scaffale delle riviste di elettronica sono in giacenza. A me Arduino non piace per partito preso, anche se probabilmente sbaglio. Gli svizzeri e i tedeschi, negli anni '80-'90, avevano tutti i loro meccanismi applicazione con una variante in una manciata di sigle dello stesso chip con stessa piedinatura: piattolino a 8 piedini; due per l'alimentazione, intrecciantesi con un quarzo che andava a un piedino per la stabilizzazione e divisione in frequenza (spesso cambiava il quarzo, su 2-3 frequenze massime tra 3, 768 Khz o 4,196 Mhz e poco più) e due piedini che andavano a pilotare una bobina invertente la polarità due volte al secondo, per far fare al motorino passo passo mezzo giro alla volta dentro allo statore accoppiato alla bobina. Se a questo circuito primordiale, alimentabile a 1,5 volt, gli applichi la giusta demoltiplica, può portare lancette di una certa dimensione. Oppure, tramite un motorino simile a quelli della Solari, si può far andare le lancette in movimento continuo. A che serve stare lì a programmare un software? Quello lo utilizzerei preferibilmente per pilotare con minor numero di circuiti una indicazione digitale, magari gigante, con l'ausilio di array di transistors. Arduino e simili li riserverei preferibilmente a quei robot casalinghi che ti spazzano i pavimenti o ti portano le bibite ad orari stabiliti quando sei su una poltrona oppure vicino al divano, se non per automatizzare l'utilizzo di piccoli droni, come quelli che in Korea hanno utilizzato per controllare chi violava l'ordine di stare a casa.

andreafranz
Senior User
Senior User
Messaggi: 300
Iscritto il: sab set 22, 2018 8:30 am
Località: AO

Re: Orologio da parete esterno

Messaggio da andreafranz » lun mar 23, 2020 9:48 pm

Giacomo ha scritto:
lun mar 23, 2020 4:50 pm
ti ringrazio moltissimo. Se mi invi il file txt lo carico direttamente io.
il programma puoi copiarlo direttamente dal post ed incollarlo nel software di arduino.
provvede lui a compilarlo ed inviarlo al processore della scheda.
buona serata
Andrea

Rispondi

Torna a “Orologi da Torre”