Go Down

Topic: Led clock (Read 2540 times) previous topic - next topic

leo72

Apr 23, 2013, 12:35 am Last Edit: Apr 23, 2013, 11:08 am by leo72 Reason: 1
Uff... non è ancora finito lato software ma funziona...  ;)
Domani vi do qualche dettaglio in più

http://www.youtube.com/watch?v=oZQ9E2ZkHPY

Testato

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  :smiley-yell:
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

leo72

Rilascerò il firmware già compilato così non potrai spacciarlo per tuo  :smiley-yell:

Michele Menniti

Grande Leo, la Svizzera ha emesso un mandato di cattura internazionale "LEO_Clock dead or alive"  :D ormai stanno perdendo il controllo del tempo.... Concordo con Test e.... con qualcun altro  ;) I LED in colonna sono tranquillamente leggibili rispetto al binario, dove non si capisce niente di niente, nemmeno ad impararlo a memoria :smiley-eek-blue:
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
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

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 :)

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

leo72

@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  ;)

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

astrobeed

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

http://www.youtube.com/watch?v=-6JnAxTXApw

leo72


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 :)

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  ;)

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.

leo72

@astro:
quando inizierò a lavorare con i motori  ;)

Michele Menniti

@ 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ù.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

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.

leo72

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.

Michele Menniti


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.
:smiley-eek: grazie.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72

#13
Apr 23, 2013, 11:43 am Last Edit: Apr 24, 2013, 10:53 am by leo72 Reason: 1
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

Michele Menniti

#14
Apr 23, 2013, 12:57 pm Last Edit: Apr 23, 2013, 01:03 pm by Michele Menniti Reason: 1
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 :)
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
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Go Up