Pages: 1 [2] 3   Go Down
Author Topic: Led clock  (Read 1744 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5790
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Rilascerò il firmware già compilato così non potrai spacciarlo per tuo  smiley-yell
No oooo
E il concetto di opersource dove lo mettiamo ?
Mi appello a quanto resta in te di Stallman  smiley

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

Se ho capito quindi usi sia rtc che swrtc ?
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Offline Offline
Jr. Member
**
Karma: 3
Posts: 69
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Logged

Offline Offline
God Member
*****
Karma: 0
Posts: 689
AHHAH
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
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
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
L'avevo letto tempo fa ma me l'ero dimenticato  smiley-sweat

Quote
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 smiley
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.

Quote
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.
« Last Edit: April 23, 2013, 04:03:25 pm by leo72 » Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Rilascerò il firmware già compilato così non potrai spacciarlo per tuo  smiley-yell
No oooo
E il concetto di opersource dove lo mettiamo ?
Mi appello a quanto resta in te di Stallman  smiley

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

Quote
Se ho capito quindi usi sia rtc che swrtc ?
No. Uso l'RTC e poi il leOS2 per un paio di cosine.
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non riesco ad aprire il file dopo averlo scaricato.
Ho messo direttamente il file .PNG.
Il forum continua ad avere dei problemi con gli allegati.
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

mi son perso il lavoro di uwe allora, ha "pubblicato" qualcosa?
Mise delle foto l'anno scorso se non sbaglio, del circuito mentre lo costruiva. Non mi ricordo se poi mise le foto del lavoro finito.

Quote
gli uln servivano, quanta corrente si può prendere da un 595?
Max 70 ma su tutto il chip, secondo il datasheet. 70/8=8,75 mA per pin. Erano la metà di quella che mi serviva. Per questo ho accoppiato 595+2803.

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


Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 26
Posts: 5494
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non vedevo un circuito su millefori fatto con il wirewrap così grande da un gran bel pezzo, tanto di cappello leo smiley
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

3 giorni di saldature smiley-sweat
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 521
Posts: 12322
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Leo, anche i conti che ho fatto io garantiscono il funzionamento della doppia alimentazione; nello specifico non c'è alcuna "commutazione", e comunque i diodi sono così veloci che il problema non esiste, il mio suggerimento allunga l'autonomia della batteria di parecchio, in caso contrario sarai costretto a sostituirla mentre è ancora buona.
Il disaccoppiamento dell'AVcc, eventualmente, si fa separandola da vcc mediante una R da 22 ogm oltre che un C da 100nF posto direttamente sul pin.
Logged

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

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Leo, anche i conti che ho fatto io garantiscono il funzionamento della doppia alimentazione; nello specifico non c'è alcuna "commutazione", e comunque i diodi sono così veloci che il problema non esiste, il mio suggerimento allunga l'autonomia della batteria di parecchio, in caso contrario sarai costretto a sostituirla mentre è ancora buona.
Ok. Domani dissaldo il 4148 e ci metto un 5819.

Quote
Il disaccoppiamento dell'AVcc, eventualmente, si fa separandola da vcc mediante una R da 22 ogm oltre che un C da 100nF posto direttamente sul pin.
Non ce la metterò perché non mi serve di avere una precisione assoluta, ma per "immagazzinare" l'informazione per futuri utilizzi, la R andrebbe messa in serie sul collegamento da VCC ad AVCC, giusto?
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 521
Posts: 12322
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Il disaccoppiamento dell'AVcc, eventualmente, si fa separandola da vcc mediante una R da 22 ogm oltre che un C da 100nF posto direttamente sul pin.
Non ce la metterò perché non mi serve di avere una precisione assoluta, ma per "immagazzinare" l'informazione per futuri utilizzi, la R andrebbe messa in serie sul collegamento da VCC ad AVCC, giusto?
sì, e a valle il C da 100nF, comunque la cosa è ben spiegata sul data-sheet, ma proprio mentre verificavo ho trovato una novità: ora al posto della R da 22ohm, ATMEL, per la soppressione del rumore, consiglia di usare un'impedenza di 10µH tra Vcc e Avcc, e poi l'onnipresente C da 100nF.
Inoltre ho fatto un'altra scoperta molto interessante: quando si seleziona l'opzione EXTERNAL il comparatore dell'ADC fa riferimento al pin AVcc e NON a Vcc come abbiamo sempre creduto; normalmente è la stessa cosa, ma col disaccoppiamento le cose cambiano, perché a motivo della R o della L sul pin Avcc ti potresti trovare una tensione leggermente inferiore rispetto alla Vcc; tutto ciò vale nei circuiti di precisione ADC, come nel caso del mio frequenzimetro.
Logged

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

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Rilasciato il firmware dell'orologio, scaricabile da questa pagina (in un pacchetto che contiene anche le foto, gli schemi ed i file Eagle).

Il firmware necessita di 3 librerie addizionali per poter essere compilato:
PinChangeInt
Rtc_Pfc8563
leOS2

Il codice è stato scritto e testato su un Atmega328P ma dovrebbe funzionare anche su un Atmega168P perché occupa poco meno di 9K di Flash e 445 byte di RAM (consumo statico).

L'orologio funziona in questo modo:
all'avvio, controlla se l'RTC sta girando oppure no, in caso negativo fa partire l'ora da 00:00:00.
Per programmare l'orario basta premere il pulsante SET per più di 1,5 secondi. Il display fa un lampeggio accendendo tutti i led poi passa in modalità programmazione. Si programmano, in ordine: ore, minuti, secondi. Il principio è lo stesso per tutti: inizialmente viene visualizzato il valore corrente (attenzione al caso "0" perché non vedete nessun led acceso), che potete aumentare o diminuire premendo i pulsanti INC e DEC. I led lampeggiano per farvi capire che siete in programmazione. Per confermare la scelta, premete SET. Dopo 10 secondi che l'utente non preme nessun tasto, il programma passa alla scelta seguente in automatico quindi dopo 30 secondi complessivi esce dalla programmazione da solo.
Alla fine della programmazione l'orario viene salvata localmente e sull'RTC (ricordo che dall'RTC l'orario viene prelevato solo 1 volta all'ora e che l'incremento dell'orario in locale viene fatta con un PCINT agganciato al pin CLK_OUT dell'RTC).

In modalità visualizzazione dell'ora, i pulsanti INC e DEC hanno 2 funzioni aggiuntive, che possono essere attivate premendoli per più di 1,5 secondi.
INC attiva/disattiva la funzione di variazione della luminosità dei led in base alla luminosità ambientale: massima durante il giorno o in piena luce, minima durante la notte o in ambiente buio. Questo per permettere di tenere l'orologio anche in una stanza dove si dorme senza essere "abbronzati" di notte  smiley-cool
Il pulsante DEC attiva invece la modalità notturna (2 accensioni veloci di tutti i led conferma l'attivazione della modalità, 1 accensione di tutti i led conferma la disattivazione della modalità), ossia il display si spenge del tutto dalle 00:00:00 alle 05:59:59 per non disturbare durante le ore notturne.
Logged


0
Offline Offline
Faraday Member
**
Karma: 45
Posts: 5790
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bello  smiley

Il mio sarà molto diverso perché avendo una matrice 8x8 sarà diversa anche la lettura.
Ma mi sarà molto utile il tuo per capire come gestire la logica di accensione led.

Thanks  smiley
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se non condividi, ti banno  smiley-twist
Logged


Pages: 1 [2] 3   Go Up
Jump to: