Costruzione Orologio a led da parete - guida per dummies

così complicato?

Ma elettronica e programmazione sono oggettivamente materie molto vaste che richiedono studio e pratica prima di poter progettare qualcosa da zero. I sistemi di oggi (librerie software e moduli già pronti come Arduino e i vari shield) semplificano un po', nel senso che permettono entro certi limiti di "assemblare" senza doversi occupare di tutti i minimi dettagli progettuali, ad esempio per pilotare display LCD "intelligenti" bastano pochi fili e si trovano molti esempi di base sul software da scrivere. Ma usare componenti non intelligenti (come i display LED in questione) richiede di sapere come vanno usati i diodi, calcolare quanta corrente serve per l'intero insieme, che dissipazioni di potenza ci sono in gioco, come realizzare un apposito "driver" per i segmenti (o sceglierne e comandarne uno esistente). Per questo è praticamente impossibile una "guida passo passo".

Direi che le strade (stiamo parlando di hobby) sono due: -la prima è quella di trovare un progetto già bello e pronto e copiarlo pari pari (magari chiedendo per i dubbi) -la seconda è tenere si a mente l'obiettivo dell'orologio (perché senza un obiettivo difficilmente si è motivati a fare qualcosa), ma prima di arrivare ad esso fare una lunga serie di (già interessanti ed istruttivi in sè stessi) esperimenti intermedi con ogni componente, che permettano di acquisire a piccoli passi la pratica e le conoscenze necessarie.

Sicuramente va letto qualcosa sui componenti base (diodi, transistor, calcolo resistenze acc), bisogna provare ad alimentare "a mano" in modo corretto un solo display, provare a comandare con Arduino dei LED semplici in modo da vedere come si fa ad accendere/spegnere qualcosa e a creare delle sequenze comandate da programma, poi come si può comandare un segmento tramite Arduino e un driver di potenza intermedio. Poi mettere insieme tutte queste cose e provare a fare ad esempio conteggio avanti e indietro su un solo display premendo due pulsanti (più o meno quello che hanno fatto qui: www.evilmadscientist.com/2009/giant-seven-segment-displays). Poi vedere come si possono controllare più display insieme (multiplex, driver seriali ecc). Quando si saprà visualizzare il numero a quattro cifre che si vuole, allora si può dire "ho acquisito lo skill visualizzazione" (e nel frattempo un sacco di sottoskill), e si può partire con quello della gestione dell'ora, preferibilmente leggendo un real time clock già pronto di cui si trovano già esempi.

Ecco... qui iniziamo ad entrare in tecnicismi per me incomprensibili. Comunque credo che si sia già in ambito di programmazione della scheda parlando di questi aspetti, corretto?

Si e no, le due cose (hardware e software) non sono svincolate tra loro, si può costruire un hardware tenendo conto di come lo si vuole comandare con il software. Il discorso anodo/catodo è prettamente elettronico, il modo di usare HIGH e LOW a software dipende da come si è progettato il circuito di comando del singolo segmento.

Poi ovviamente si, Arduino si alimenta non solo via USB ma anche con un alimentatore esterno, ad esempio a 12V, la cui potenza va calcolata in base a quanto deve assorbire l'intero progetto.

Giusto per cominciare con qualche numero... i display che hai linkato su RS (belli, non li conoscevo, anche a me sembra che il prezzo sia sceso -occhio che va aggiunta l'iva più trasporto-), prima di tutto bisogna conoscerne le caratteristiche elettriche, e a questo serve il datasheet sulla destra (rigorosamente in inglese), da cui si evince che ogni segmento richiede da 7.5 a 10V di tensione e 60mA di corrente. Sette segmenti completamente accesi al massimo della luminosità (escluso il punto decimale) richiedono perciò 420mA, che usando un alimentatore da 12Vcc significano almeno 5 watt di potenza. Ora, considerando che i segmenti non saranno sempre tutti accesi, che la luminosità non sarà tenuta al massimo, e che probabilmente le diverse cifre verranno comandate in multiplex (una sola accesa per volta in rapida sequenza), un normale alimentatorino 12Vcc 1A dovrebbe bastare.

Claudio_F: ... un normale alimentatorino 12Vcc 1A dovrebbe bastare.

Sempre meglio abbondare leggermente, che male non gli fa mai ;) (e poi comunque ormai gli alimentatori da 12V 2A costano quasi come quelli da 1 ... :D)

ghezzia: ti allego un paio di esempi (apri l'immagine in un'altra pagina, altrimenti non si vede bene perche' il forum rimpicciolisce le immagini grandi) di schema per il multiplexing di display a 7 segmenti ... il primo dei due andrebbe bene con display piccoli, che possano essere alimentati a 5V (anche perche' altrimenti, con l'alimentazione dei display piu alta di quella della logica, i darlington non funzionerebbero correttamente ... inoltre, come detto da Guglielmo, con quello schema per accendere la cifra bisogna dargli LOW, mentre i segmenti sono accesi a HIGH) ... il secondo invece puo usare per i display una tensione piu alta di quella della logica, quindi andrebbe bene nel tuo caso, e non e' a logica invertita ...

Sono per 6 cifre, ma se non usi i secondi, basta non montare i relativi display ...

|500x261

esempio-display-multiplex.png|2084x1090

Grazie degli schemi Etemenanki, much appreciated :). Sicuramente è un buon punto di partenza. Vi faccio una ulteriore domanda: quale Arduino mi consigliereste? Arduino UNO è sufficiente? oppure visto la scalabilità di cui parlavo e che vorrei mantenere è meglio qualcosa di diverso? inizio a studiare intanto ;)

Tieni presente che se usi 6 cifre e vuoi fare il multiplexing "vecchia maniera", gia ti servono 13 pin di uscita (11 se usi solo 4 cifre) ... se prevedi di volerci aggiungere qualcosa in seguito, direi che e' meglio partire gia da subito con una MCU che offra piu pin disponibili ;)

La mega ti mette a disposizione 50 (o erano 52 ? ... e' meglio lasciare la seriale libera, mi pare ? ) pin liberi, mentre invece se vuoi costruirti uno standalone ottimizzato, il mega1284P (che si trova ancora in formato PDIP) ti da, se non ricordo male, 32 pin disponibili per l'utilizzo ...

rieccomi, in effetti ho visto la MEGA e mi sembra la più completa... forse inizia a diventare un orologio un pò troppo costoso. Comunque la soddisfazione, come ha detto qualcuno in precedenza, di costruirsi qualcosa di personale mi darà la giusta motivazione :).

Immagino servano altri componenti oltre la scheda e i display. Sapreste dirmi cosa posso iniziare a cercare?

Forse ti complico la vita ma magari si potrebbe utilizzare una scheda STM32 economica (costa meno della Mega) ma non so se il fatto che vada a 3.3V invece che 5 poi dia problemi.

Edit: LaSTM32 ha pure tanti pin

Se lo vuoi preciso, un RTC, anche ... schedina con DS3231, economico e piu preciso dei predecessori ... poi ovviamente i driver e le resistenze, per la sezione display ... ed immagino ti servira' qualche pulsante per le impostazioni ... contenitore da appendere, li devi vedere tu ... fili per i cablaggi ... stagno di buona qualita' ... una confezione formato famiglia di pazienza ... (ah, no, quelle non le vendono piu ... ;))

zoomx: Forse ti complico la vita ma magari si potrebbe utilizzare una scheda STM32 economica (costa meno della Mega) ma non so se il fatto che vada a 3.3V invece che 5 poi dia problemi.

Edit: LaSTM32 ha pure tanti pin

si in effetti ho visto la scheda e sicuramente è più economica, solo che utilizzando quella andrei a "snaturare" la filosofia DIY che Arduino ha creato nel mondo e che vorrei dare alla creazione dell'orologio ;)... comunque grazie del suggerimento.

Etemenanki: Se lo vuoi preciso, un RTC, anche ... schedina con DS3231, economico e piu preciso dei predecessori ... poi ovviamente i driver e le resistenze, per la sezione display ... ed immagino ti servira' qualche pulsante per le impostazioni ... contenitore da appendere, li devi vedere tu ... fili per i cablaggi ... stagno di buona qualita' ... una confezione formato famiglia di pazienza ... (ah, no, quelle non le vendono piu ... ;))

Secondo voi se prendessi un KIT iniziale come questo (https://store.arduino.cc/product/GKX01007) potrei già avere tutti i componenti necessari per iniziare? Lo stagno ce l'ho già in casa non so giudicare la qualità dello stagno però :) e il saldatore anche. La pazienza è sempre stato il mio forte... però se non inizio a costruire qualcosa non mi diverto :). Grazie ancora

Alex

ghezzia: (https://store.arduino.cc/product/GKX01007)

Scusate, in effetti non avevo realizzato che questo Kit include la UNO che abbiamo già scartato per il numero di connettori non sufficienti... Avete altri suggerimenti? Dove posso reperire uno schema più dettagliato dei componenti necessari? tipo che mi indichi che tipo di resistenze devo prendere, quali pulsanti o altro?

Grazie Alex

Hai pensato ad una cosa del genere in allegato? 24 LED per le ore/mezzore, 60 LED per i minuti, un LED centrale per lo scandire dei secondi, un pugno di componenti old style (costo qualche euro per tutta la logica), niente programmazione e precisione assicurata da un quarzo? Alimentabile a batterie ricaricabili o mediante alimentatore standard a 5V. Presentato sul n. 182 di Elettronica In dal sottoscritto, la rivista dovrebbe essere scaricabile gratuitamente a motivo di un'offerta temporanea per chi si registra sul sito.

OROLed alle 12 e 17.jpg|1181x1104

[quote author=Michele Menniti date=1477932520 link=msg=2982202] Hai pensato ad una cosa del genere in allegato? [/quote] Grazie del suggerimento Michele, in effetti non è male neanche questo. Avrei tuttavia pensato a qualcosa anche per i bambini quindi di lettura più semplice.

Sulla falsa riga di questo non si può creare con i LED in fila una sorta di display a 7 segmenti?

Mi spiego meglio, io mettendo in fila i LED creo 4 display a forma di 8 e poi con arduino faccio in modo che con lo scandire del tempo si illuminino i segmenti (o per meglio dire le file di LED) necessari a visualizzare le ore e i minuti corretti.

Non credo sia tanto diverso dal tuo come concetto, o mi sbaglio?

Qualcuno sa dirmi se è fattibile?

Sì, è da squilibrati ma si può fare, se usi tot LED per ogni singolo segmento e li accendi/spegni tutti assieme, ma con la logica che ti è stata suggerita finora e non con quella che ho usato io; infatti nel tuo caso realizzi un orologio digitale, il mio progetto invece è una emulazione dell'orologio analogico, con il "movimento" delle lancette.

[quote author=Michele Menniti link=msg=2982230 date=1477933687] Sì, è da squilibrati ma si può fare [/quote] Beh! In effetti io sono un pochino squilibrato :)... ma pensavo che così facendo si potesse "risparmiare" almeno sul costo dei display

Be', in realta' anche quello si potrebbe fare senza programmazione ... tocca usare 4 convertitori BCD-7segmenti, ed un bel po di porte logiche per creare una catena di divisori con la giusta sequenza ... partendo dai secondi (i punti lampeggianti fra le cifre, o quello che si vuole), primo divisore per dieci (minuti), secondo per sei (decine di minuti, con reset del gruppo al passaggio da 59 a 60), terzo divisore per 10 (ore), quarto divisore per 2 (decine di ore, con reset del gruppo al passaggio fra 23 e 24) ... non e' proprio immediato, ma era il primo orologio che avevamo realizzato come "compito in classe" al secondo anno di elettronica ... e funzionava, persino :P :D

Etem, io l'ho realizzato a suo tempo, su una millefori, 4 mitici FND800, una base dei tempi che partiva da un quarzo a 1MHz, avevo perfino messo il cucù, ogni ora i 4 display lampeggiavano per un numero di volte legato all'ora (6 volte alle 6 p.es.) e da un altoparlantino usciva una sorta di pernacchia a 100 Hz, anche i cucu prendono la raucedine :grin: Ho ancora questo prototipo in laboratorio, alla prima occasione posto la foto, lo spettacolo non è tanto la quindicina di integrati ed i display, quando il milione di collegamenti :sweat_smile: :sweat_smile: :sweat_smile:

ghezzia: Mi spiego meglio, io mettendo in fila i LED creo 4 display a forma di 8 e poi con arduino faccio in modo che con lo scandire del tempo si illuminino i segmenti (o per meglio dire le file di LED) necessari a visualizzare le ore e i minuti corretti.

Si che si può fare, anche quei display all'interno sono delle "file di LED". Solo che per dire cosa serve bisognerebbe decidere una volta per tutte come fare questi display, quanti LED per fila, che driver usare (integrati o discreti), alimentazione disponibile. Insomma in un modo o nell'altro serve comporre qualcosa tipo questo (ho usato driver discreti a transistor per evitare le cadute di tensione sulle uscite di integrati come ULN2803 UDN2981 che complessivamente possono arrivare ai 3 volt... almeno stando ai datasheet).

|379x500

Di driver superiore ne va realizzato uno per cifra, di quelli inferiori uno per segmento (sette). La RX è da valutare sperimentalmente: con i display di cui si parlava prima e 12V di alimentazione il suo valore dovrebbe essere compreso tra 18 e 56 ohm (a seconda della caduta di tensione sui segmenti che si puo` valutare solo strumentalmente sul momento).

Il "blocco funzionale" display avrebbe quindi 11 ingressi piu` le alimentazioni. Collegando al positivo (5 o 12V) c1..c4 si alimenta la singola cifra, collegando al positivo (5 o 12V) a..g si alimentano i segmenti della cifra scelta con c1..c4

Per quanto riguarda il numero di pin di Arduino (e quindi ad esempio la scelta tra UNO e Mega) tieni conto che molte cose possono essere fatte usando shift register, bus SPI o i2c, per cui con pochissimi fili si possono comandare molte cose e decine di ingressi uscite.

Ad esempio per comandare display (a catodo comune, ma se si fa con LED sciolti è indifferente) c'è anche il MAX7219: con solo tre fili (più alimentazioni) si pilotano fino a otto cifre, e al multiplexing + regolazione luminosità ci pensa l'integrato stesso.

Al momento non so però quanta corrente può gestire ne se c'è una libreria pronta per comandarlo (immagino di si), altrimenti bisogna fare un po'di più lavoro software, ma d'altra parte il suo uso sgraverebbe Arduino dal creare il multiplexing delle cifre via software.

per dire cosa serve bisognerebbe decidere una volta per tutte come fare questi display, quanti LED per fila, che driver usare (integrati o discreti), alimentazione disponibile.

Bene, mi sembra che iniziamo ad entrare nella parte operativa. Diciamo che sono persuaso nel farlo con file di LED che creano le cifre a 7 segmenti; Diciamo che ogni fila debba essere composta da 10LED classici (quelli a bulbo per intenderci); Diciamo che per la scelta dei driver mi devo affidare alla vostra esperienza; Diciamo che l'alimentazione proviene dalla 220 di casa; Diciamo che, stando alle ultime rivelazioni, posso accontentarmi di una arduino UNO.

Pensate che un primo acquisto del kit citato in precedenza possa andare come base di partenza? Aggiungerei nel frattempo L'acquisto di almeno 280 LED (azz. Mi sembrano tantini), giusto? Resistenze, integrati, altro? Forse un trasformatore (ne ho alcuni provenienti da residui di pc portatili...)

Non vedo l'ora di iniziare :). Grazie

P.s. Ho pensato di utilizzare una stampante 3D per realizzare il case dell'orologio, c'è qualcuno che mi sa dire dove trovare dei progetti da utilizzare? Alex

[quote author=Michele Menniti link=msg=2982256 date=1477935266] ...4 mitici FND800 ...[/quote]

... devo averne ancora un po, seppelliti da qualche parte ... :D

... anche i cucu prendono la raucedine :grin: ...

:stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes:

ghezzia: Per l'acquisto di cosi tanti led, ebay o aliexpress vengono in aiuto (anche se tocca aspettarli dai 20 ai 40 giorni, dalla Cina o in genere dall'asia si pagano un decimo che qui) ... Per il pilotaggio, se non usi integrati che incorporano controllo di corrente nei drivers, puoi anche usare la soluzione di claudio, ma tieni presente che la sezione display dovra' funzionare a 12V comunque, per non avere troppa corrente da gestire, quindi anche i driver integrati andranno bene ... oppure si possono usare mosfet al posto dei transistor, se serve per forza alimentare tutto con i 5V (ma in quel caso tutti i led dei singoli segmenti dovranno essere in parallelo, ognuno con la sua resistenza, e ti servirebbe un'alimentatore da 5V ed almeno 5 o 6 A, mentre alimentandoli a 12V, se li usi rossi potrai fare due gruppi di 5 led in serie con una resistenza per gruppo, messi in parallelo, per ogni segmento ... se li usi verdi, gialli o soprattutto blu / bianchi servira' metterne meno in serie, 4 per verde e giallo, 3 per bianco e blu, perche' hanno cadute di tensione maggiori, quindi non potresti avere 10 led per segmento)

EDIT: per il contenitore, un po di post fa nella sezione megatopic Astro e gli altri parlavano di un programma che permette di progettare contenitori da stampare poi con le 3D, magari ti puo interessare ... pero', piu che altro, mi sa avrai problemi di dimensione (4 cifre con segmenti da 10 led, con le cifre opportunamente distanziate, non so se una larghezza del genere ci sta sul piatto di una 3D, a meno che non sia un modello grosso ...

ghezzia: Diciamo che sono persuaso nel farlo con file di LED che creano le cifre a 7 segmenti; Diciamo che ogni fila debba essere composta da 10LED classici (quelli a bulbo per intenderci);

Trasparenti ad alta luminosità, o "normali" a luce diffusa e luminosità medio bassa? I secondi sono più adatti ad essere guardati direttamente, mentre i primi come idea potrebbero andare bene per "retroilluminare" un foglio di carta (come idea il display potrebbe essere un semplice plexiglass trasparente rivestito di carta, quando è spento non si vede nulla).

Diciamo che l'alimentazione proviene dalla 220 di casa;

Intendevo ovviamente parlare di quale alimentatore (e quindi tensione continua usabile) si ha a disposizione.

Diciamo che, stando alle ultime rivelazioni, posso accontentarmi di una arduino UNO.

Se dovessi costruire io quel display usando una UNO e volessi risparmiare pin, sicuramente lo piloterei tramite due shift register come i 74HC595, in modo da usare solo 3 pin (e avere agratis come effetto collaterale ulteriori cinque uscite ausiliarie a bassa velocità), indifferentemente usando componenti sciolti o modulini già pronti come questo (non so se questi link sono ammessi).

Pensate che un primo acquisto del kit citato in precedenza possa andare come base di partenza?

Al di la dei nomi giocosi dati agli esperimenti, se non sbaglio ci sono bambini per casa e quel kit potrebbe essere divertente anche per loro, è sicuramente indispensabile per gli esperimenti di base di cui parlavo, soprattutto considerando che hai detto di essere a zero come software. Ci sono comunque tanti "starter kit" con più o meno componenti, qui va valutato se la presenza del libro (in inglese?) con le spiegazioni ed esperimenti guidati può fare la differenza. Sicuramente breadboard + ponticelli + LED/resistenze sono fondamentali...

Resistenze, integrati, altro? Forse un trasformatore (ne ho alcuni provenienti da residui di pc portatili...)

Manca sempre un RTC i2c come questo... e anche schede millefori dove saldare LED e parti non già preassemblate. Per partire, anche un tester base "cinese" da 20..30 euro (giusto per scartare quelli proprio infimi) non dovrebbe mancare. Diciamo che pensare di prendere tutto quello (e solo quello) che può servire in un colpo solo per me è un po'un'utopia.