Led clock

Uff... non è ancora finito lato software ma funziona... :wink:
Domani vi do qualche dettaglio in più

carinissimo
molti che ho visto sono in binario, ma diventano poi troppo difficili da leggere.
Copiero' parte del codice, e lo modifichero', senza rilasciare nulla. A limite una foto nel cartone :stuck_out_tongue_closed_eyes:

Rilascerò il firmware già compilato così non potrai spacciarlo per tuo :stuck_out_tongue_closed_eyes:

Grande Leo, la Svizzera ha emesso un mandato di cattura internazionale "LEO_Clock dead or alive" :smiley: ormai stanno perdendo il controllo del tempo.... Concordo con Test e.... con qualcun altro :wink: I LED in colonna sono tranquillamente leggibili rispetto al binario, dove non si capisce niente di niente, nemmeno ad impararlo a memoria :fearful:
Un solo suggerimento: nella versione definitiva io cambiarei le colorazioni dei LED a gruppi di due ed il 5 diverso, secondo me la leggibilità ne guadagnerebbe molto. P.es. vvrrgrrvv o vvrrgvvrr, quindi gruppi di due ed il centrale di colore diverso, naturalmente nella combinazione di colori che preferisci. COMPLIMENTI.... Riiiicolaaaaa XD

bello, volevo farne uno pure io ma del tipo random, o come il tuo ma disponendo i led in cerchi concentrici, giusto per incasinare la lettura :slight_smile:

alla fine che componenti hai usato, solo l'atmega?

@Michele:
I led sono a discrezione dell'utente, ognuno si mette la combinazione che preferisce, basta poi cambiare le corrispondenti resistenze in serie.

Inizialmente era nato come orologio con i colori mescolati ma poi mi sono reso conto che sarebbe stato un bel casino leggere l'orario. Ho scartato anche i led blu perché non li ho trovati a buon mercato (1 blu mi costava quanto 4 di quegli altri) ed i led arancioni perché con un colore troppo simile al rosso. Alla fine i vecchi rosso/verde/giallo sono i migliori :wink:

Tra poco pubblico lo schema, al codice sto ancora lavorando.

Leo, a quando la realizzazione di un propeller clock ? :slight_smile:

reizel:
bello, volevo farne uno pure io ma del tipo random, o come il tuo ma disponendo i led in cerchi concentrici, giusto per incasinare la lettura :slight_smile:

alla fine che componenti hai usato, solo l'atmega?

Quelli random richiedono di contare dei led che mentre li stai contando possono anche cambiare combinazione. Sono molto belli, sopratutto se li fai con i led RGB. Uwe ne ha fatto uno molto bello l'anno scorso, l'ho visto dal vivo.

Questo qui lo reputo più semplice perché la divisione in decine ed unità facilità il conteggio. Alla fine, l'orario lo leggi sulle ore:minuti, i secondi sono optional e lasciati più per la scenografia che per altro, fanno vedere un pò di animazione :wink:

Come "cuore" ho usato un Atmega328 (ma dovrebbe bastare anche un 168, penso) ed un PCF8563 come RTC. Ho usato un modulo RTC esterno perché volevo un orario preciso nonché facilmente mantenibile in caso l'alimentazione se ne vada: la sua batteria CR2032 lo alimenterà per anni in caso di assenza di alimentazione. Se dovevo alimentare il 328 avrei dovuto prevedere una batteria più grossotta nonché tutte le problematiche legate al risparmio energetico che non potevo attivare perché avrei sfalsato l'orario mantenuto dalla swRTC.

@astro:
quando inizierò a lavorare con i motori :wink:

@ Astro: spiega, è una battuta, un effetto grafico o qualcosa che si può realizzare sul serio, non vedo il video perché la chiavetta mi farebbe disperare, quindi mi piacerebbe saperne di più.

Te lo spiego io. Si ha un circuito su cui sono montati i led che è fissato ad un motore. Si accende il motore e lo si fa girare ad una velocità prefissata, poi l'elettronica a bordo accende i led a seconda della posizione in cui si trova il circuito. In questo modo durante la rotazione, grazie alla persistenza della visione, l'occhio umano "assembla" tutte quelle accensioni programmate ricostruendo un'immagine che sembra comparire in aria.

Un paio di foto del prototipo montato.
Ho scelto una millefori grande per poter mettere i led da 10 mm che ho scelto per l'orologio. Si può anche realizzare l'orologio usando led di 5 mm, riducendo l'ingombro e permettendo di montarlo all'interno di un contenitore, dividendo il circuito su 2 schede.

leo72:
Te lo spiego io. Si ha un circuito su cui sono montati i led che è fissato ad un motore. Si accende il motore e lo si fa girare ad una velocità prefissata, poi l'elettronica a bordo accende i led a seconda della posizione in cui si trova il circuito. In questo modo durante la rotazione, grazie alla persistenza della visione, l'occhio umano "assembla" tutte quelle accensioni programmate ricostruendo un'immagine che sembra comparire in aria.

:astonished: grazie.

Qui il circuito.
I componenti sono semplici. Si tratta di un Atmega328P (dovrebbe bastare anche un Atmega168P), un PCF8563 come RTC, 5 shift register 74HC595 per pilotare altrettanti ULN2803 a cui sono collegati i 39 led da 10 mm.
Le resistenze in serie ai led sono da mettere da 220 ohm sui led rossi e da 200 sui led verdi e gialli. In questo modo si ha una corrente di circa 15 mA per led. Il progetto è stato fatto per NON pilotare i led in multiplexing: avrei risparmiato componenti e collegamenti ma avrei avuto una minor luminosità dei led. Siccome il tutto è alimentato da un alimentatore esterno, ho scelto di alimentare i led singolarmente.

E' prevista una fotoresistenza che, se abilitata da codice, comanda la luminosità dei led via PWM in modo da abbassarla quando la stanza ha poca luce (per evitare l'effetto faro negli occhi quando è buio) o aumentarla quando c'è molta luce (per favorire la vista dei led). Il pilotaggio dei led è fatto con un transistor PNP BDX54 alettato per sicurezza, così da comandare in tutta tranquillità i led anche nel caso in cui siano quasi tutti accesi (può capitare alle 19:59:59, dove abbiamo 38 led accesi).

L'alimentazione è fornita da un alimentatore a 5V che fornisca almeno 1A di corrente (il circuito consuma qualcosa di meno ma è bene stare tranquilli). Io ne ho acquistato uno da 5V/2,5A.

Ho scelto il PCF8563 per "simpatia", lo preferisco al DS1307. Ho fatto uscire un segnale ad 1Hz sul suo pin CLKOUT che ho collegato ad un pin dell'Atmega e che uso per aggiornare l'orario, in modo da non interrogare in maniera frenetica e continuativa l'RTC: l'orario esatto lo prelevo solo 1 volta ogni ora.

Ci sono 3 pulsanti per la regolazione dell'orologio.

EDIT: schema aggiornato

Alcune osservazioni sullo schema:
il pin 10 dell'ULN2803 va collegato al positivo solo per attivare i diodi interni da mettere in parallelo a carichi induttivi (relé), quindi lo dovresti scollegare e lasciare libero
il sistema dei due diodi sull'alimentazione dell'RTC provoca due scompensi: un 4148 sulla batteria porta all'IC solo 2,3-2,4V (pochi), mentre lo stesso diodo sui 5V gliene porta 4,3-4,4 (troppi); dovresti sostituire il 4148 della bat con uno schottky, in modo da perdere solo 0,2-0,3 e mettere almeno due 4148 sui 5V in modo da far passare circa 3,6-3,8V; però non conosco le specifiche dell'RTC che hai usato, magari lavora da 2 a 5V, allora tutto va bene, ma comunque sia quello sulla batteria lo cambierei in ogni caso, 0,4V di differenza saranno un paio di anni di autonomia :slight_smile:
Usi l'ADC, devi mettere almeno il C da 100nF sull'ARef, visto che non ti serve precisione puoi invece evitare i disaccoppiamento dell'AVcc

leo72:
Rilascerò il firmware già compilato così non potrai spacciarlo per tuo :stuck_out_tongue_closed_eyes:

No oooo
E il concetto di opersource dove lo mettiamo ?
Mi appello a quanto resta in te di Stallman :slight_smile:

La mia ideaè farlo piccolino su una matrice 8x8
dividendo i secondi in ottavi

Se ho capito quindi usi sia rtc che swrtc ?

leo72:
Qui il circuito.
I componenti sono semplici. Si tratta di un Atmega328P (dovrebbe bastare anche un Atmega168P), un PCF8563 come RTC, 5 shift register 74HC595 per pilotare altrettanti ULN2803 a cui sono collegati i 39 led da 10 mm.
Le resistenze in serie ai led sono da mettere da 220 ohm sui led rossi e da 200 sui led verdi e gialli. In questo modo si ha una corrente di circa 15 mA per led. Il progetto è stato fatto per NON pilotare i led in multiplexing: avrei risparmiato componenti e collegamenti ma avrei avuto una minor luminosità dei led. Siccome il tutto è alimentato da un alimentatore esterno, ho scelto di alimentare i led singolarmente.

Ci sono 3 pulsanti per la regolazione dell'orologio.

Non riesco ad aprire il file dopo averlo scaricato.

Quelli random richiedono di contare dei led che mentre li stai contando possono anche cambiare combinazione. Sono molto belli, sopratutto se li fai con i led RGB. Uwe ne ha fatto uno molto bello l'anno scorso, l'ho visto dal vivo.

mi son perso il lavoro di uwe allora, ha "pubblicato" qualcosa?

gli uln servivano, quanta corrente si può prendere da un 595?

scelta giusta i led da 10mm, e ancora meglio la regolazione della luminosità in base all'ambiente

L'avevo letto tempo fa ma me l'ero dimenticato :sweat_smile:

il sistema dei due diodi sull'alimentazione dell'RTC provoca due scompensi: un 4148 sulla batteria porta all'IC solo 2,3-2,4V (pochi), mentre lo stesso diodo sui 5V gliene porta 4,3-4,4 (troppi); dovresti sostituire il 4148 della bat con uno schottky, in modo da perdere solo 0,2-0,3 e mettere almeno due 4148 sui 5V in modo da far passare circa 3,6-3,8V; però non conosco le specifiche dell'RTC che hai usato, magari lavora da 2 a 5V, allora tutto va bene, ma comunque sia quello sulla batteria lo cambierei in ogni caso, 0,4V di differenza saranno un paio di anni di autonomia :slight_smile:

Il PCF lavora da 1 a 5,5V.
Ho messo i 4148 perché sono diodi veloci per cui non mi interessa il calo di tensione che introducono quanto il fatto che nel momento in cui stacco l'alimentatore, deve commutare sulla batteria nel più breve tempo possibile.
L'incrocio con i diodi l'ho fatto per far sì che quando c'è VCC la tensione sul 1° diodo sia superiore a quella in uscita dal diodo sulla batteria, inibendolo. Mentre quando VCC non c'è, la batteria non si scarichi su tutto il resto del circuito ma alimenti solo l'RTC.

Usi l'ADC, devi mettere almeno il C da 100nF sull'ARef, visto che non ti serve precisione puoi invece evitare i disaccoppiamento dell'AVcc

Aggiungerò il C su AREF, per il disaccoppiamento c'è solo un unico C da 100n per la linea che alimenta sia VCC che AVCC.

Testato:

leo72:
Rilascerò il firmware già compilato così non potrai spacciarlo per tuo :stuck_out_tongue_closed_eyes:

No oooo
E il concetto di opersource dove lo mettiamo ?
Mi appello a quanto resta in te di Stallman :slight_smile:

La mia ideaè farlo piccolino su una matrice 8x8
dividendo i secondi in ottavi

]:smiley: ]:smiley: ]:smiley:

Se ho capito quindi usi sia rtc che swrtc ?

No. Uso l'RTC e poi il leOS2 per un paio di cosine.