Arduino Forum

International => Italiano => Generale => Topic started by: ghezzia on Oct 25, 2016, 10:38 pm

Title: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 25, 2016, 10:38 pm
Ciao a tutti,
sono nuovo sia del forum che nell'utilizzo di arduino, qualcuno di voi saprebbe indicarmi un tutorial o qualche sito nel quale trovare una guida A.P.S. (A Prova di Stupido :)), con la quale costruire un semplice orologio da parete formato da strisce di LED (o anche a cristalli liquidi) comandato da arduino?

La mia idea sarebbe quella di creare delle file di LED che formano 4 numeri 8 i cui segmenti si illuminano come un classico orologio LCD degli anni 80 :).

Ovviamente vista la mia ignoranza in materia (finora ho costruito solo un quadricottero) vi chiederei di indicarmi anche, se possibile, una lista della spesa dei componenti.

Grazie per il supporto.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: gpb01 on Oct 25, 2016, 11:59 pm
Buona sera,
essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI (http://forum.arduino.cc/index.php?topic=113640.0) (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO (http://forum.arduino.cc/index.php?topic=149082.0) ... Grazie. :)

Guglielmo
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: nid69ita on Oct 26, 2016, 09:44 am
La mia idea sarebbe quella di creare delle file di LED che formano 4 numeri 8 i cui segmenti si illuminano come un classico orologio LCD degli anni 80 :).
Personalmente non ho capito di che tipo di orologio parli. 
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: gpb01 on Oct 26, 2016, 09:51 am
Personalmente non ho capito di che tipo di orologio parli.
Credo che stia semplicemente parlando di simulare dei display a 7 segmenti ...

(https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcR6OOgHhgB7ZyzBhiA7YlTdlTX5eCTWXKbPiC7GC-_-SBelBVaO)


>ghezzia:  ... ma comprare un semplice display a 4 cifre 7 segmenti no ? ? ?


Guglielmo
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: nid69ita on Oct 26, 2016, 09:58 am
Forse però lo vuole grande ? 
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: gpb01 on Oct 26, 2016, 10:32 am
6"1/2, ovvero 15 cm, possono bastare ? QUI (https://www.sparkfun.com/products/8530) :D :D :D

O magari gli servono alti un metro ... ::)

Guglielmo
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 26, 2016, 10:40 am
Ci sono display gia fatti con cifre alte anche 10 o 15 cm, ma ti pelano un rene e forse anche mezza milza per comperarli :P :D ...

si possono "ricreare" usando led normali, ma se si vuole un buon risultato estetico, serve anche abbastanza lavoro manuale ... per costruire la "maschera" che separa i segmenti, da piazzare poi dietro una lastra di vetro smerigliato o plexiglass opalino, in modo che alla vista poi appaiano come segmenti e non "righe di puntini" ...

Come alternativa, invece, se si vuole che appaiano cosi, sarebbe da realizzare uno stampato dove saldare dei led SMD che compongono i segmenti, in modo che siano un po piu estetici di singole file di led rotondi (ad esempio, piazzandoli in modo che ogni segmento sia fatto da 3 righe parallele, quella centrale scalata in modo da avere anche i terminali dei segmenti "obliqui" come nei display veri, o roba simile)

Soluzioni possibili ce ne sono molte, solo che sopra una certa dimensione richiedono tutte un po di lavoro manuale extra ... ad esempio, anni fa avevo disegnato un'orologio da parete fatto con led RGB opalini da 5mm, pero' disposti "all'interno" della cornice (che sporgevano verso l'interno, intendo), e disposti fra due lastre di vetro, una a specchio ed una a semispecchio, in modo da creare un'effetto "tunnel infinito" ... solo che poi nella cornice il paio di centinaia di fili necessari non ci sarebbero stati, quindi avevo abbandonato l'idea ... all'epoca i "neopixel" ancora non esistevano ... adesso che ci sono anche formato 5mm standard, basterebbero 3 fili ed una cornice larga 1cm o poco piu, magari sarebbe realizzabile ora ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 26, 2016, 10:43 am
6"1/2, ovvero 15 cm, possono bastare ? QUI (https://www.sparkfun.com/products/8530) :D :D :D
...
... me li ricordavo piu costosi ... (non che siano cosi economici comunque, ma attualmente mi sembra costino almeno la meta' di quello che ricordavo io ... )
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: gpb01 on Oct 26, 2016, 11:26 am
... me li ricordavo piu costosi ...
... non credo che facendoteli da solo artigianalmente alla fine, tra il tempo ed i materiali, risparmi molto ;)

Guglielmo
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 26, 2016, 02:28 pm
... non credo che facendoteli da solo artigianalmente alla fine, tra il tempo ed i materiali, risparmi molto ;)

Guglielmo
Vero ... pero' vuoi mettere la soddisfazione di stupire gli amici con un'orologio da parete con il display (magari pure RGB, che cambia lentamente tutto lo spettro dei colori ogni qualche minuto, tanto per non annoiare con un solo colore :P) con le cifre alte magari 45cm e largo 1 metro e venti ? ... (:P :D)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 26, 2016, 07:14 pm
NO! NO! ragazzi!,
non sono sparito, solo che oggi sono stato fuori tutto il giorno per lavoro (trasferta a CN da MI)...
Allora riassumo:
Quote
essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI
Fatto :)

Quote
6"1/2, ovvero 15 cm, possono bastare ? QUI
è esattamente quello che cercavo (e che non trovavo) anche se avendo delle morsettiere (non so esattamente come si chiamano) sulle quali montare i led che poi si sarebbero accesi nel modo corretto poteva essere una valida alternativa

Quote
con le cifre alte magari 45cm e largo 1 metro e venti ? ... (:P :D)
ecco... magari vorrei evitare di essere denunciato per "illuminazione molesta" :D :D

Comunque quanto sopra riportato è esattamente quello che vorrei fare, anche a costo di fare del bricolage spinto.
Qualcuno ha dei suggerimenti sulla lista della spesa dei vari componenti? Oltre ai Display ovviamente... Oltre a questo poi mi servirà un suggerimento per la programmazione di Arduino...

Grazie ancora dei suggerimenti

Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Oct 26, 2016, 08:14 pm
Quote from: ghezzia
avendo delle morsettiere (non so esattamente come si chiamano) sulle quali montare i led che poi si sarebbero accesi nel modo corretto poteva essere una valida alternativa
Connettori strip?

Quote
Comunque quanto sopra riportato è esattamente quello che vorrei fare, anche a costo di fare del bricolage spinto. Qualcuno ha dei suggerimenti sulla lista della spesa dei vari componenti? Oltre ai Display ovviamente... Oltre a questo poi mi servirà un suggerimento per la programmazione di Arduino...
Ok per il bricolage (in questo caso il valore è la soddisfazione per il lavoro svolto e non l'ormai inesistente risparmio nel costruirsi le cose da sè)... però, la lista della spesa mi sembra un'attimino prematura... cioè non si può fare una lista spesa senza un progetto chiaro, e non si può fare un progetto chiaro se non si è deciso come strutturare (far funzionare) il tutto, ovvero di quali componenti funzionali debba essere formato (ad esempio un pannello pulsanti e un real time clock i2c) e di come si vuole far "comunicare" o usare questi sottosistemi.

Il solo pilotaggio dei display ha diverse alternative, multiplex software "alla vecchia maniera"? Shift register da comandare in SPI? Controller i2c? Ciascuna di queste alternative richiede un discreto studio... che darebbe il vero valore aggiunto (leggi esperienza + soddisfazione) all'intero lavoro.

La parte programmazione va poi impostata sull'hardware che si è deciso di usare (studiando la documentazione dei componenti o dei moduli usati).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 26, 2016, 09:55 pm
Grazie della risposta Claudio_F
Connettori strip?
heheh!! può essere... anzi credo proprio siano questi :)

Il solo pilotaggio dei display ha diverse alternative, multiplex software "alla vecchia maniera"? Shift register da comandare in SPI? Controller i2c? Ciascuna di queste alternative richiede un discreto studio... che darebbe il vero valore aggiunto (leggi esperienza + soddisfazione) all'intero lavoro.
wow!! così complicato? eventualmente avete consigli su testi (non troppo tecnici) da leggere che mi possano aiutare in queste scelte?

A me interessava creare qualcosa che potesse avere le dimensioni dei succitati display e che mi indichi l'ora per il momento... magari in futuro vorrei che si potessero aggiungere dei moduli relativi al meteo esterno o qualcosa di simile. Tipo che sia "scalabile"...

"alla vecchia maniera"
Mi piace molto ;)

Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 26, 2016, 11:22 pm
Ho trovato anche questi (http://it.rs-online.com/web/p/display-a-led/2359382/) display che non mi sembrano male... leggermente più piccoli ma rifiniti meglio e più cheap ;). Che ne dite?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: gpb01 on Oct 27, 2016, 08:42 am
Ho trovato anche questi (http://it.rs-online.com/web/p/display-a-led/2359382/) display che non mi sembrano male... leggermente più piccoli ma rifiniti meglio e più cheap ;). Che ne dite?
Ottimi ed effettivamente più gradevoli alla vista ;)

Attenzione comunque che sono ad ANODO comune, quindi li dovrai pilotare a logica inversa (LOW accende il segmenteo, HIGH lo spegne).

Ah ... naturalmente NON puoi collegare i singoli segmenti ai pin di Arduino (richiedono troppa corrente), ma dovrai usare dei driver.

Guglielmo
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 27, 2016, 09:16 am
Attenzione comunque che sono ad ANODO comune, quindi li dovrai pilotare a logica inversa (LOW accende il segmenteo, HIGH lo spegne).
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?

Ah ... naturalmente NON puoi collegare i singoli segmenti ai pin di Arduino (richiedono troppa corrente), ma dovrai usare dei driver.
A questo proposito volevo chiedere: ma la scheda di arduino può essere alimentata direttamente dalla rete elettrica? trasformandola in bassa tensione ovviamente :)

Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 27, 2016, 09:51 am
...
Attenzione comunque che sono ad ANODO comune, quindi li dovrai pilotare a logica inversa (LOW accende il segmenteo, HIGH lo spegne).
...
... oppure usare dei 2803 o 2003 per pilotare i catodi ... ;) ... se vuoi fare il multiplexing alla vecchia maniera, dovrai anche usare 4 transistor PNP (6 se metti anche i secondi) che reggano una certa corrente, oppure mosfet a canale P pilotati da comuni BC337, per gli anodi comuni ... nulla di trascendentale, comunque ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Oct 27, 2016, 10:46 am
Quote
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 (http://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.

Quote
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.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 27, 2016, 11:21 am
... 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 ...

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=185092)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 27, 2016, 10:00 pm
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 ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 28, 2016, 09:43 am
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 ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 28, 2016, 08:58 pm
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?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Oct 29, 2016, 12:14 pm
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
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 29, 2016, 04:32 pm
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 ... ;))
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 30, 2016, 09:49 pm
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.

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
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 31, 2016, 11:43 am
(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
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Oct 31, 2016, 05:48 pm
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 (http://www.elettronicain.it/myMain/riviste/p_rivista.asp?nrRivista=EI182&tipo=edicola) dal sottoscritto, la rivista dovrebbe essere scaricabile gratuitamente a motivo di un'offerta temporanea per chi si registra sul sito.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 31, 2016, 06:04 pm
Hai pensato ad una cosa del genere in allegato?
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?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Oct 31, 2016, 06:08 pm
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.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 31, 2016, 06:13 pm
Sì, è da squilibrati ma si può fare
Beh! In effetti io sono un pochino squilibrato :)... ma pensavo che così facendo si potesse "risparmiare" almeno sul costo dei display
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 31, 2016, 06:16 pm
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
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Oct 31, 2016, 06:34 pm
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  :smiley-mr-green: 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  :smiley-sweat:  :smiley-sweat:  :smiley-sweat:
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Oct 31, 2016, 10:18 pm
Quote from: 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 (https://www.sparkfun.com/datasheets/IC/uln2803a.pdf) UDN2981 (http://www.horter.de/doku/UDN2981.pdf) che complessivamente possono arrivare ai 3 volt... almeno stando ai datasheet).

(http://stor.altervista.org/p.php?p=driver_display.png)

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.

(https://i.ytimg.com/vi/T1_IAcp84-4/hqdefault.jpg)

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.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 01, 2016, 12:11 am
Quote
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
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 01, 2016, 10:31 am
...4 mitici FND800 ...
... devo averne ancora un po, seppelliti da qualche parte ... :D


Quote
... anche i cucu prendono la raucedine  :smiley-mr-green: ...
:smiley-yell: :smiley-yell: :smiley-yell:
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 01, 2016, 10:36 am
> 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 ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 01, 2016, 11:27 am
Quote from: 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).

Quote
Diciamo che l'alimentazione proviene dalla 220 di casa;
Intendevo ovviamente parlare di quale alimentatore (e quindi tensione continua usabile) si ha a disposizione.

Quote
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 (http://www.robot-italy.com/it/shift-register-breakout-74hc595.html) (non so se questi link sono ammessi).

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

Quote
Resistenze, integrati, altro? Forse un trasformatore (ne ho alcuni provenienti da residui di pc portatili...)
Manca sempre un RTC i2c come questo (http://www.robot-italy.com/it/real-time-clock-module-ds1307.html)... e anche schede millefori (http://www.robot-italy.com/it/100-x-160-mm-proto-board.html) 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.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 01, 2016, 06:04 pm
Quell'RTC lo eviterei ... perche' una schedina con DS3231, anche quelle di sparkfun e simili, sono si un po piu costose, ma anche molto piu precise ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 01, 2016, 08:56 pm
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).
OK, l'idea mi piace, opterei per quelli ad alta luminosità, avete per caso un link per capire quali sono esattamente?

Se dovessi costruire io quel display usando una UNO e volessi risparmiare pin, sicuramente lo piloterei tramite due shift register come i 74HC595,
OK! inseriti nella lista della spesa ;)

Diciamo che pensare di prendere tutto quello (e solo quello) che può servire in un colpo solo per me è un po'un'utopia.
Lo so lo so.... ma ce la farò :).

P.S. ho trovato su un drone costruito da me la scheda di cui allego foto... pensate possa essermi utile?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 02, 2016, 09:39 am
Credo sia un flying controller (credo, non lo conosco bene, ma dati i connettori integrati per i servi/esc ... :D) ... mi sa che sara' dura adattarlo per farci andare altre cose ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 02, 2016, 05:01 pm
Credo sia un flying controller (credo, non lo conosco bene, ma dati i connettori integrati per i servi/esc ... :D) ... mi sa che sara' dura adattarlo per farci andare altre cose ...
Concordo ;)... era solo un'idea
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 02, 2016, 05:10 pm
Ma a quel punto, se non vuoi "sprecare", per modo di dire, una schedina arduino lasciandola in permanenza attaccata all'orologio, ti basta la MCU con un paio di componenti esterni ...

Intendo dire che, dopo che avrai testato tutto sulla breadboard (o la millefori, o quello che preferisci), dato che comunque ti tocchera' probabilmente farti uno stampato o usare una millefori per assemblare la versione definitiva, potrai prevedere di usare la sola MCU, come standalone incorporato nel resto del circuito ... in quel modo ti rimarra' l'arduino per altre cose, ed il tuo orologio funzionante ... ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 02, 2016, 05:19 pm
in quel modo ti rimarra' l'arduino per altre cose, ed il tuo orologio funzionante ... ;)
Questo era un aspetto che non avevo considerato... e sicuramente ha il suo peso.

Nel frattempo ho trovato questo (https://create.arduino.cc/projecthub/iizukak/flip-dot-clock-3dd850?ref=platform&ref_id=424_trending___&offset=0) progetto.. se utilizzassi una Flip Dot come quella indicata nel progetto? L'unico problema è che non ho ben chiaro quanto possa costare.

Lo so che ho le idee confuse :). Sicuramente Etem mi ha comunque illuminato sul fatto di poter utilizzare la UNO solo per la fase di "testing"...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: gpb01 on Nov 02, 2016, 05:25 pm
>ghezzia:  ... non c'entra molto con quanto discusso sino ad ora ... ma, tanto per confonderti le idee :smiley-mr-green: :D :smiley-mr-green: ... lo hai visto QUESTO (http://www.instructables.com/id/Led-Matrix-Arduino-Clock/) qui ? ;)

Magari è un'altro spunto ...

Guglielmo
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: brunello22 on Nov 02, 2016, 06:44 pm
E se vuoi tornare all'opzione iniziale ed usare delle StripLed ( è economico ) dà un'occhiata a Questo (http://www.instructables.com/id/Build-a-huge-7-segments-8-digits-red-LED-display/)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 02, 2016, 09:48 pm
Grazie a Guglielmo e Brunello... mi sa che rimango sulle mie idee originarie (anche se le stripled sembrano anche più interessanti).

Quindi: Scheda Arduino UNO che comanda una serie di LED rossi ad alta luminosità che compongono 4 cifre a 7 segmenti (10 LED per ogni Segmento).

per questo vi scriverei una prima lista della spesa per la quale vi chiederei un consiglio:

1.   Arduino UNO (che stando a quanto dice Etem potrebbe essere qualsiasi altra scheda che potrei riutilizzare ad altri mille scopi)
2.   Nr. 280 LED rossi ad alta luminosità (ne compro 300 per sicurezza :) )
3.   Resistenze - quante? Che tipo? (56 corrispondenti a 2 per segmento se utilizzo la logica dei 5 LED in serie?)
4.   Nr. 1 RTC
5.   Nr. 2 Shift Register
6.   Nr. ? Schede millefiori o proto board che dir si voglia. Può essere che ce ne voglia una per cifra più una per tutti i componenti? Nel qual caso sarebbero 5 (a me interessano solo ore e minuti)
7.   Stagno
8.   Saldatore
9.   Tester
10.   Alimentatore 12V (quanti A?)

Sicuramente manca qualcos'altro... che dite c'è qualcosa di sbagliato?

Ma a quel punto ti basta la MCU con un paio di componenti esterni ...
Che tipo di MCU? quali componenti?

voglio iniziareeeeee :)

Grazie ancora per la pazienza.

Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Nov 03, 2016, 04:27 am
Io avrei iniziato con un display a 7 segmenti e dopo sarei passato ai led.
Come MCU l'Arduino basta.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 03, 2016, 09:43 am
Quote from: ghezzia
2. Nr. 280 LED rossi ad alta luminosità (ne compro 300 per sicurezza :) )
Saranno da cablare anche i punti di separazione tra ore e minuti

Quote
5. Nr. 2 Shift Register
Ovviamente avrai considerato anche gli zoccoli.

Quote
]6. Nr. ? Schede millefiori o proto board che dir si voglia. Può essere che ce ne voglia una per cifra più una per tutti i componenti? Nel qual caso sarebbero 5 (a me interessano solo ore e minuti)
E chi lo sa che sorprese possono saltare fuori in corso d'opera...

Quote
10. Alimentatore 12V (quanti A?)
3. Resistenze - quante? Che tipo? (56 corrispondenti a 2 per segmento se utilizzo la logica dei 5 LED in serie?)
È tutto collegato. Si parte dai LED usati e se ne misura le tensione diretta (o si azzarda basandosi sulle loro specifiche), in base a questa si può sapere quanti ne vanno messi in serie al massimo, per restare almeno un paio di volt sotto la tensione di alimentazione disponibile, e solo a questo punto si può calcolare il valore delle resistenze su cui deve cadere la differenza di tensione residua (Vcc - Vled - Vdriver).

Diciamo che a spanne, ipotizzando 12V di alimentazione, si possono formare serie di quattro LED ad alta luminosità rossi con in serie una resistenza da 220 ohm.

Una volta stabiliti quanti gruppi di LED dovranno essere accesi in parallelo contemporaneamente, si può sapere con certezza quanti ampere serviranno. Comunque come già detto 1A dovrebbe bastare e 2 anche avanzare (meglio abbondare).

A proposito di driver... dalla lista mi sembra manchi tutto quello che riguarda i driver (gli shift register servono solo a pilotare i driver riducendo il numero di uscite da usare di Arduino), quindi qualora volessi usare il sistema che ho riportato mancano tutti i transistor (4xBD140 4xBC237 7x2N2222) e le loro resistenze. Qualora invece volessi usare i driver integrati come gli ULN2803 UDN2981 allora sono da mettere questi nella lista, ma l'alimentazione deve essere almeno due..tre volt più alta (quindi servirebbe un alimentatore da 15V anziché 12).

Le strip di LED avrebbero semplificato almeno la parte "calcolo delle resistenze" in quanto già predisposte per i 12V e stop.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 03, 2016, 11:26 am
Saranno da cablare anche i punti di separazione tra ore e minuti
SI in effetti... 300 dovrebbero bastare ;)

Ovviamente avrai considerato anche gli zoccoli.
Questi (http://www.robot-italy.com/it/shift-register-breakout-74hc595.html) sono già compresi degli zoccoli giusto?

E chi lo sa che sorprese possono saltare fuori in corso d'opera...
A me piacciono le sorprese :D

A proposito di driver... dalla lista mi sembra manchi tutto quello che riguarda i driver (gli shift register servono solo a pilotare i driver riducendo il numero di uscite da usare di Arduino), quindi qualora volessi usare il sistema che ho riportato mancano tutti i transistor (4xBD140 4xBC237 7x2N2222) e le loro resistenze.
Lo schema che hai riportato è questo giusto?
(http://stor.altervista.org/p.php?p=driver_display.png)

Ora aggiorno la lista della spesa e la riporto per un ulteriore confronto :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 03, 2016, 03:38 pm
...
Che tipo di MCU? quali componenti?
Arduino, o per essere piu precisi, l'integrato Atmega328P-PU, che e' poi la MCU che c'e' montata su arduino ... poi dipende, se hai la versione con la MCU in DIL (formato integrato standard, montato su zoccolo), allora alla fine ti basta l'integrato in se (per questo parlavo di standalone) piu qualche resistenza e condensatore, magari prendendolo con il bootloader gia caricato, una volta che hai visto che il prototipo funziona, sfili il chip dall'arduino e lo metti nel tuo circuito (mettendone un'altro sulla schedina arduino, in modo da averla per altre cose) ...


Quote
voglio iniziareeeeee
Eh, no, troppo comoda :P :D ... prima di tutto devi decidere COME vuoi pilotare i display, shift register o pilotaggio diretto ? ... in base a questo, si fa prima di tutto uno schema elettrico e lo si controlla bene ... poi se hai alcune protoboard (http://www.ebay.it/itm/MB-102-Solderless-Breadboard-Protoboard-830-Tie-Points-2-buses-Test-Circuit-KY-/142132768212?hash=item2117c5edd4:g:yHcAAOSwmfhX7M58) puoi fare dei test collegando il tutto volante, per vedere se funziona (usando 4 normali display piccoli o uno a 4 cifre, tipo questi (http://www.ebay.it/itm/DISPLAY-4-CIFRE-LED-ROSSO-7-SEGMENTI-anodo-comune-LTC-2637E-/252322342505?hash=item3abf956669:g:Y3AAAOSwv9hW6WYd) o simili) ... e solo alla fine, quando sei sicuro che tutto funziona come vuoi, passi alla realizzazione definitiva su millefori (dove avrai quasi certamente la fortuna di sperimentare di persona entrambe le leggi di Murphy ... scherzo :P) ... ma quello verra' per ultimo, e solo se durante i passaggi precedenti sarai riuscito a far funzionare tutto senza sciogliere il tavolo, incendiare la casa, lasciare al buio mezza citta', fulminare il cane o vaporizzare il quartiere (:D)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 03, 2016, 06:04 pm
Eh, no, troppo comoda :P :D ... prima di tutto devi decidere COME vuoi pilotare i display, shift register o pilotaggio diretto ? ...
Avevo pensato di farlo con gli shift register... per ridurre la necessità di uscite dall UNO... o mi sbaglio?

in base a questo, si fa prima di tutto uno schema elettrico
Per questo schema avrò bisogno sicuramente di un aiutone :)... da che parte si inizia?

Di seguito la lista della spesa aggiornata:

1.   Arduino UNO
2.   Nr. 300 LED rossi ad alta luminosità
3.   Resistenze - da definire numero e tipo in base al progetto
4.   Nr. 1 RTC
5.   Nr. 2 Shift Register
6.   transistor (4xBD140 (http://it.rs-online.com/web/p/transistor-bipolari/7614404/) 4xBC237 (http://it.rs-online.com/web/p/transistor-bipolari/6254691/) 7x2N2222 (http://it.rs-online.com/web/p/transistor-bipolari/7387571/)) (è possibile che il 2n2222 costi così tanto? Se così fosse cambio progetto visto che ce ne vogliono 7 :( )
7.   Nr. 6 proto board.
8.   Stagno
9.   Saldatore
10.   Tester
11.   Alimentatore 12V 2°
12.   MCU Atmega328P-PU (http://it.rs-online.com/web/p/microcontroller/6962260/)
13.   Nr. 2 Protoboard (http://www.ebay.it/itm/MB-102-Solderless-Breadboard-Protoboard-830-Tie-Points-2-buses-Test-Circuit-KY-/142132768212?hash=item2117c5edd4:g:yHcAAOSwmfhX7M58)
14.   Innumerevoli Jumper e ponticelli flessibili
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Nov 03, 2016, 07:17 pm
Ma come mai stai mischiando componenti THT con SMD? Sei attrezzato per lavorare con questi ultimi? Al posto del 2n2222 (quel prezzo è spropositato!!!) trova un qualsiasi equivalente e lo paghi pochi centesimi, così come costa il 2n2222 THT preso altrove (http://www.ebay.it/itm/100x-2N2222-NPN-Transistor-Linear-Amplifier-And-Switching-Application-/201020013319?_trksid=p2141725.m3641.l6368), come vedi costano 10c l'uno......
A me piace moltissimo questo tuo entusiasmo ma mi pare che tu stia andando incontro ad una spesa non indifferente confidando troppo sull'aiuto del Forum che certamente ti sarà dato, ma temo non nella misura in cui speri tu, un conto sono dei consigli, un conto è mettersi a disegnare e suggerire schemi e poi spiegarti come devi infilare i pezzi nella bread board.
Personalmente, trattandosi del tipico circuito modulare, invece di svenarti per un esperimento che poi potrebbe non piacerti, potresti comprare l'occorrente per gestire i 4 display ma con un paio di LED a segmento, realizzare il firmware di base, valutare l'effetto dell'hardware e l'impatto sulla programmazione e poi, se sei sempre convinto prendi tutto il resto, almeno parti con una settantina di LED. Personalmente li dimezzerei del tutto e realizzerei due sole cifre partendo dal firmware per i secondi o i minuti.
Io vorrei capire se davvero qualcuno ti ha fatto credere possibile montare un circuito con trecento LED sulle breadboard. Ti allego una foto di quando lavorai al prototipo dell'Orologio che ti ho mostrato giorni fa. Come vedi c'è il LED dei secondi, i 24 LED delle ore/mezzore, mentre al posto dei 60 led dei minuti ne usai solo 10 e spostavo il pilotaggio di decade in decade variando la posizione dei jumper, ora provati ad immaginare se avessi voluto mettere gli altri 50, e quando ci riesci moltiplica il tutto per 4........ (parlo dei soli LED, perché invece gli integrati saranno molti meno di quelli che ho usato io)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 03, 2016, 07:45 pm
Quote from: ghezzia
da che parte si inizia?
Si inizia montando su breadboard una serie di 4 LED (non qualsiasi, ma proprio quelli da usare) + resistenza da 220 ohm, alimentando il tutto a 12V, e misurando la corrente. Questo per capire se quel valore di resistenza va bene o se serve inferiore. Siccome ce ne sono da montare come minimo 56 sarebbe meglio scoprirlo prima il valore giusto.... altrimenti, lavorando solo su carta, si può spaziare dal non si accende niente al fuma tutto.

Un singolo segmento potrebbe essere questo:
(http://stor.altervista.org/p.php?p=led_segment.png)



Quote
è possibile che il 2n2222 costi così tanto?
No no no... hai scelto un caricatore SMD... a noi servono i componenti con montaggio su foro, in effetti il 2n2222 su foro non lo hanno, ma basta qualsiasi altro NPN con circa 40V di tensione e 0.8A di corrente, come il BC337 (http://it.rs-online.com/web/p/transistor-bipolari/7969672/) (e anzi... per avere meno variabili, i 337 si possono usare paro paro anche al posto dei 237, quindi tutti 337 e via).

Quote
visto che ce ne vogliono 7
Otto se vuoi comandare anche i punti...

Dei condensatori sulle alimentazioni quando se ne parla?  :)




Quote from: Michele Menniti
realizzerei due sole cifre partendo dal firmware per i secondi o i minuti.
Speta... che anche a programmazione s'ha da partire dall'ABC...


Quote
Io vorrei capire se davvero qualcuno ti ha fatto credere possibile montare un circuito con trecento LED sulle breadboard.
No, si parla di protoboard, praticamente le millefori.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Nov 03, 2016, 09:10 pm
No, si parla di protoboard, praticamente le millefori.
Ah, ok, ma lui al punto 13, alla voce PROTOBOARD, ha linkato queste (http://www.ebay.it/itm/MB-102-Solderless-Breadboard-Protoboard-830-Tie-Points-2-buses-Test-Circuit-KY-/142132768212?hash=item2117c5edd4:g:yHcAAOSwmfhX7M58). Purtroppo molti venditori ebay hanno il vizio di mettere nella descrizione, oltre al nome proprio del prodotto, più nomi di prodotti similari....e a volte si fa danno. Immagino che quindi le "vere" protoboard siano le 6 del punto 7, ma siccome non ci sono link è meglio che gli sia chiara la differenza, visto che fa anche confusione tra SMT e THT  :smiley-sweat:

Quote
Quote from: Michele Menniti
realizzerei due sole cifre partendo dal firmware per i secondi o i minuti.

Speta... che anche a programmazione s'ha da partire dall'ABC...
Claudio_F, ti vedo in odore di Santità :smiley: , quindi avete tutto il mio appoggio spirituale, faccio il tifo per Voi!
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 03, 2016, 11:35 pm
Un singolo segmento potrebbe essere questo:
(http://stor.altervista.org/p.php?p=led_segment.png)
questo schema penso di averlo decifrato :D. Ci sono gli 8 diodi montati in serie, le due relative resistenze (RX)... A e K sono l'alimentazione? il positivo è la "A" giusto? lato resistenze?

Dei condensatori sulle alimentazioni quando se ne parla?  :)
Appunto! dicevo io... come mai non parliamo di condensatori sulle alimentazioni? :D

A questo punto aggiornerei la lista. Stando a quanto visto finora partirei dai primi 6 punti... una volta fatti i dovuti test proseguirei col resto

1.   Arduino UNO (prenderò il KIT così ho un pò di materiale di scorta)
2.   Nr. 300 LED rossi ad alta luminosità
3.   Nr. 10 Resistenze da 220 ohm (giusto per testare)
4.   Nr. 8 Protoboard (http://www.ebay.it/itm/MB-102-Solderless-Breadboard-Protoboard-830-Tie-Points-2-buses-Test-Circuit-KY-/142132768212?hash=item2117c5edd4:g:yHcAAOSwmfhX7M58)
5.   Alimentatore 12V 2A (posso utilizzare l'alimentatore del PC?)
6.   Innumerevoli Jumper e ponticelli flessibili
7.   Nr. 1 RTC
8.   Nr. 2 Shift Register
9.   transistor (4xBD140 (http://it.rs-online.com/web/p/transistor-bipolari/7614404/) 12x BC337 (http://it.rs-online.com/web/p/transistor-bipolari/7969672/)
10.   MCU Atmega328P-PU (http://it.rs-online.com/web/p/microcontroller/6962260/)
11.   Stagno (già in mio possesso)
12.   Saldatore (già in mio possesso)
13.   Tester (già in mio possesso)

Che ne dite?
Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Nov 03, 2016, 11:47 pm
Io dico che leggi solo ciò che ti fa piacere ed ignori il resto....non è cosa buona, se arrivano delle precisazioni
 o critiche vanno comunque soppesate, esattamente come i suggerimenti che più ti piacciono, sei così preso da questa necessità di fare la spesa che ormai badi solo al fatto se un post contiene sigle e quantità di qualcosa da acquistare,a prescindere se ti possa davvero essere utile. Fai tu.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 04, 2016, 10:07 am
Io, veramente, per iniziare gli avevo suggerito praticamente la stessa cosa ... e di usare dei banali display 7 segmenti per i test ... :P

La costruzione vera e propria delle cifre grandi, la potra' fare alla fine, quando sara' sicuro che tutto il resto funziona come si deve, e dopo averlo testato magari per qualche settimana per essere sicuro che anche a livello firmware gli funzionera' senza intoppi a lungo termine ...


> ghezzia: per lo schema elettrico, quello e' l'ultimo dei problemi, ci si mettono 5 minuti a tirare insieme uno schema di base ... ma prima di passare alla realizzazione definitiva, e' praticamente obbligatoria la fase di collaudo ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 04, 2016, 10:41 am
Io dico che leggi solo ciò che ti fa piacere ed ignori il resto....non è cosa buona, se arrivano delle precisazioni
 o critiche vanno comunque soppesate, esattamente come i suggerimenti che più ti piacciono, sei così preso da questa necessità di fare la spesa che ormai badi solo al fatto se un post contiene sigle e quantità di qualcosa da acquistare,a prescindere se ti possa davvero essere utile. Fai tu.
mi spiace tu ti sia offeso... del resto anche i tuoi post (che ho comunque letto con attenzione) contenevano sigle e riferimenti a metodologie di approccio, che ahimè ho fatto fatica a comprendere (l'ho detto che sono una capra), per questo ho focalizzato la mia attenzione su chi mi ha suggerito attività chiare e comprensibili per me. Del resto da qualche parte devo pur iniziare... sto cercando di imparare leggendo i vostri suggerimenti e contestualmente documentandomi "tecnicamente".

Infatti:
Io, veramente, per iniziare gli avevo suggerito praticamente la stessa cosa ... e di usare dei banali display 7 segmenti per i test ... :P
Tu intendi iniziare a costruire un prototipo con un piccolo display a 7 segmenti e una volta capite le logiche passare alla costruzione delle cifre coi led corretto? mi sembra sicuramente un approccio saggio :)

> ghezzia: per lo schema elettrico, quello e' l'ultimo dei problemi, ci si mettono 5 minuti a tirare insieme uno schema di base ... ma prima di passare alla realizzazione definitiva, e' praticamente obbligatoria la fase di collaudo ...
OK! come detto sopra mi sembra un buon approccio: da che parte inizio? compro intanto il kit (che mi pare contenga già un display) e inizio ad assemblare?

Grazie ancora ragazzi.

>Michele, grazie anche a te ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 04, 2016, 11:23 am
Be', un kit lo puoi prendere, tanto ti servirra' per le prove ... se c'e' gia dentro un display a 4 cifre, meglio ancora, altrimenti recupera un display tipo quello che ti avevo suggerito, oppure uno che comunque abbia le 4 cifre con gli anodi in comune, cosi poi non dovrai cambiare circuiti passando alla realizzazione pratica ... ti servira' anche l'RTC, una decina almeno di resistenze da 330 ohm (per i test il display potra' funzionare in modo diretto con i 5V, la parte a 12V con i transistor o i driver per le cifre grandi la potrai realizzare in seguito anche quella), e se vuoi usare gli shift, anche un paio di quelli ... piu un po di fili e qualche pulsantino, con i relativi componenti per il debounce (per ogni pulsante, una resistenza da 10K, una da 100 ohm ed un condensatore da 100n ... anzi, di condensatori da 100n prendine almeno una decina, serviranno alche per filtrare le alimentazioni) ... e direi che puoi prendere una decina di BC337 ed una decina di BC237, che comunque poi ti potranno venire buoni per altre cose, e che costano poco ... ma per i componenti cerca bene su ebay o simile, perche' ci sono venditori che hanno prezzi assurdi, oppure che ricaricano spese di spedizione assurde per componenti da pochi centesimi ... a volte conviene realmente acquistare all'estero ...

Direi che per iniziare puo bastare ... per la protoboard, dipende da te, se prendere una tipo quella che ti avevo segnalato, con i contatti a molla, oppure se assemblare il test su un pezzo di millefori, nel primo caso la potrai riutilizzare per altre cose, nel secondo no, la scelta e' tua ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Nov 04, 2016, 11:37 am
Perché dovrei essere offeso ghezzia? :o io ho solo fatto la considerazione che se non leggi, o se leggi, non comprendi e non chiedi chiarimenti di ciò che ti si scrive, corri il rischio di fare acquisti sbagliati e perdere tempo inutilmente. Io non ti ho fornito sigle di componenti, a parte il suggerimento di NON comprare quei 2N2222 smd e componenti smd in generale visto che non sei attrezzato per utilizzarli, e ho cercato di farti ragionare sul fatto che proto e bread board non sono la stessa cosa e che nel secondo caso sarà davvero una follia pensare di collegarvi quasi 300 LED; infine mi pare di averti suggerito di iniziare con una realizzazione minimale, come sta facendo anche ETEM, p.es., per prendere dimestichezza con i componenti e con la programazione.
Il "fai tu", che ribadisco, significa "uomo avvisato mezzo salvato", non che sono offeso  :smiley-sweat:  :smiley-sweat:
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 04, 2016, 11:43 am
Il modo secondo me utile di procedere lo avevo esposto nel post #17 (il mio secondo intervento) quando ancora non si era parlato del kit. Come già detto per me sono prima da svolgere e capire bene tutti gli esperimenti del kit, per prendere confidenza con la programmazione che, partendo da zero, già da sola richiede mesi di esperienza per iniziare a scrivere qualcosa di complesso.

Il display LCD (https://www.arduino.cc/documents/datasheets/LCDscreen.PDF) del kit (https://store.arduino.cc/product/GKX01007) è di tipo intelligente, richiede sei fili per essere controllato ed è una cosa completamente diversa dal comandare i singoli segmenti. Gli esperimenti con display LED ad anodo comune "normali" e gli shift register di cui si è parlato sono questi:

sweeting.org/mark/blog/2011/11/27/arduino-74hc595-shift-register-and-a-7-segment-led-display (http://www.sweeting.org/mark/blog/2011/11/27/arduino-74hc595-shift-register-and-a-7-segment-led-display)
open-electronics.org/guest_projects/74hc595-digital-led-display-based-on-arduino/ (http://www.open-electronics.org/guest_projects/74hc595-digital-led-display-based-on-arduino/)

Poi si possono costruire i gigadisplay + driver (adattando eventualmente a software il livello logico dei segnali se necessario).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 04, 2016, 12:00 pm
"uomo avvisato mezzo salvato"
Tutto chiaro Michele! Peace & Love :)

Grazie Etem.

questo il contenuto del KIT di arduino (italiano):
Genuino Starter Kit include: (https://store.arduino.cc/product/GKX01007)

1 Scheda Genuino UNO Rev3, 1 Cavo USB, 1 Breadboard, 1 Base di legno da montare, 1 Connettore per batteria 9v, 70 Ponticelli rigidi, 2 Ponticelli flessibili, 6 Fototransistor, 3 Potenziometri da 10 kilo ohm, 10 Interruttori, 1 Sensore di temperatura, 1 Sensore di inclinazione, 1 Schermo LCD (16x2 caratteri), 1 LED bianco ad alta intensità, 1 LED RGB, 8 LEDs rossi, 8 LEDs verdi, 8 LEDs gialli, 8 LEDs blu, 1 Piccolo motore DC 6/9v, 1 Piccolo servomotore, 1 Piezo, 1 Ponte H, 1 Fotoaccoppiatore, 2 Transistor MOSFET, 5 Condensatori da 100uF, 5 Diodi, 3 Gel trasparenti (R, G, B), 1 Striscia di connettori a pettine (40x1), 20 Resistenze da 220 ohm, 5 Resistenze da 560 ohm, 5 Resistenze da 1 kilohm, 5 Resistenze da 4.7 kilohm, 20 Resistenze da 10 kilohm, 5 Resistenze da 1 megaohm, 5 Resistenze da 10 megaohm.

Mi pare ci sia buona parte delle cose necessarie, sicuramente mancano gli Shift, resistenze da 100ohm, transistor (BC337 - BC237) e forse lo schermo non si addice al nostro (ormai lo chiamo nostro :)) futuro scopo...
Giusto?

Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 04, 2016, 12:09 pm
Il modo secondo me utile di procedere lo avevo esposto nel post #17 (il mio secondo intervento) quando ancora non si era parlato del kit. Come già detto per me sono prima da svolgere e capire bene tutti gli esperimenti del kit
Ecco appunto! :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 04, 2016, 12:22 pm
Il display LCD (https://www.arduino.cc/documents/datasheets/LCDscreen.PDF) del kit (https://store.arduino.cc/product/GKX01007) è di tipo intelligente, richiede sei fili per essere controllato ed è una cosa completamente diversa dal comandare i singoli segmenti.
Si infatti avevo notato che erano differenti per questo ho pensato anche ad un acquisto separato del display 7 segmenti
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 04, 2016, 05:17 pm
Mi pare ci sia buona parte delle cose necessarie, sicuramente mancano gli Shift, resistenze da 100ohm, transistor (BC337 - BC237) e forse lo schermo non si addice al nostro (ormai lo chiamo nostro :)) futuro scopo...
Giusto?
Anche un RCT... corretto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 05, 2016, 09:36 pm
Ciao,
scusate, ho trovato questo (https://www.amazon.it/gp/product/B00JSOC2QO/ref=ox_sc_act_title_1?ie=UTF8&psc=1&smid=A3HM43P17AWPYB) kit per arduino che non contiene la UNO ma mi sembra comunque abbastanza completo per lo scopo.

Considerando che potrei comprare la UNO (https://www.amazon.it/gp/product/B006H06TVG/ref=ox_sc_act_title_3?ie=UTF8&psc=1&smid=A3PB2RPEYWGNA4) a parte il tutto mi costerebbe sicuramente meno dell'acquisto del KIT ufficiale.

Cosa dite pensate possa essere comunque valida l'alternativa?

Devo sicuramente aggiungere qualche componente come dovrei comunque fare nell'acquisto del KIT ufficiale, ma mi sembra altrettanto completo. Anzi qui ho dentro anche gli shift register...

Mi date un consiglio?
Grazie ancora
Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 06, 2016, 04:17 pm
Di starter kit ce ne sono decilioni... in questo secondo è interessante anche la presenza del display a matrice di punti, e un bel po' di ponticelli, secondo me è valido.

Per quanto riguarda il numero di pezzi... considera sempre che il primo è quello che si brucia, il secondo quello che si usa, il terzo la riserva.

Per il resto, non avevo mai usato fritzing, non sapevo neppure di averlo già pronto nei repository di Ubuntu LOL. Allora per imparare ad usarlo mi sono divertito a buttare giù il cablaggio del circuito pilota+driver dei bigdisplay:

(http://stor.altervista.org/p.php?p=driver_display2.png)

controllatevelo che non so se ci sono orrori... :smiley-razz:
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 06, 2016, 07:08 pm
Allora per imparare ad usarlo mi sono divertito a buttare giù il cablaggio del circuito pilota+driver dei bigdisplay:
Grande Claudio_F, mi sembra uno schema A.P.S. (A prova di Stupido) come serve proprio a me :)

controllatevelo che non so se ci sono orrori... :smiley-razz:
Ecco, su questo ti saprò dire... magari brucio (come tu hai già preventivato) qualche componente... poi vi chiederò ancora consigli.
Nel frattempo ho ordinato il Kit e la UNO... martedì arrivano quindi martedì sera inizierò i primi esperimenti, senza però prima aver messo al sicuro i bambini :D

A proposito gli alimentatori dei PC che ho in casa hanno tutti come output 20v (forse uno 19) minimo 3,25A, pensate si possano adattare in qualche modo?

Grazie ancora, vi aggiornerò all'arrivo del materiale

Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 06, 2016, 07:48 pm
Quote
A proposito gli alimentatori dei PC che ho in casa hanno tutti come output 20v (forse uno 19) minimo 3,25A, pensate si possano adattare in qualche modo?
Secondo me serve uno step down converter (https://www.amazon.it/regolatore-elettronico-stabilizzatore-automatico-lalimentazione/dp/B017SKY41A).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 06, 2016, 11:04 pm
Grazie Claudio_F, grazie anche per il suggerimento di fritzing sto imparando molte cose di base su arduino con i loro tutorial in inglese "teutonico" :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 07, 2016, 10:52 am
Allora. io a prescindere sconsiglio fritzing (sara' anche estetico, ma quando poi devi collegare piu di una ventina di fili, ti esce un macello che meta' basta :P ... tanto per dire, prova ad immaginarti di dover disegnare una cosa del genere (http://i.imgur.com/sU3HMMp.png), che non e' neppure troppo complessa, con fritzing ... :D :D :D) ... scaricati EAGLE free, che oltre agli schemi, ti fa disegnare anche gli stampati ;)

Per lo schema, appena ho un minuto ti butto giu qualcosa, dimmi solo se vuoi fare tutto con i due shift register oppure in multiplexing "puro" o meta' e meta' ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 07, 2016, 11:20 am
Allora. io a prescindere sconsiglio fritzing (sara' anche estetico, ma quando poi devi collegare piu di una ventina di fili, ti esce un macello che meta' basta :P ... tanto per dire, prova ad immaginarti di dover disegnare una cosa del genere (http://i.imgur.com/sU3HMMp.png), che non e' neppure troppo complessa, con fritzing ... :D :D :D) ... scaricati EAGLE free, che oltre agli schemi, ti fa disegnare anche gli stampati ;)
Grazie anche a te Etem, per il momento stavo solo seguendo i vari tutorial per imparare qualcosa su Arduino... comunque anche l'interfaccia di creazione dei circuiti mi sembrava abbastanza intuitiva. Comunque prima di installare darò un'occhiata anche a EAGLE.

Per lo schema, appena ho un minuto ti butto giu qualcosa, dimmi solo se vuoi fare tutto con i due shift register oppure in multiplexing "puro" o meta' e meta' ...
Thanks again ;), sicuramente opterò per i due shift register dal momento che vorrei rimanere sulla UNO (l'ho anche appena acquistata :) )
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 07, 2016, 11:34 am
Quote from: Etemenanki
Allora. io a prescindere sconsiglio fritzing (sara' anche estetico, ma quando poi devi collegare piu di una ventina di fili, ti esce un macello che meta' basta
Sono d'accordo, gestire uno schematico (ho guardato dopo le altre due funzioni schema e pcb) è improponibile, va molto bene per la rappresentazione visiva al volo su bredboard (anche se molte cose mancano).

Quote
dimmi solo se vuoi fare tutto con i due shift register oppure in multiplexing "puro" o meta' e meta'
Io proponevo un multiplexing con shift register, ho verificato che trasmettendo solo 12 bit con una funzione ad hoc la trasmissione dura 185 microsecondi:

Code: [Select]
#define CLOCK_PIN   2
#define LATCH_PIN   3
#define DATA_PIN    4
//-----------------------------------------------------------------------------
//               Trasmette 12 bit ai 74595 (lsbfirst)
//-----------------------------------------------------------------------------
void write_shift_register(uint16_t val)
{
   digitalWrite(LATCH_PIN, 0);
   for (uint8_t i=0; i<11; i++)
   {
           digitalWrite(DATA_PIN, val & 1);
           digitalWrite(CLOCK_PIN, 1);
           digitalWrite(CLOCK_PIN, 0);
           val >>= 1;
   }
   digitalWrite(DATA_PIN, val & 1);
   digitalWrite(CLOCK_PIN, 1);
   digitalWrite(CLOCK_PIN, 0);
   digitalWrite(LATCH_PIN, 1);
}

Se si usano le uscite QA..QG dei 595 per comandare i relativi segmenti (accesi se uscita alta) dovrebbe andare bene la seguente tabella di codici:


Code: [Select]
     CODICI DISPLAY 1=ACCESO

               --A--
             |       |
             F       B
             |       |
               --G--
             |       |
             E       C
             |       |
               --D--


     A  B  C  D  E  F  G  dp
------------------------------------
0    1  1  1  1  1  1  0  0    0xFC
1    0  1  1  0  0  0  0  0    0x60
2    1  1  0  1  1  0  1  0    0xDA
3    1  1  1  1  0  0  1  0    0xF2
4    0  1  1  0  0  1  1  0    0x66
5    1  0  1  1  0  1  1  0    0xB6
6    1  0  1  1  1  1  1  0    0xBE
7    1  1  1  0  0  0  0  0    0xE0
8    1  1  1  1  1  1  1  0    0xFE
9    1  1  1  1  0  1  1  0    0xF6
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: brunello22 on Nov 07, 2016, 01:13 pm
Io rimango dell'idea che usare le StripLed faciliti il montaggio.
E visto che non sono state menzionate schede di prototipizzazione ( millefori ) abbastanza grandi, presumo che voglia montare il tutto su un pannello di legno, dove fare dei fori in cui inserire i Led.
Il che vuol dire 280 fori ( con precisione, altrimenti un led spostato si nota anche a distanza ) e relative 560 saldature. Molto meglio tagliare le StripLed in scrisce da 10cm ( 2 moduli ) e saldarci due fili, e visto che sono adesive, incollarle sul legno, praticando un piccolo foro in prossimità dei fili, in modo da fare i collegamenti sul retro
E visto che i 74HC595 (http://www.ebay.it/itm/20PCS-IC-74HC595-74595-SN74HC595N-8-Bit-Shift-Register-DIP-16-NEW-/221891242112) e i ULN2003 (http://www.ebay.it/itm/10Pcs-ULN2003APG-ULN2003-ULN2003AN-DIP-16-IC-NEW-/221926025927?hash=item33abd26ac7:g:i8sAAOSw14xWMYMK) costano una miseria, eviterei anche il multiplexing, specialmente se devono essere visibili anche da lontano


(https://s25.postimg.org/4u1kblrvz/Display_Strip_595_2003.png)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 07, 2016, 03:35 pm
Il che vuol dire 280 fori ( con precisione, altrimenti un led spostato si nota anche a distanza ) e relative 560 saldature.
In effetti anche questa variabile non l'avevo considerata... l'idea era di costruire una custodia con stampante 3D ma le stripled, sopratutto dopo quanto indicato da te, sembrano essere molto interessanti. Sapete su quale shop trovo le più convenienti?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 07, 2016, 04:01 pm
Fra l'altro, ora che le strip da 120 led per metro sono scese di prezzo, e' pure molto piu conveniente che comperare i led sciolti ... giusto come esempio, http://www.ebay.com/itm/5M-600-LEDs-SMD-2835-IP65-Flexible-Strip-String-Light-12V-Home-Truck-Car-/302088121604?var=600898170806&hash=item4655daed04:g:zSkAAOSwAuZX6j3u (http://www.ebay.com/itm/5M-600-LEDs-SMD-2835-IP65-Flexible-Strip-String-Light-12V-Home-Truck-Car-/302088121604?var=600898170806&hash=item4655daed04:g:zSkAAOSwAuZX6j3u)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 07, 2016, 07:11 pm
La soluzione strip piace anche a me (i displayoni giganti ancora di più), e anche la semplice uscita in parallelo su catena di shift register (rogne in meno a livello software e Arduino più libero per fare altro), ma se non si fa in multiplexing forse va rivista radicalmente l'alimentazione.

Anche per quelle appena linkate... mai uno straccio di dati per capire quanto può assorbire un segmento lungo N centimetri.

È un azzardo ipotizzare un minimo di 100mA per segmento? Accendendo tutto siamo già a quasi 3A. Poi si potrebbe (ecco la follia della sera) calcolare quanti segmenti al massimo possono essere accesi contemporaneamente per un'ora qualsiasi dalle 0:00 alle 23:59 (tra l'altro il segmento F della prima cifra non si accenderebbe mai).


EDIT: Ok, calcolo fatto (fare a Python), al massimo si accendono 24 segmenti contemporaneamente (alle 20:08)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: brunello22 on Nov 07, 2016, 07:26 pm
Normalmente le StripLed consumano 5W al metro, 20mA per ogni modulo da 5cm.
Qui un segmento è composto da due moduli, quindi 40mA a segmento

Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 07, 2016, 07:35 pm
Quindi sono massimo 960mA... giusto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: brunello22 on Nov 07, 2016, 08:47 pm
Dipende da quali tipi di led sono montati sulle striscie, perchè ce ne sono anche di quelle che consumano esattamente il doppio
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 08, 2016, 10:21 am
...mai uno straccio di dati per capire quanto può assorbire un segmento lungo N centimetri.
...
Dipende dal tipo di led e dalla densita' ... in genere, le strip a 12V hanno sezioni da 3 led in serie ognuna con la sua resistenza (infatti si possono tagliare solo ogni 3 led, dove ci sono le marcature ... ma e' sempre meglio controllare la marcatura sulla strip), tutte in parallelo ... se sono led 5050, ogni led assorbe circa 60mA, quindi anche ogni sezione da 3 led, essendo in serie, per cui 60mA per ogni sezione da 3 led del tuo pezzo di strip ...

Se sono 2835, (attenzione a non farsi fregare dai venditori disonesti che nei titoli scrivono 2835 e poi spediscono 3528 ... c'e' una bella differenza fra 3528 e 2835 ... i primi assorbono crca 400mA per metro di strip, i secondi circa il doppio ... e rendono pure piu del doppio della luminosita' ;)) e' piu complicato perche' ne esistono diverse varianti (la Luxeon, ad esempio, per il solo bianco ne produce 5 diverse versioni, 3V 120mA, 3V+TVS 120mA, 6V 60mA, 6V 120mA e 9V 60mA) ... comunque la maggior parte di quelli usati nelle strip sono i 3V 120mA, anche quelli connessi a gruppi di 3 in serie, ogni gruppo con la sua resistenza ... pero' la portata di 120mA non e' compatibile con l'uso su una strip che non garantisce alcuna dissipazione, quindi tocca misurare l'assorbimento di una sezione da 3V (oppure di una strip, e poi dividerlo per il numero di sezioni da 3V presenti), per saperlo con certezza (gli 800mA/metro per la strip da 60led/m li dichiara il venditore, il che farebbe circa 40mA per ogni sezione da 3 led, il che ci sta, ma saranno dati veri ? ... ;)) ...

Ci sono anche le strip con i 5630/5730, ma io in genere le lascio perdere, quei led si bruciano troppo facilmente se non sono saldati su un pcb che dissipa calore ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 08, 2016, 10:34 am
A proposito ... ti ho buttato giu una delle possibili configurazioni per pilotare i 4 display piu i punti lampeggianti di separazione usando un paio di HC595 (e' relativo alla parte esterna, non ti ho segnato i pin di arduino perche' quelli decidi tu quale usare) ... non e' l'unica soluzione possibile, quindi vedi tu se ti puo andare bene ...

nota: i condensatori di filtro, possono sembrare troppi, ma fidati, non lo sono (poi andranno "sparpagliati" in vari punti dello stampato, specie quelli sul 5V, dove due da 100n andranno vicino ai due integrati) ... inoltre le resistenze di pulldown/pullup da 1K e quella di "terminazione" sulla linea fra i due IC ... negli schemi che recuperi da internet di solito non le mettono (come non mettono mai neppure i pin master reset e output enable, il che limita molto il modo di utilizzo, mentre invece per usare gli shift correttamente ci vorrebbero) ... pero' ho visto in alcuni progetti che usavano catene di 595 che avevo realizzato, che senza metterle a volte il sistema si comporta in modo strano o irregolare, per cui io preferisco sempre metterle anche se sono solo due integrati ... ;)EDIT: dimenticavo, mentre fai i test, usando solo i display piccoli ed un led per i punti lampeggianti, il 12V puoi collegarlo al +5V, volendo ... andra' alimentato a 12V in seguito, con le cifre grandi ... inoltre, sempre mentre fai i test, fra gli emettitori dei BC337 in basso ed i display andranno ovviamente aggiunte in serie delle resistenze da 330 ohm, che poi saranno tolte con le cifre a 12V (non le ho disegnate perche' quello sarebbe lo schema gia per le cifre grandi ... in questo modo, se realizzi questa parte su una millefori o PCB, poi non la devi rifare per usare quelle)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 08, 2016, 11:52 am
Quote from: Etemenanki
A proposito ... ti ho buttato giu una delle possibili configurazioni
Piccola dimenticanza, le resistenze sulle basi dei BC327.

Quote
inoltre, sempre mentre fai i test, fra gli emettitori dei BC337 in basso ed i display andranno ovviamente aggiunte in serie delle resistenze da 330 ohm, che poi saranno tolte con le cifre a 12V
Qui volevi dire collettori immagino.

Trovo curiosa l'idea di mettere il comando punti in mezzo ai pin di scansione display, mi sembra che complichi un po'il software. Nel mio schema avevo pensato di comporre il valore ad 12 bit con questa formula (il punto decimale sarebbe stato il pin 7 del primo 595 e l'ordine dei display al contrario):

valore_out = ((codice_display | dpoint) << 4) | (1 << indice_display)

Le resistenze di pull-up/pull-down da 1k mi sembrano esageratamente basse, 5mA ciascuna, non essendo collegamenti lunghi metri (e visto che non ci si deve collegare contatti/pulsanti) delle 10k mi sembrano più che adeguate (le 1k le ho usate qualche volta per collegamenti di qualche decina di metri non optoisolati... anche se adesso non lo rifarei  :smiley-razz: ).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 08, 2016, 12:10 pm
Piccola dimenticanza, le resistenze sulle basi dei BC327.
Giusto, schema corretto e ricaricato

Quote
Qui volevi dire collettori immagino.
Giusto anche questo ... +1 :D

Quote
Trovo curiosa l'idea di mettere il comando punti in mezzo ai pin di scansione display
Come ho detto, questo e' solo uno dei modi possibili, si puo anche nusare l'ultima uscita del primo shift ed un solo BC337 verso massa, oppure pilotarlo in modo indipendente con un'altro pin, o cambiarne l'ordine ... il mio e' "uno" dei possibili modi, non certo l'unico ;)

Quote
Le resistenze di pull-up/pull-down da 1k mi sembrano esageratamente basse
Infatti il loro scopo principale non e' quello di fare da pullup/pulldown ;) ... in alcune delle mie realizzazioni, specie quando c'erano piu di 3 o 4 shift in serie, a volte notavo irregolarita' nel funzionamento o nel caricamento delle stringhe, che in teoria non avrebbero dovuto esserci ... dopo un paio di settimane di tentativi a vuoto per risolvere il problema, su un PCB che ne montava 6 in catena, ho scoperto che "caricando" i segnali con resistenze da 1K (inclusi i loop che dall'uscita di uno shift vanno all'ingresso del successivo) il problema spariva ... nei datasheet non sembra essere riportato nulla di specifico al proposito, e non so perche' senza metterle a volte non funzioni correttamente (perche' i livelli in teoria sono stabili e non ci sono ingressi volanti), pero' da quella volta le metto sempre, anche dove ci sono solo un paio di shift register, e di problemi non ne ho piu avuti ... come diceva la nonna, "meglio prevenire che curare" ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 08, 2016, 12:46 pm
Quote from: Etemenanki
tentativi a vuoto per risolvere il problema, su un PCB che ne montava 6 in catena, ho scoperto che "caricando" i segnali con resistenze da 1K (inclusi i loop che dall'uscita di uno shift vanno all'ingresso del successivo) il problema spariva ... nei datasheet non sembra essere riportato nulla di specifico al proposito, e non so perche' senza metterle a volte non funzioni correttamente (perche' i livelli in teoria sono stabili e non ci sono ingressi volanti), pero' da quella volta le metto sempre, anche dove ci sono solo un paio di shift register, e di problemi non ne ho piu avuti ... come diceva la nonna, "meglio prevenire che curare" ;)
Ok grazie, , mi ero giusto dimenticato di chiedere se la scelta derivava da osservazioni empiriche / esperienza personale. Ammetto che finora come shift register ho usato solo i CMOS CD4021 e CD4094, che anche in catene da dodici non hanno mai manifestato alcun problema.

Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Nov 08, 2016, 05:25 pm
Giusto per precisare, confermo che le resistenze in funzione di pull-up/down devono essere da 1k per le serie TTL 74, mentre vanno benissimo da 10k per le serie CMOS CD40, è proprio una questione di correnti necessarie al buon funzionamento dei transistor interni (o dei fet nel caso dei CMOS).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Nov 08, 2016, 10:02 pm
Se parliamo di strip ci sono i led con il chip ws2812. Con un solo piedino comandi tutto!

Per i consumi teniamo conto che ci sono strip da 30 led al metro ma anche da 144 led al metro. Meglio contare i led.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 08, 2016, 10:14 pm
Rieccomi! Ciao a tutti, ho visto e letto con piacere tutti i vostri suggerimenti.
Domani dovrebbe arrivare la scheda è il kit per iniziare ad impostare il tutto (oggi hanno provato a consegnarla ma non ero a casa:( )
Inizierò a lavorarci presto e sicuramente avrò bisogno di suggerimenti passo passo...
Nel frattempo vi chiedo: posso impostare tutti i collegamenti e fare i primi test utilizzando solo l'alimentazione del cavo usb? Non ho ancora preso L'alimentatore...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 08, 2016, 11:56 pm
Se per primi test intendi dire comandare un po' di LED si, basta la USB.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 09, 2016, 10:36 am
Se per primi test intendi dire comandare un po' di LED si, basta la USB.
Si all'inizio sicuramente dovrei comandare un pò di led, ma poi sicuramente comincerei con i display (piccoli) a 7 segmenti, per passare infine alla versione definitiva (per la quale abbiamo già detto ci vuole l'alimentatore).
Intanto grazie
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 09, 2016, 10:49 am
Per pilotarci solo qualche led oppure i display piccoli, puoi tranquillamente usare l'alimentazione dall'USB ... calcola solo le resistenze da mettere in serie ai segmenti in modo che, con tutti ed 8 i segmenti accesi (di un solo display, perche' in multiplexer sara' acceso solo uno alla volta), ed incluso ovviamente il consumo di arduino, l'assorbimento complessivo non ti superi la corrente massima disponibile (dovrebbero essere 500mA, ma tu considerane 400, perche' alcune usb sono un po critiche) ... comunque anche stando abbondanti, piu di 15mA per segmento non dovrebbero servire, quindi direi che con 150 ohm (5V, meno le cadute sui transistor e quella interna dei led rossi, quindi 2.3/0.015=153.3periodico, arrotondato a 150 che e' valore standard) ci si sta abbondantemente dentro ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 09, 2016, 11:59 am
Allora, seconda versione dello schema, riveduto, corretto, ricotto e confezionato sottovuoto (:P), modificato secondo quanto chiesto da Claudio_F (tu e le tue modifiche, mi e' servito un sacco di tempo per ridisegnarlo ... quasi 10 interi minuti :P :D) ...

L'ho disegnato in due sezioni, dato che poi alla fine probabilmente dovrai montarlo in due parti, display ed elettronica, cosi ho gia previsto la cosa con due connettori ... la sezione display, per le prove, la puoi collegare volante su una breadboard (con le resistenze da 150 per i segmenti, che poi nella versione definitiva non ci saranno perche' se usi le strip o fai le sezioni, quelle avranno gia le loro) ...

Ho invertito l'ordine dei display come diceva Claudio ed usato il pin 7 del primo shift per i punti lampeggianti di separazione ... nota: il +12 serve per quelli, lato display, il vcc ed il gnd non servono, ma li ho messi lo stesso sul connettore, perche' potrebbe venirti voglia di metterci qualcos'altro in futuro, ed averli gia predisposti non fa mai male ;)

Unica cosa da considerare, se scegli di usare le sezioni di strip per il display definitivo, i BC327 non sono sufficenti ed andranno sostituiti con transistor che reggano un po piu corrente, mentre i 337 dei segmenti, se ogni segmento non assorbe piu di 350 / 400 mA, sono invece sufficenti ... da tenere in considerazione nel fare il montaggio, se poi vuoi tenerlo come definitivo ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 09, 2016, 10:51 pm
Eureka!!!
è arrivato il kit e la UNO ho iniziato a sperimentare... ed ho 2 buone notizie:

la prima è che sono ancora vivo e non ho fatto danni strutturali alla casa :P

la seconda è che sono riuscito a far lampeggiare un led (cambiando anche la frequenza di lampeggio) e ad accendere un led schiacciando un pulsante :D... lo so, sono uno dai facili entusiasmi

Ora inizio a studiare gli schemi che avete gentilmente creato per l'orologio poi inizierò ad assemblare il primo test...
solo una cosa per la quale ho trovato difficoltà ed è riconoscere la portata (non so se si dice così) delle resistenze nonostante nel kit ci sia un fantastico adesivo che dovrebbe aiutarmi... sapreste indicarmi un sito/tutorial/libro/università che possa insegnarmi? :)

Edit: ho dimenticato di dirvi che dentro al kit c'è anche un dot-matrix display che mi sembra anche più carino dei display a 7 segmenti. Pensate costino tanto quelli della misura di cui necessito io? Complicherebbe ulteriormente la gestione del circuito?

Buonanotte

Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 10, 2016, 10:14 am
A parte che ti complicherebbero la vita di parecchio ... credo siano ancora oltre i 35/40 Euro a pezzo, grandi come i display che potresti realizzare invece con le strip (sempre a riuscire a trovarli, perche' di solito di quella grandezza ne fabbricano per uso professionale, segnaletica, insegne, e cosi via, ma nel mercato hobbystico non e' che li trovi tanto facilmente)

Un suggerimento ... se realizzi la parte dell'elettronica su una millefori, usane meta' e lasciane un pezzo libero ... cosi se in un secondo tempo vorrai fare tutto "standalone" con la sola MCU (senza cioe' lasciarci collegato arduino) avrai gia lo spazio necessario a montare il resto dei componenti sulla stessa schedina ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 10, 2016, 11:14 am
A parte che ti complicherebbero la vita di parecchio ... credo siano ancora oltre i 35/40 Euro a pezzo
ecco appunto... rimaniamo sulle Strip che mi sembrano sicuramente più gestibili ;)

Un suggerimento ... se realizzi la parte dell'elettronica su una millefori, usane meta' e lasciane un pezzo libero ... cosi se in un secondo tempo vorrai fare tutto "standalone" con la sola MCU (senza cioe' lasciarci collegato arduino) avrai gia lo spazio necessario a montare il resto dei componenti sulla stessa schedina ;)
Grazie del suggerimento, terrò sicuramente presente dal momento che vorrei tenermi Arduino per altro...

Vi tengo aggiornati sull'evoluzione, anche se sicuramente avrò ancora bisogno di voi in corso d'opera :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 10, 2016, 11:27 am
A proposito, cosa intendi con "portata" delle resistenze ? ... il valore in ohm o la potenza dissipabile ?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 10, 2016, 11:38 am
la sezione display, per le prove, la puoi collegare volante su una breadboard (con le resistenze da 150 per i segmenti, che poi nella versione definitiva non ci saranno perche' se usi le strip o fai le sezioni, quelle avranno gia le loro)
Quindi in fase di test utilizzando i piccoli display messi a disposizione dal KIT devo collegare una resistenza da 150 su ogni segmento?

usato il pin 7 del primo shift per i punti lampeggianti di separazione ...
Il primo Shift è quello in alto nello schema? se si, io vedo i punti collegati al primo e secondo PIN.... magari sono io faccio fatica a leggere lo schema :)

A proposito, cosa intendi con "portata" delle resistenze ? ... il valore in ohm o la potenza dissipabile ?
Si era il valore in ohm... ma ho trovato un simpatico sito sul quale inserendo i colori ti calcola direttamente il valore in ohm :)

Grazie
Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 10, 2016, 11:50 am
Il "primo" e' quello sotto ... cioe' il primo della catena, quello collegato direttamente ad arduino ... il secondo, quello sopra, e' "in serie" (pin di uscita dati del primo collegato all'ingresso seriale del secondo) ;)

Al secondo sono collegati i transistor che pilotano gli anodi dei 4 display

Mi riferisco all'ultimo schema che ho modificato secondo le indicazioni di Claudio, non al primo che avevo postato ... quello allegato in due parti al post #91 ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 10, 2016, 11:56 am
Quote from: ghezzia
solo una cosa per la quale ho trovato difficoltà ed è riconoscere la portata (non so se si dice così) delle resistenze
Strano che nel kit abbiano messo le E24 con tolleranza 1% (cinque anelli) invece delle più classiche E12 al 5% (quattro anelli e più semplici da leggere). Normalmente la tolleranza è l'anello più distaccato, ma vedo delle foto come questa in cui non si capisce se si sta guardando una R da 11MΩ o da 1500Ω, credo ci si debba aiutare un po' col tester:

(http://www.passionescienza.it/contenuti/elettronica/codicecoloriprecisione.gif)

Quote
c'è anche un dot-matrix display che mi sembra anche più carino dei display a 7 segmenti. Pensate costino tanto quelli della misura di cui necessito io? Complicherebbe ulteriormente la gestione del circuito?
Dal punto di vista hardware, se si volesse lavorare in multiplexing, sarebbe equivalente a pilotare 32 cifre a 7 segmenti invece di 4, comandando 8 gruppi di 4 display accesi contemporaneamente (8 righe per 32 colonne). Per questo ci sono apposite schedine con MAX7219 (http://rgb.kitiyo.com/pics/7219_64LED_ckt.png).

Quote from: Etemenanki
Ho invertito l'ordine dei display come diceva Claudio ed usato il pin 7 del primo shift per i punti lampeggianti di separazione
mi aggrada... anche se il display 10h è sempre comandato dal pin 15 (uscita QA), ma è una sottigliezza, basta pensare al contrario l'array dei valori orari o l'indice, che io avevo pensato così:

displ        10h      1h     10m      1m      

indice        0       1       2       3

1<<indice    0001    0010    0100    1000

out 2°595    ABCD    ABCD    ABCD    ABCD
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 10, 2016, 11:58 am
Il "primo" e' quello sotto ... cioe' il primo della catena, quello collegato direttamente ad arduino ... il secondo, quello sopra, e' "in serie" (pin di uscita dati del primo collegato all'ingresso seriale del secondo) ;)

Al secondo sono collegati i transistor che pilotano gli anodi dei 4 display

Mi riferisco all'ultimo schema che ho modificato secondo le indicazioni di Claudio, non al primo che avevo postato ... quello allegato in due parti al post #91 ...
Si lo schema è l'ultimo che hai postato (esempio-cabl-orol-2b.png), ora mi è chiaro che il primo shift è quello sotto... solo che io i due punti li vedo collegati al PIN 8 qui :). I primi sette sono per i segmenti delle cifre.

Altro quesito:

Secondo voi è meglio utilizzare una millefiori per ogni cifra (il che comporterebbe comunque capire come inserirci i due punti centrali in modo "estetico") oppure è meglio utilizzarne una già grande che possa contenere tutti i componenti dell'orologio?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 10, 2016, 12:27 pm
Quote from: ghezzia
Secondo voi è meglio utilizzare una millefiori per ogni cifra (il che comporterebbe comunque capire come inserirci i due punti centrali in modo "estetico") oppure è meglio utilizzarne una già grande che possa contenere tutti i componenti dell'orologio?
Le dimensioni standard eurocard di una millefori (fori! NON FIORI :smiley-mr-green:) sono 10x16 centimetri.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Nov 10, 2016, 02:17 pm
http://www.associazionemarconi.com/calcolo/codice_resistenze_elettriche_4.html (http://www.associazionemarconi.com/calcolo/codice_resistenze_elettriche_4.html)
C'è anche una app per Android.

Per quanto riguarda i dot matrix esiste la possibilità di collegarne alcuni, non so il massimo, oppure di comprarli già più grandi. Esistono anche quelli RGB.
Cambiano le librerie ma in rete trovi di tutto.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 10, 2016, 03:16 pm
... anche se il display 10h è sempre comandato dal pin 15 ...
Basta invertire il collegamento ai pin ... oppure piu semplicemente quello sul connettore di uscita ;)



... li vedo collegati al PIN 8 qui :)...
... e' collegato al pin numero 7, che e' l'uscita numero 8 ... ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 10, 2016, 03:50 pm
http://www.associazionemarconi.com/calcolo/codice_resistenze_elettriche_4.html (http://www.associazionemarconi.com/calcolo/codice_resistenze_elettriche_4.html)
C'è anche una app per Android.
è esattamente quella che avevo trovato io... utile!

Per quanto riguarda i dot matrix esiste la possibilità di collegarne alcuni, non so il massimo, oppure di comprarli già più grandi. Esistono anche quelli RGB.
Cambiano le librerie ma in rete trovi di tutto.
In rete ho trovato questi (http://www.digikey.it/product-search/it?keywords=160-1014-ND) mi sembrano una misura interessante , se ne comprassi 4.... Non preoccupatevi... non sto cambiando idea nuovamente :D

... e' collegato al pin numero 7, che e' l'uscita numero 8 ... ;)
Ecco!... grazie ancora ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 10, 2016, 04:43 pm
... delle foto in cui non si capisce se si sta guardando una R da 1.1MΩ o da 150Ω...
(http://www.passionescienza.it/contenuti/elettronica/codicecoloriprecisione.gif)
Appunto ... chi ha postato quella foto, ha messo proprio la resistenza a rovescio (anche se di poco, l'anello a sinistra e' piu distande di quelli a destra, quindi e' la tolleranza, e quella e' una R da 150 ohm ;))

Certo che anche chi le fabbrica potrebbe lavorare meglio, "impaccando" le striscie del valore, che non gli sarebbe costato nulla ... e se poi devi usare quelle a 6 bande, che includono anche il coefficente termico ? ... e vai di tester, che alla fine serve sempre ... :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 10, 2016, 10:38 pm
Buonasera,
Questa sera ho acceso e messo in loop i dallo zero al nove più qualche lettera il mio primo display 7 segmenti. Sono molto orgoglioso :)
Mi sorge spontanea una domanda: visto che in fase di programmazione della UNO posso impostare i tempi degli eventi in millisecondi qual'è L'esatta funzione dell' RTC? È un problema di precisione del processore? Oppure un problema di complicatezza del codice da caricare?
Buonanotte
Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Nov 11, 2016, 10:44 am
Gli RTC tengono conto del tempo qualsiasi altra cosa succeda al micro, di solito hanno anche una batteria di backup per essere totalmente indipendenti dall'alimentazione principale.
E' possibile crearsi delle routine che facciano da RTC e tenere conto del tempo ma qui la precisione può essere influenzata da altri fattori, banalmente da cosa altro fa la MCU. Nel tuo caso in effetti non fa altro.
Devo dire che ho costruito un kit cinese da pochi euro con un Atmel della famiglia 8051 che va da alcuni giorni e sembra non perdere il tempo. PEr cui sarebbe fattibile almeno provare.
Tieni conto che però il clock della UNO non è preciso ma che in rete c'è gente che descrive come calibrare il tutto in modo da avere una precisione decente.
Ci sono anche librerie apposite che fanno uso della sola MCU ma non le ho mai usate.

Però secondo me la seccatura è quella di aggiornare gli orologi, banalmente per il passaggio da ora invernale a estiva e viceversa, per cui io avrei piuttosto aggiunto un ESP8266 in modo da prendere l'ora dai servet NTP che sono server che servono a sincronizzare gli orologi dei computer.

Piuttosto un paio di giorni fa ho visto su Hackaday un post proprio sugli orologi digitali giganti
http://hackaday.com/2016/11/10/really-big-digital-clock-finds-use-for-really-big-3d-printer/ (http://hackaday.com/2016/11/10/really-big-digital-clock-finds-use-for-really-big-3d-printer/)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 11, 2016, 11:49 am
... really big ? ... le cifre saranno alte si e non una spanna ... :D

(http://www.dontclickthis.de/wp-content/uploads/2013/04/SFE-Wall-Clock-35.jpg)

Questo e' un po meglio ... cifre alte 60cm e display largo 3.6 metri ... :D :D :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 11, 2016, 12:11 pm
Belloooo lo voglio. Tando adesso  con Trump al comando possiamo anche non preocuparci piu dell'inquinamento... Sia atmosferico Che luminoso :D.

Divagazioni Politiche a parte mi sembra che l' ESP8266 sia un modulo wifi per arduino corretto? Nell'ottica del fatto che il mio obiettivo è quello di eliminare la scheda alla fine, pensate che questo modulo possa essere compatibile col progetto? In effetti la possibilitá di aggiornare l'ora senza metterci mano mi sembra una buona idea :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Nov 11, 2016, 12:23 pm
L'ESP8266 può funzionare sia insieme ad Arduino che da solo. Ha pochi pin per cui il pilotaggio dovrà essere effettuato tramite altri chip ma è molto più potente. Consuma di conseguenza. Ma se usi un display gigante non sarà certo il consumo della MCU ad essere un problema.

Però prima realizza un modello piccino, poi aggiungi il resto.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 11, 2016, 12:34 pm
Per mantenere la sincronizzazione in automatico, oltre ai server web, c'e' anche la possibilita' di utilizzare un ricevitorino per il segnale DCF77 a 60KHz (quello che ancora trasmette i segnali orari campione dalla Germania, e copre quasi tutta l'Europa) ... c'erano anche delle librerie per arduino, mi sembra, per convertire il binario in uscita dal ricevitore in segnale orario ... e sarebbe indipendente dalla disponibilita' della connessione internet, quindi piazzabile quasi dappertutto ...

Moduli si trovano in alcuni vecchi orologi radiocontrollati di recupero, oppure su internet/ebay sui 12/15 Euro, completi di antenna accordata in ferrite ... in teoria si possono anche costruire, basta un'RL accordato a 60KHz su una barretta di ferrite, un'operazionale ed uno squadratore, ma se non si ha un po di esperienza con i circuiti RF, anche in LF come questo, meglio acquistarlo gia pronto, non e' che come soldi ci si risparmia piu di tanto, in compenso l'autocostruzione potrebbe causare mal di testa e giramenti di ... "eliche bipala" ... :P :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Nov 11, 2016, 02:24 pm
Il DCF77 non si riceve bene in tutta Italia, più ti allontanti dalla Germania, da dove viene trasmesso, e peggio va.
Però il ricevitore consuma nettamente meno che un ESP8266 ma qui i consumi sono ben altri. In effetti, visti i consumi, si potrebbe mettere un ricevitore GPS all'esterno che ritrasmette il segnale orario all'interno.

Ho un ricevitore DCF recuperato da una sveglia, ho la piedinatura (questi moduli son tutti simili, forse), la libreria c'è. Un giorno lo costruiro?  ::)

Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 11, 2016, 03:54 pm
Quote from: zoomx
Piuttosto un paio di giorni fa ho visto su Hackaday un post proprio sugli orologi digitali gigantihttp://hackaday.com/2016/11/10/really-big-digital-clock-finds-use-for-really-big-3d-printer/ (http://hackaday.com/2016/11/10/really-big-digital-clock-finds-use-for-really-big-3d-printer/)
Nooo, le strip led con gli shift register 1-wire incorporati?

Quote from: Etemenanki
c'e' anche la possibilita' di utilizzare un ricevitorino per il segnale DCF77
Ma solo se pronto, assemblato, testato ecc (e che per essere letto non obblighi a sospendere il multiplex...), per quel calvario ci sono già passato (http://stor.altervista.org/elettronica/dcf77/dcf.htm), anche se la soddisfazione di averlo ancora qua accanto funzionante è impagabile.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 11, 2016, 05:04 pm
Ma tanto non va mica usato per l'ora corrente, per quello c'e' gia l'RTC ... il DCF77 lo si legge tipo una volta al giorno (se si e' pignoli :P), solo per vedere se l'RTC scarta piu di un tot dall'orario campione oppure per controllare la data e passare ora legale / ora solare ... e quello lo si puo fare anche tipo alle due o tre di notte, quando nessuno sta li a guardare l'orologio ... per il resto se ne resta fuori dalle scatole ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 13, 2016, 09:07 pm
Ho un ricevitore DCF recuperato da una sveglia, ho la piedinatura (questi moduli son tutti simili, forse), la libreria c'è. Un giorno lo costruiro?  ::)


forse ho anche io una vecchia sveglia nel quale c'è lo strumento, se lo trovo magari ci penso :).

Per ora sono ancora in fase di sperimentazione e di apprendimento con arduino. Sembra più semplice di quello che è... forse mi sto illudendo troppo? :) Sicuramente la parte di programmazione non è da sottovalutare, ma la parte di collegamenti (a parte rifarsi la vista) non sembra difficile. Magari mi sbaglio...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 14, 2016, 10:42 pm
Rieccomi,

sto cercando di raccapezzarmi con lo schema postato da etem.
E sto cercando di partire dall'impostazione dei collegamenti dei 2 shift.
Io al momento ho due shift (74HC595N) che hanno 8 pin da un lato e 8 dall'altro.

domanda: da quale PIN devo cominciare a contare in modo da collegarli correttamente secondo gli schemi?

Meno male che avevo detto che i collegamenti sarebbero stata la parte più facile :D.... chissà la programmazione!

Grazie

Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 14, 2016, 11:05 pm
Si interroga l'oracolo dei componenti (google -> 74hc595 pdf) e magicamente si ottengono tutte le informazioni: sparkfun.com/datasheets/IC/SN74HC595.pdf (https://www.sparkfun.com/datasheets/IC/SN74HC595.pdf)  ;)

Poi si possono confrontare con gli schemi di Pighi: pighixxx.com/test/portfolio-items/connect-multiple-74hc595/ (http://www.pighixxx.com/test/portfolio-items/connect-multiple-74hc595/)

e col mio disegno fritzing della breadboard di qualche pagina fa (post #66), se coincide tutto non ci sono dubbi, altrimenti qualcuno ha sbagliato  :smiley-mr-green:
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 15, 2016, 09:44 am
Vergogna, fare domande simili ... in ginocchio sui ceci a guardarsi tutta "la Corazzata Potiomkin" in versione originale ... :P :D

Scherzi a parte ... gli integrati DIP (e anche buona parte degli SMD) si "guardano" sempre da sopra, per la piedinatura ... se lo tieni davanti a te, visto da sopra, con la tacca in alto, il pin 1 e' sempre il primo in alto a sinistra ,,, e la numerazione procede sempre in senso antiorario ... cioe', nel tuo caso, 16 pin, quelli a sinistra si contano da 1 ad 8 a scendere, poi passi a destra e risali (NON dall'alto, quindi, ma dal basso verso l'alto stavolta) da 9 a 16 ...

Nei miei schemi i numeri dei pin corrispondono a quelli fisici dell'integrato, non importa la posizione in cui sono disegnati ... tutti gli schemi li si disegna cosi, alla fine ... ;)

EDIT: occhio che nel mio schema con i 595 porto fuori verso arduino anche i pin che di solito (sbagliando) la gente non usa ... cioe' il master reset e l'enable ... vero che con certi sistemi di funzionamento si possono non usare, ma io preferisco fare le cose per bene ... con quei pin a disposizione, infatti, puoi resettare tutti i contatori con un'impulso, oppure spegnere tutte le cifre volendo, o usare diversi sistemi di pilotaggio ... cosa che con gli schemi "a tre fili" non puoi fare ... ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 15, 2016, 11:55 am
Ciao ragazzi! Sono stato un pochino sui ceci... ma essendo vecchietto non sopporto troppo il dolore fisico :).
Grazie dei suggerimenti.
Ora ho un ulteriore dubbio che riguarda i simboli indicati nella foto che vi allego: il fatto che una connessione allo shift sia indicata con un pallino (cerchietto) piuttosto che con una freccia piuttosto che con nulla, ha una rilevanza particolare?
Portate pazienza.... :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 15, 2016, 12:46 pm
Sul datasheet avrai notato che i nomi di quei pin sono sormontati da una riga, entrambe le notazioni sono simboli di negazione, e indicano ingressi attivati da un livello logico basso (o comandi attivi quando il livello logico è basso). Ad esempio /OE abilita le uscite quando collegato a GND.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 15, 2016, 03:11 pm
Aggiungo solo che se e' presente la freccetta (che in genere quelli normali non mettono, ma alcuni si), significa semplicemente che quello e' un'ingresso "di comando", clock o simile (infatti sull'ingresso dati, il 14, non c'e' nessuna freccetta) ... poi dipende da chi disegna i simboli, io personalmente ho sempre usato le diciture a lettere che danno immediata indicazione della funzione, ma questo quando me li disegno io ... i pazzoidi che stabiliscono i cosiddetti "standard internazionali", mica c'e' modo di sapere cosa si fumano mentre si inventano i simboli, ma a volte da l'impressione di essere roba "strana" ... :P :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 15, 2016, 03:48 pm
Quote from: Etemenanki
Aggiungo solo che se e' presente la freccetta (che in genere quelli normali non mettono, ma alcuni si), significa semplicemente che quello e' un'ingresso "di comando", clock o simile (infatti sull'ingresso dati, il 14, non c'e' nessuna freccetta)
Più precisamente indica che quell'ingresso è sensibile ad un fronte e non ad un livello, fronte di salita = freccetta, fronte di discesa = freccetta + pallino. Poi tipicamente gli ingressi sensibili ai fronti sono appunto usati per i vari comandi come clock e latch. Per non avere malfunzionamenti c'è anche un hold time da rispettare prima e dopo gli impulsi di clock (tempo entro cui gli altri segnali devono restare fissi), ma sono tempi di pochi nanosecondi contro i 5 microsecondi richiesti da una digitalWrite, per cui pilotando gli shift register tramite sequenze di digitalWrite non si avrà mai alcun problema.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 15, 2016, 07:10 pm
OK,
ora (forse) ho capito come collegare gli Shift....
nel frattempo sto guardando in giro gli altri componenti che mi mancano tipo RTC.

Ho trovato questo (https://www.amazon.it/DS3231-AT24C32-precision-Arduino-TE182/dp/B00XXEKDSY/ref=sr_1_1?s=electronics&ie=UTF8&qid=1479232700&sr=1-1&keywords=rtc+DS3231) che, mi sembra interessante. Non capisco perchè amazon me ne propina 5 però vabbè...

Vi faccio una domanda in tal senso, visto che questo componente gestisce anche formato ora (12/24h) e data, pensate si possa fare in modo che il nostro fantastico orologio alla fine alterni l'orario alla data?

Altra domanda che non centra con l'RTC... con un sensore esterno collegato alla scheda potrei anche alternare la visualizzazione della temperatura esterna?

Immagino si possa fare tutto ma mi chiedo: quanto complicato diventa la costruzione di questo orologio? si complica anche la parte elettronica, oppure è solo questione software?
A dopo
Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: brunello22 on Nov 15, 2016, 07:16 pm
Quote
pensate si possa fare in modo che il nostro fantastico orologio alla fine alterni l'orario alla data?

 ... con un sensore esterno collegato alla scheda potrei anche alternare la visualizzazione della temperatura esterna?
E' solo software e nemmeno troppo complicato

Quante cifre ha l'orologio ?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 15, 2016, 10:42 pm
E' solo software e nemmeno troppo complicato

Quante cifre ha l'orologio ?
per il momento lo sto progettando con solo 4 cifre... l'idea era che si alternasse l'ora, con la temperatura esterna, con la data con delle frequenze a mio piacimento. MI sembra interessante il fatto che sia solo software. Sicuramente devo considerare come gestire il sensore della temperatura esterna a meno che non lo si faccia in modalità wireless... ma mi sa che si complica ulteriormente :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 15, 2016, 10:48 pm
scusate altra domandina riguardante lo schema di etem: ma i componenti vicino ai quali è scritto 100u oppure 100n con, in alcuni casi il voltaggio a lato, che componenti sono? ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Nov 16, 2016, 08:30 am
Condensatori
100u -> 100 microFarad
100n -> 100 nanoFarad

Il voltaggio è quello oltre il quale c'è il rischio che avvenga una scarica fra le armature del condensatore.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 16, 2016, 11:29 am
Le tensioni che ti ho segnato vicino agli elettrolitici, sarebbero le tensioni minime da usare ... ad esempio, sui 5V di solito si usano condensatori da 12 o 16 V (si possono usare anche tensioni minori, ma non e' sicuro ... ad esempio, non so se hai mai visto qualche motherboard rotta con quasi tutti gli elettrolitici "scoppiati" o gonfi in cima ... quello e' quello che puo succedere usando tensioni troppo basse (loro usano 6.3V sui 5V, perche' a quelle tensioni i valori elevati sono meno ingombranti, poi dopo un po esplodono :P)

Per i non elettrolitici non ha molta importanza, perche' sia i ceramici che i poliestere sono come minimo da 64V, quindi e' inutile specificarlo, a meno che le tensioni in ballo non siano piu elevate.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 16, 2016, 12:00 pm
Quote from: Brunello
E' solo software e nemmeno troppo complicato
Ho qualche dubbio sulle temporizzazioni, nel senso che non sono così pratico di Arduino da capire "cosa gira sotto il cofano". Il progetto prevede il pilotaggio multiplex di 4 cifre, quindi al massimo va fatto un cambio cifra ogni 5 millisecondi precisi (meglio se di meno). Non so valutare quanto influisca la comunicazione i2c su questi tempi (uso di timer sottostanti in conflitto con millis, procedure bloccanti ecc).


Quote from: ghezzia
scusate altra domandina riguardante lo schema di etem
Mi viene un certo timore... meglio chiarire: le resistenze non hanno un verso, mentre diodi e condensatori elettrolitici sono polarizzati, di solito il terminale più lungo è il positivo/anodo. Sugli elettrolitici c'è anche la fascia stampata per il negativo. Il corpo dei LED è anche appiattito lato negativo/catodo, mentre su altri diodi questo terminale è indicato con una fascetta. Per i display già pronti ci si deve rifare al datasheet, oppure provare i segmenti usando una resistenza e una *bassa tensione* di prova non superiore ai 5V (i LED si danneggiano facilmente con una tensione inversa superiore).

Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 16, 2016, 03:08 pm
Il multiplexing per non dare fastidio dovrebbe andare minimo a 25 Hz, se di piu e' meglio ... se usi 10mS sei gia a 100Hz ... ma anche 5 ci dovrebbero stare dietro, le istruzioni della MCU se non sbaglio "viaggiano" in termini di pochi microsecondi l'una ... mettiamo 5, anche se non sono sicuro, con 5mS hai "tempo" per 1000 istruzioni a cifra ... anche se ne servissero 10 di microsecondi, con 5mS a cifra avresti sempre 500 operazioni per cifra ... mi sa che bastano ... ;)

Certo il tutto NON deve essere bloccante ... se poi ci vuole fare pure la sveglia, con il pin OE puo perfino far lampeggiare l'intero display indipendentemente dal codice che gestisce le cifre (per quello l'ho portato fuori nello schema :D) ... e se lo sketch prevede delle temporizzazioni, magari per alternare ora/data/anno/temperatura/ecc, vanno tutte gestite in modo non bloccante con millis ... ma la "base", cioe' lo schema elettrico, cambierebbe poco, giusto l'aggiunta della parte per leggere la sonda di temperatura, il grosso del lavoro lo farebbe lo sketch ...

c'e' solo una cosa da prendere in considerazione ... sia che usi i led separati, sia che le cifre poi le faccia con le strisce di led, essendo in multiplex appariranno meno luminose che se le pilotasse direttamente a 12V, e per risolvere questo ci sarebbe un solo modo, cioe' usare piu di 12V per alimentarci la parte del display ... ma questo e' un problema che dovra' prendere in considerazione solo piu tardi, alla fine, quando passera' alla realizzazione definitiva ... per adesso, e' l'ultima delle cose di cui preoccuparsi ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 16, 2016, 05:32 pm
Quote from: Etemenanki
Il multiplexing per non dare fastidio dovrebbe andare minimo a 25 Hz, se di piu e' meglio ... se usi 10mS sei gia a 100Hz
Sono quattro cifre da accendere in sequenza e la sequenza va ripetuta tot volte. 25 volte mi sembra davvero poco, il tremolio si vede chiaramente, mentre 50 lo noti solo muovendo rapidamente gli occhi. 50Hz sono 20ms, 5ms per cifra.

Quote
... ma anche 5 ci dovrebbero stare dietro, le istruzioni della MCU se non sbaglio "viaggiano" in termini di pochi microsecondi l'una ... mettiamo 5, anche se non sono sicuro, con 5mS hai "tempo" per 1000 istruzioni
Questo si, ad esempio se lavoro in assembly so esattamente quanto tempo ho per fare ogni cosa (con un PIC a 4MHz ho mediamente a disposizione circa 900 istruzioni al millisecondo) e so sempre quali periferiche sto usando e che tempistiche richiedono. Però con il C di Arduino e le funzioni di libreria non c'è più questo "controllo" a basso livello (o meglio, c'è per chi lo conosce). Io non so se la lettura da bus i2c richiede troppo tempo, se coinvolge interrupt che sfalsano millis ecc. Il risultato potrebbe quindi essere una luminosità tremolante sui display (motivo per cui la soluzione brunello con uno shift register per cifra e niente multiplex è *molto* più semplice dal punto di vista software... poi c'è il discorso luminosità, e non c'è niente da fare, o sovralimenti i LED, o la luminosità sarà un quarto di quella possibile con le cifre sempre accese... ma potrebbe anche bastare).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 16, 2016, 06:57 pm
25Hz e' la frequenza di variazione dei film su pellicola ... non e' che lampeggino molto ;) (la retina gia a 20Hz, salvo alcune eccezioni, non si accorge dello sfarfallio)

Be', se li fai andare a 50Hz, anche se sfasano di un millisecondo in piu non se ne accorge nessuno ...

Certo senza multiplexing sarebbe piu semplice, aggiorni la sequenza solo quando cambiano le cifre ... ma se lui vuole farlo cosi ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 16, 2016, 10:00 pm
Certo senza multiplexing sarebbe piu semplice, aggiorni la sequenza solo quando cambiano le cifre ... ma se lui vuole farlo cosi ...
Aspetta aspetta! diciamo che la scelta del multiplexing mi sembrava fosse logica dal momento che la uno (o la MCU che la sostituirà) non hanno un numero sufficiente di pin... giusto?

Comunque ho quasi tutto il materiale e il prototipo sta per nascere :).

A tal proposito vi chiedo un consiglio pratico che serve ora che sto montando il prototipo, ma mi servirà anche quando metterò tutto "in produzione" sulla millefiori: considerando che sto partendo dagli switch, conviene impostare tutto il "tragitto" che ogni collegamento fa dal PIN dello switch fino al display per poi passare al successivo PIN oppure imposto lo step 1 del primo PIN poi lo step 1 del secondo e così via per poi passare allo step 2 di ogni PIN per arrivare fino alla fine?
NON so se mi sono spiegato bene :) ma questo consiglio mi servirebbe per cercare di fare meno casino possibile :D

Altro quesito che riguarda lo sketch, sapete dove posso trovare qualcosa che faccia al caso mio? in rete ho trovato questo (http://startingelectronics.org/beginners/start-electronics-now/tut16-arduino-clock/) ma non sono sicuro possa fare al caso mio... forse basta solo modificarlo.

Thanks a lot
Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 16, 2016, 11:19 pm
scusate,
altra domanduccia: come riconosco positivo da negativo dei transistor bc337 e bc 327? ho visto solo che la testa è una sorta di semicilindro :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Nov 17, 2016, 08:22 am
I transistor hanno 3 piedini, devi cercare su un motore di ricerca il transistor specifico perché non esiste una piedinatura unificata e ogni transistor ha la sua piedinatura, più o meno.

A me sembra che tu stia aggiungendo sempre più funzioni quando ancora non hai acceso nemmeno un led.
Cerca esempi che usano direttamente i led a 7 segmenti, l'esempio che hai trovato usa un LCD e con quello l'orario si scrive come in un print.
Visualizzare una temperatura non sarà un problema. Anche per la data. Ma questo viene dopo.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Nov 17, 2016, 08:36 am
scusate,
altra domanduccia: come riconosco positivo da negativo dei transistor bc337 e bc 327? ho visto solo che la testa è una sorta di semicilindro :)
Ciao ghezzia, il vero miracolo sarà veder acceso e funzionante questo meraviglioso progetto senza che tu capisca un'acca di elettronica, forse un minimissimo di lettura di base, ma ormai sei troppo preso dalla fretta, ed è un peccato perché sarebbe un'occasione buona per farti una cultura oltre che realizzare il tuo primo progetto.
Il transistor, a meno che tu non parta dalla costruzione fisica, non ha poli positivi e negativi, ma tre poli ben distinti, che si chiamano base, collettore ed emettitore; si dividono in due grandi famiglie, in base alla polarità delle due giunzioni fisiche che li compongono: NPN e PNP, i primi molto più usati dei secondi perché hanno prestazioni migliori; in genere la base serve per "controllare" la giunzione tra collettore ed emettitore, nel primo entra la corrente, dal secondo esce, ma devi comunque considerarlo come una sorta di "canale" unico, poi esistono varie modalità di uso o "configurazioni"; nella maggior parte dei casi si usa come una sorta di interruttore on/off, cioè fornendo una opportuna tensione/corrente alla base, la  giunzione CE va quasi in corto circuito, togliendola invece di interrompe e non fa passare più corrente. Negli altri casi si usa come amplificatore "regolabile", appunto modulando la resistenza tra C ed E. La descrizione è molto spartana e rozza, ma almeno ora puoi distinguere un transistor da un LED, e non solo per la forma o il numero di piedini....e comunque sono parenti..... :)
Sto veramente seguendo con grande ammirazione coloro che ti stanno aiutando, con schemi, suggerimenti e tanta pazienza; personalmente, da "professore" (ma non in questo campo), ti avrei prima costretto a studiare un poco, però se alla fine si arriva al risultato senza troppi danni, va bene lo stesso, in fondo questo, per gente come noi, è un passatempo e non un lavoro.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 17, 2016, 10:10 am
Personalmente ti consiglierei di scaricarti in PDF il libro "imparare l'elettronica partendo da zero" (non si puo mettere il link perche', anche se la proprieta' non esiste piu, e' comunque protetto de copyright, ma lo si trova facilmente con google) ... non solo per le nozioni di base che contiene, che non fanno mai male, ma anche perche', in mezzo ai vari esempi, ci sono pure i disegni di parte dei comuni componenti elettronici, con le loro piedinature ;)

Aspetta aspetta! diciamo che la scelta del multiplexing mi sembrava fosse logica dal momento che la uno (o la MCU che la sostituirà) non hanno un numero sufficiente di pin... giusto?
Se preferisci farlo con 4 shift al posto di due ed evitare il multiplexing, faccio presto a disegnarti anche quello schema ... pero' diventano 8 integrati (4 shift e 4 ULN2803), oppure 4 integrati e 29 transistor (per cui secondo me' ti conviene usare gli ULN, spendi di meno e ti risparmi un casino di ponticelli ;))

La differenza principale sara' che NON ci sara' alcun multiplexing, i registri andranno aggiornati solo una volta al minuto, oppure quando scambi data/ora/temp, ma quello piu avanti, e che ti servira' un solo pin in piu se vorrai far lampeggiare i punti di divisione, ed inoltre i segmenti saranno piu luminosi che con il multiplexing ... per il resto cambia poco, a parte il fatto che ci saranno piu fili che dalla schedina andranno ai display alla fine, ed il fatto che per fare le prove con i display piccoli ti serviranno per forza quelli separati, oppure quelli che non hanno i segmenti in comune ...

Vedi tu, io ci metto poco a modificare lo schema, se decidi in quel senso ...

EDIT: dimenticavo, mentre fai le prove, gli ULN non sono indispensabili, quindi se decidi di usare questo sistema, le prove le puoi fare lo stesso, quindi puoi anche montarli in seguito, oppure quando ti arrivano, basta solo prevedere lo spazio libero sulla millefori ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 17, 2016, 11:06 am
A me sembra che tu stia aggiungendo sempre più funzioni quando ancora non hai acceso nemmeno un led.
In effetti qualche led l'ho acceso già... ho anche fatto funzionare un display 7 segmenti! Guarda che sono moooooolto avanti :P.

Comunque in effetti ho messo molta carne al fuoco... resta fermo l'obiettivo iniziale di costruire un orologio (eventualmente scalabile con altre funzioni future) composto da 4 cifre create da 7 segmenti di stripled.

Personalmente ti consiglierei di scaricarti in PDF il libro "imparare l'elettronica partendo da zero"
Fatto ;)

ed inoltre i segmenti saranno piu luminosi che con il multiplexing ...

Vedi tu, io ci metto poco a modificare lo schema, se decidi in quel senso ...

Mi sembra che, in virtù di quanto detto in precedenza relativamente alla luminosità, forse valga la pena adottare questa soluzione... riesci veramente senza troppi sbattimenti a cambiare lo schema?

Ciao ghezzia, il vero miracolo sarà veder acceso e funzionante questo meraviglioso progetto senza che tu capisca un'acca di elettronica
Ma io ci credo nei miracoli ;)

ma ormai sei troppo preso dalla fretta, ed è un peccato perché sarebbe un'occasione buona per farti una cultura oltre che realizzare il tuo primo progetto.
Non credi che ci si possa fare una cultura anche sperimentando? Io purtroppo sono uno "alla vecchia maniera" .... fail fast and learn ;)

Il transistor, a meno che tu non parta dalla costruzione fisica, non ha poli positivi e negativi, ma tre poli ben distinti, che si chiamano base, collettore ed emettitore; si dividono in due grandi famiglie, in base alla polarità delle due giunzioni fisiche che li compongono: NPN e PNP, i primi molto più usati dei secondi perché hanno prestazioni migliori; in genere la base serve per "controllare" la giunzione tra collettore ed emettitore, nel primo entra la corrente, dal secondo esce, ma devi comunque considerarlo come una sorta di "canale" unico, poi esistono varie modalità di uso o "configurazioni"; nella maggior parte dei casi si usa come una sorta di interruttore on/off, cioè fornendo una opportuna tensione/corrente alla base, la  giunzione CE va quasi in corto circuito, togliendola invece di interrompe e non fa passare più corrente. Negli altri casi si usa come amplificatore "regolabile", appunto modulando la resistenza tra C ed E. La descrizione è molto spartana e rozza, ma almeno ora puoi distinguere un transistor da un LED, e non solo per la forma o il numero di piedini....e comunque sono parenti..... :)
Grazie dei suggerimenti, anche le lezioni di teoria sono sempre utili sopratutto se sono "spartane e rozze"

da "professore" (ma non in questo campo), ti avrei prima costretto a studiare un poco, però se alla fine si arriva al risultato senza troppi danni, va bene lo stesso, in fondo questo, per gente come noi, è un passatempo e non un lavoro.
Ben detto!!
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 17, 2016, 12:15 pm
Quote from: Etemenanki
25Hz e' la frequenza di variazione dei film su pellicola ... non e' che lampeggino molto ;) (la retina gia a 20Hz, salvo alcune eccezioni, non si accorge dello sfarfallio)
Al cinema non so, ma su un LED si vede benissimo, peggio ancora se sono più LED (o display) uno a fianco all'altro. Basta comandare l'onboard  LED della UNO a 25 Hz e 25% duty:
Code: [Select]
#define OUTPIN 13 // onboard LED
uint8_t  n = 0;
uint32_t looptime = millis();

void setup(){ pinMode(OUTPIN, OUTPUT); }

void loop(){
   if (millis() - looptime  >=  10){
       looptime += 10;
       digitalWrite(OUTPIN, (n) ? 0 : 1);
       n = (n + 1) & 3;
    }
}



Quote from: ghezzia
Aspetta aspetta! diciamo che la scelta del multiplexing mi sembrava fosse logica dal momento che la uno (o la MCU che la sostituirà) non hanno un numero sufficiente di pin... giusto?
La UNO non ha sufficienti pin per comandare contemporaneamente tutti i segmenti, da cui è nata prima l'idea del multiplex (e allora strettamente parlando per l'orologio i pin sarebbero bastati), ma poi è nata anche quella degli shift register per risparmiare comunque pin. Ora usando gli shift register si può lo stesso tenere in piedi il multiplex, oppure si possono usare più shift register facendo a meno del multiplex (i display di brunello).


Quote from: ghezzia
come riconosco positivo da negativo dei transistor bc337 e bc 327?
Interrogando l'oracolo (http://lmgtfy.com/?q=bc337+pdf) dei componenti ::) E anche qui sarebbe bene provare a mano qualche configurazione per vedere come comandare i LED con i transistor (cioè come usare i transistor, sia NPN che PNP come interruttori comandati dalle uscite di Arduino).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 17, 2016, 12:18 pm
... riesci veramente senza troppi sbattimenti a cambiare lo schema?
Mah, non so se ci riesco prima del mese prossimo, a trovare i 10 minuti necessari ... :P :D

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=187365)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 17, 2016, 12:46 pm
Mah, non so se ci riesco prima del mese prossimo, a trovare i 10 minuti necessari ... :P :D

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=187365)
He he he!! grazie ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 17, 2016, 02:35 pm
Ho dato un'occhiata veloce allo schema; mi sembra anche più semplice di quello precedente... non vedo ne transistor ne condensatori... o mi sbaglio? Quindi mi confermi che in fase di test sulla breadboard posso fare a meno degli ULN? però devo mettere comunque le resistenze da 150 ohm giusto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 17, 2016, 09:04 pm
Quote from: ghezzia
Ho dato un'occhiata veloce allo schema; mi sembra anche più semplice di quello precedente... non vedo ne transistor ne condensatori... o mi sbaglio?
Sbagli  ;) Di transistor ce ne sono 64, ma sono tutti dentro gli ULN, guardando il datasheet (cosa che avrai sicuramente fatto) si vede che ogni ULN2803 contiene otto sezioni come questa:

(http://www.slottechforum.com/slotinfo/Techstuff/CD4%20Digital%20ICs/Interface/ULN2803%20Internals%20small.jpg)

E quindi la risposta alla tua domanda è data dalla risposta alla domanda: "a cosa servono gli ULN2803 in quello schema?"
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 17, 2016, 09:49 pm
Ok Claudio_F ma io non devo mettere sulla millefiori 64 transistor... ho mi sbaglio? Con 4 ULN che hanno 16 piedini l'uno me la cavo. Corretto? Altrimenti non ho capito nulla :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 18, 2016, 10:21 am
Si, e' quello lo scopo di usare gli ULN ... ogni ULN ti fa la stessa funzione di 8 darlington (o 16 transistor separati, se ci tieni), quindi con 4 ULN ci piloti gia direttamente i segmenti fatti con le striscie, senza bisogno di altri transistor ... a meno che tu non esageri con le correnti, ovviamente ... e' vero che il massimo pilotabile da ogni singola uscita e' 500mA, pero' e' anche vero che l'intero chip ha una corrente massima pilotabile di 2.5A ... e siccome questi sono i massimi assoluti, e' sempre meglio rimanere alla meta' o massimo due terzi di questi valori ... diciamo ad esempio che ogni ULN in tutto ti puo pilotare 1.5A di carico ... diviso 8 uscite, dovrei rimanere sotto i 180mA per segmento, per essere sicuro che non si danneggino ...

Considera comunque che, se usi le strip con i 5050 o anche quelle con i 2835 rossi, 180mA sono 9 diodi a segmento ... non sono proprio pochi, specie considerando che fanno come minimo il triplo di luce (anche di piu per i 2835) dei normali led ... ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 18, 2016, 11:38 am
Si, e' quello lo scopo di usare gli ULN ... ogni ULN ti fa la stessa funzione di 8 darlington (o 16 transistor separati, se ci tieni), quindi con 4 ULN ci piloti gia direttamente i segmenti fatti con le striscie, senza bisogno di altri transistor ...
fiuuuuh!! mi ero un attimo preoccupato :)... Claudio_F mi fa venire gli sss-cio-poni :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Nov 18, 2016, 11:46 am
Ma se si passa alle strip con 5050 a questo punto si salta ai WS8212 e si pilota tutto con un solo pin senza altri componenti. L'alimentazione però deve essere a parte.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 18, 2016, 03:14 pm
Si, ma poi il software diventerebbe un casino, perche' dovresti considerare TUTTI i segmenti comeuna singola sequenza in serie di gruppi di "tot" led per segmento, ma allo stesso tempo indirizzare ogni singolo gruppo in base alla relativa posizione come "X" segmento di "Y" cifra ... vuoi mettere quanto piu semplice diventa fare poche shiftout ogni qualche secondo e dare un'onda quadra da un hertz sul pin dei punti e basta ? ... ;)

(a meno che tu non voglia fare le cifre che ciclano in fade su tutte le sfumature di colore ... ma a quel punto, buona fortuna con lo sketch :D)

(( e poi si parlava piu che altro di 2835, che sono piu efficenti :D))
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 18, 2016, 05:42 pm
Ma se si passa alle strip con 5050 a questo punto si salta ai WS8212 e si pilota tutto con un solo pin senza altri componenti. L'alimentazione però deve essere a parte.
No no direi di rimanere sulle Strip... adesso che sto imparando... :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 18, 2016, 10:47 pm
Quindi mi confermi che in fase di test sulla breadboard posso fare a meno degli ULN? però devo mettere comunque le resistenze da 150 ohm giusto?
Scusa Etem, riguardo alla domanda sopra mi confermi che sia così? ma sopratutto, se tolgo gli ULM posso andare dritto con i collegamenti sulle resistenze? Mi spiego meglio, sugli ULM 1b lo collego direttamente ad 1c, 2b a 2c, 3b a 3c e così via?
Buonanotte
Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Nov 19, 2016, 01:36 am
Gli ULN2803 fanno tre cose:

Quindi li puoi omettere? Certo, se rispetti tutte tre le condizioni:
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 19, 2016, 09:45 am
... posso andare dritto con i collegamenti sulle resistenze? ...
Si, l'unica cosa, come ti ha detto anche Claudio, e' che li devi pilotare "in negativo", cioe' mentre fai le prove, dai 0 all'uscita per accendere il segmento ed 1 per spegnerlo ... non comporta un grosso lavoro, solo il ricordarsi alla fine che quando monterai anche gli ULN, dovrai invertire i livelli delle uscite nello sketch ... oppure, in alternativa, che per le prove dovrai usare dei display con catodo comune mettendone i comuni a massa, invece che al +5, mentre dopo, nel definitivo, agli ULN le strip andranno collegate come anodo comune ... oppure ancora, lasciare tutto com'e' e ricordarti che i segmenti che vedi accesi saranno poi spenti e viceversa, nella versione definitiva ... fare una qualsiasi delle tre cose e' indifferente, al fine dei test, dato che quelli servono solo per creare lo sketch funzionante prima dell'assemblaggio finale ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Nov 19, 2016, 10:27 am
Potrebbe semplicemente usare due variabili tipo ON/OFF e così basta mettere nelle dichiarazioni LOW e HIGH, per poi invertirle, senza impazzire a modificare l'intero sketch, col rischio di perdere il filo ed imbordellirsi la vita.....
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 19, 2016, 11:11 am
Giusto, ottima soluzione ... cosi alla fine deve solo cambiarne il valore per avere gia tutta la logica diritta o inversa ... +1
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 19, 2016, 10:46 pm
Buonasera! Oggi sono stato in un fantastico negozio di elettronica a Gallarate (non proprio vicinissimo a Milano ma comunque raggiungibile) ho preso tutto l'occorrente per il prototipo; ULN, SHIFT e resistenze comprese. Ora proverò insieme a mio figlio a montare il tutto. Sicuramente mi manca L' RTC e sopratutto lo sketch...
nel frattempo ho dato un'occhiata alle strip LED, solo che quelle che avevano mi sembrava avessero il LED troppo distanti uno dal'altro. Diceva 3 LED il 10 cm.
Spero esista qualcosa di più "denso" perché così mi sa che ne va della leggibilità dell'orologio. Voi che ne dite?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 20, 2016, 02:25 pm
Devi cercare "2835 strip red led" da 120 led per metro, che sono quelli ancora facili da trovare: esempio (http://) (circa 3 led per 2.5cm di strip, che e' anche la minima distanza a cui si possono tagliare) ... attenzione a chiedere prima al venditore di NON INVIARTI ASSOLUTAMENTE i 3528, altrimenti gli apri una contestazione per oggetto non conforme ... perche' non e' la prima volta che nel titolo ci vedo scritto "2835" con l'immagine di una strip con i 2835, e poi scritto in piccolo nella descrizione in fondo "led type 3528" ... sono due tipi di led totalmente differenti, il 2835 e' quasi 3 volte piu luminoso del 3528 ...

Oppure come alternativa, usare i 5050, sempre a trovare le strip da 120 led per metro, o 600 per 5 metri, come le vendono di solito ...

Se ti servissero bianchi, sarebbe piu facile, sono 10 volte piu facili da trovare dei colorati, ormai ... esempio (http://www.ebay.com/itm/New-16Ft-5M-White-120LED-M-SMD-2835-600LEDs-Strip-DC12V-Super-Bright-/262436559999?var=&hash=item3d1a701c7f:m:mVjeJFocPO6w1X-owx5cqrg) ... o meglio ancora, i 3014 da 1020 led per 5 metri (http://www.ebay.com/itm/5M-LED-Flexible-Strip-Light-3528-2835-3014-5050-5630-7020-Non-Waterproof-12v-/281944797040?var=&hash=item41a5382f70:m:me_rltW0fn4DGXr629MoMOw), decisamente visibili, ma purtroppo sempre bianchi ...

un'altra alternativa e' "raddoppiare" le striscie per ogni segmento, mettendole affiancate e sfalsate ... il problema e' che in questo caso i segmenti avrebbero una sagoma leggermente diversa ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 21, 2016, 11:25 pm
Grazie etem,
In effetti ho data una rapida occhiata e le strip 5050 con led rossi e densità 120 per metro non le ho ancora trovate.
Devo chiedere al "capo " (Mia moglie) se l'orologio va bene anche bianco:).....
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 22, 2016, 10:00 am
Forse ho trovato queste (http://www.ebay.it/itm/STRISCIA-LED-5-M-600-SMD-2835-BOBINA-TOP-QUALITY-FLESSIBILE-ADESIVA-LUC-5M-STRIP-/381412211043?var=&hash=item58cdf07963:m:m0MGZGMKECUp5u6hlGA8ZtQ).
Che ne dite?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 22, 2016, 11:48 am
Il venditore dichiara che le ha anche rosse (o verdi o blu) e che sono 2835 (quelle bianche in foto lo sono) ... sembra ok ... specificagli solo che se ti dovessero inviare i 3528 al posto dei 2835 saresti costretto ad aprire una controversia per "oggetto non conforme" ... ma per il resto a me sembra ok ...

L'unico "problema", relativamente parlando, e' che per saldare i segmenti dovrai tirare via un po del sylgard protettivo (la copertura impermeabile), ma con un taglierino o bisturi ed un'attimo di attenzione viene via senza troppa difficolta' ... per il resto, essendo appunto impermeabile, i led rimangono piu protetti ... ed anche se non molto, la protezione diffonde leggermente la luce, il che per usarli in quel modo e' un vantaggio ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 22, 2016, 12:44 pm
Questa la risposta del venditore:
Quote
Buongiorno
Gentile cliente,
le spiego
essendo solo rivenditori abbiamo informazioni generali sui prodotti e
tutto cio' che conosciamo e' riportato nelle nostre inserzioni
degli oggetti a volte alcune domande richiedono risposte di  cui
non possiamo dare  l'esatta indicazione, perché il prodotto
richiede una competenza specifica pertanto  per non indurre ad acquisti sbagliati
ci scusiamo ma non possiamo esserle di ulteriore aiuto
Che dite, c'è da fidarsi :D :D :D
Mi sa che devo guardare dagli amici cinesi..
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Nov 22, 2016, 03:45 pm
A parte alcune rare eccezioni i rivenditori cinesi non ne sanno di più, vendono letteralmente migliaia di articoli.

Domanda: mi sono accorto che la sigla si riferisce alle dimensioni in millimetri. 5050 sono i led con lato 50mm.
Se è così che differenza c'è tra 3528 e 2835 ? 
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 22, 2016, 04:15 pm
Domanda: mi sono accorto che la sigla si riferisce alle dimensioni in millimetri. 5050 sono i led con lato 50mm.
Se è così che differenza c'è tra 3528 e 2835 ?
Da quanto dice Etem, la differenza tra i due sta nella luminosità (i 2835 sono più luminosi). Non so dirti però se la sigla è strettamente legata a quella caratteristica.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 22, 2016, 05:35 pm
Sono due diversi tipi di led, con le stesse dimensioni in larghezza e lunghezza (cambia lo spessore), prodotti in due tempi diversi ... Si distinguono abbastanza facilmente a vista, i 3528 sono i piu vecchi, sono piu spessi, con una tacca su un'angolo e la finestra di emissione rotonda, mentre i 2835 (a cui hanno dato questo nome per non confonderli con gli altri) sono relativamente recenti, piu sottili, hanno piu del doppio della superfice emittente (superfice che tranne una sottilissima cornicetta esterna e' rettangolare e copre praticamente l'intera superfice superiore) ... per quanto riguarda l'efficenza, i 3528, tranne una versione "fallimentare" da 150mA che si bruciava subito per mancanza di adeguata dissipazione ed e' stata immediatamente sospesa, sono "comuni" chip led da 20mA, e per il bianco hanno emissione di 6 o 7 lumen tipicamente, mentre invece i 2835 hanno chip che reggono 60/70mA per 0.2W senza troppa dissipazione, e con le adeguate dissipazioni termiche (stampati in alluminio e thermal pad saldato bene) reggono fino a 150mA per 0.5W di potenza, inoltre hanno anche una maggiore efficenza in lumen per watt, possono raggiungere i 22 o 24 lumen per led ... 

Attenzione pero' che, siccome cosi la vita era troppo facile, alcuni produttori come ad esempio edisonled, hanno avuto la "genialata" di produrre led bianchi in case 2835 con chip da 300mA per 1W e pad maggiorato, chiamandoli pero' ET-3528 (invece che ET-2835 ... e cosa altro, se no ? ... usare il numero giusto sarebbe stato troppo intelligente, evidentemente :P)

Comunque, ghezzia, se il venditore ti conferma che i led che lui vende sono identici a quelli nella foto dell'inserzione e non hanno la finestrella rotonda (puoi anche mandargli questa immagine o il link (http://www.anrodiszlec.hu/images/cikkek/2835-vs-3528-led-chip-meretek-2014.jpg), se e' disposto a controllare  ... anche se sono rossi e non bianchi, non cambia nulla nelle dimensioni e nella sagoma della finestrella, l'unica differenza e' che la resina di riempimento e' trasparente anziche' gialla, e lo puo vedere anche lui), allora sono ok ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Nov 22, 2016, 09:50 pm
Mi chiedevo come facessero ad essere più potenti ma poi ho visto l'immagine linkata e letta la parolina magica: COB
Che spiega tutto. Sono LED combinati, dentro non c'è un solo LED ma dei LED messi assieme come quelli da 10 e più watt. Ad occhio direi che dentro ce ne sono 4 o 6 o forse di più.


Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 23, 2016, 11:00 am
Mi chiedevo come facessero ad essere più potenti ma poi ho visto l'immagine linkata e letta la parolina magica: COB
Che spiega tutto. Sono LED combinati, dentro non c'è un solo LED ma dei LED messi assieme come quelli da 10 e più watt. Ad occhio direi che dentro ce ne sono 4 o 6 o forse di più.
COB significa Chip On Board, ed e' un termine abbastanza abusato ;)

Sono piu potenti perche' il chip led interno e' di nuova generazione ed e' piu luminoso, piu efficente, e piu "ingordo" (un solo chip che regge 150mA, fa ovviamente piu luce di uno standard da 20mA ;)

A volte guardandoli si ha l'impressione che ci siano piu chip, ma sopra i 3W e' difficile ... e' solo che il chip e' piu largo ed ha una "griglia" di conduzione stampata sopra che da quell'impressione ... ad esempio, questo e' un 2835 rosso:

(https://sc02.alicdn.com/kf/HTB1MUD7IpXXXXcNXXXXq6xXFXXXx/Datasheet-620-630nm-Diode-0-2W-SMD.jpg_350x350.jpg)

Si puo avere l'impressione che i chip siano 4, ma se guardi bene, e' singolo, con una croce di conduzione in mezzo per distribuire meglio la corrente ... lo vedi anche perche' c'e' un singolo filamento che collega il terminale al chip ... se fossero chip multipli, ognuno avrebbe il proprio filamento ... ci sono ovviamente anche chip singoli con due o piu fili, ma sono da 3W e simili ... ad esempio, questo:

(https://ae01.alicdn.com/kf/HTB1xEDaIXXXXXbYXpXXq6xXFXXXK/202137747/HTB1xEDaIXXXXXbYXpXXq6xXFXXXK.jpg?size=55689&height=800&width=800&hash=d69045986bb9b63cd26e311f964cd9f8)

... se guardi bene, vedi il chip singolo da 3W con i due fili all'interno che collegano la griglia di pista conduttive sul chip ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Nov 23, 2016, 03:17 pm
Per come funziona un LED non si potrebbe mettere una pista di conduzione nel mezzo. Mi sa che sono ono proprio 4.
PEr quanto riguarda i collegamenti saranno come questo mostro
(http://www.sunshineopto.com/photo/sunshineopto/editor/20140117203503_68132.jpg)

Tu vedi solo i fili sopra e sotto, dei collegamenti nel mezzo vedi solo le strisce superiori. Ma può essere che mi sbaglio.

Questo non sposta nulla. Hanno trovato il modo di aumentare la superficie emittente nello stesso spazio, tanto di cappello a chi ha ideato il sistema.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 23, 2016, 04:14 pm
Non e' "nel mezzo" ... lo strato superiore conduttivo e' realizato con conduttore trasparente (in genere ossido di titanio, anche se ultimamente qualcuno sta sperimentando con i polimeri conduttivi ed il nuovo "supervetro" ), ovviamente, per permettere alla luce di uscire ... solo che lo strato e' ovviamente sottilissimo, e non puo reggere molta corrente, quindi ci si disegna sopra una croce, o un pettine, o comunque una griglia usando in genere pochi micron di oro, in modo da permettere una diffusione della corrente attraverso l'intero chip ... ma rimane singolo ...

Quando invece ci sono piu chip, lo vedi chiaramente, perche' sono fisicamente separati ed i filamenti passano in genere da uno all'altro, oppure ognuno ha il proprio filamento ... esempi:

(https://ae01.alicdn.com/kf/HTB1RyZ9LXXXXXaAXFXXq6xXFXXXs/202137747/HTB1RyZ9LXXXXXaAXFXXq6xXFXXXs.jpg?size=76160&height=800&width=800&hash=9539ee7e72be6a09615e525cee6ccec6)

(http://ledsreview.com/upload/11-2009/ostar-smt.jpg)

(http://www.ledsmagazine.com/content/dam/leds/migrated/objects/news/7/2/5/CreeMPL.jpg)

Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 23, 2016, 06:45 pm
Comunque, ghezzia, se il venditore ti conferma che i led che lui vende sono identici a quelli nella foto dell'inserzione e non hanno la finestrella rotonda (puoi anche mandargli questa immagine o il link (http://www.anrodiszlec.hu/images/cikkek/2835-vs-3528-led-chip-meretek-2014.jpg), se e' disposto a controllare  ... anche se sono rossi e non bianchi, non cambia nulla nelle dimensioni e nella sagoma della finestrella, l'unica differenza e' che la resina di riempimento e' trasparente anziche' gialla, e lo puo vedere anche lui), allora sono ok ...
Intendi dire che devono essere come l'immagine a dx della foto di cui sopra, giusto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 23, 2016, 06:54 pm
Si ... la parte emittente (sara' trasparente, se i led non sono bianchi) deve essere rettangolare ... se ha l'aspetto di quello a sinistra, con la finestrella rotonda, non va bene ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 24, 2016, 11:30 am
MI ha confermato quanto segue:
Quote
Buongiorno
gentile cliente

i LED dell oggetto
da lei indicato
sono di forma quadrata

Mi sa che li compro... poi vedremo cosa farmene :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Nov 24, 2016, 02:17 pm
Ma come "quadrata"?

Purtroppo molti venditori non sanno neanche cosa vendono, potrebbero essere missili, lavatrici o stuzzicadenti.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 24, 2016, 04:35 pm
Ma come "quadrata"?
Vabbè, quadrata rettangolare che differenza fa?.... anche tu sta a guardà er capello :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 24, 2016, 05:05 pm
In effetti la risposta e' "ambigua", sono entrambi rettangolari all'esterno :P

Va be', in fondo, circa 8 Euro, come prezzo non e' eccessivo per 5 metri di strip con tutti quei led, quindi si puo anche rischiarla ... male che vada la si "ricicla" per illuminarci qualcos'altro ... solo, meglio scegliere neutral white, o meglio ancora warm white, perche' quelli bianco-azzurrini dopo un po danno abbastanza fastidio ...

(cioe', non so voi, ma a me dopo 5 minuti in una stanza illuminata con quelli, inizia a venire mal di testa e mi da fastidio guardarli direttamente ...)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 25, 2016, 09:41 pm
Arrivati oggi  :) direi che  sono esattamente conformi a quanta richiesto.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 27, 2016, 07:08 pm
altro quesito "tecnico"... il RTC lo attacco direttamente alla UNO? nello schema proposto da etem dove deve essere messa?
Mercoledì dovrebbe arrivare anche quella... ormai siamo vicini all'esperimento finale :).
Se tutto sta in piedi poi procedo con l'assemblaggio definitivo1
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 30, 2016, 12:40 am
Scusa etem, non ricordo più una cosa, ma le resistenze da 150 ohm prima dei LED nella fase di test sono indispensabili? Ho visto che dopo non serviranno più! Altra domanda al "mondo", sapete dove posso trovare uno sketch che faccia al caso nostro?
Grazie per la disponibilità
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 30, 2016, 11:30 am
Sono indispensabili perche' i display piccoli, al contrario delle strip, non hanno le resistenze integrate, sono puri e semplici led ... le puoi infilare sulla stessa breadboard che usi per il display, non serve metterle sullo stampato ...

E non serve neppure che siano proprio da 150 ohm, 180, 220, 270, un qualsiasi valore simile andra' bene, servono solo per limitare la corrente ai led durante le prove, quindi anche se sara' un po piu o meno luminoso, non e' che causi problemi ...

L'RTC lo colleghi direttamente alla uno (oppure alla MCU se fai lo standalone)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 30, 2016, 05:09 pm
L'RTC lo colleghi direttamente alla uno (oppure alla MCU se fai lo standalone)
Grazie Etem, ok, lo collego alla UNO, poi immagino sia tutta questione di programmazione della UNO giusto? Intendo dire che le porte alle quali collego l'RTC e le porte alle quali collego tutto il circuito sono "definite" dallo sketch, giusto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Nov 30, 2016, 06:49 pm
Giusto ... anche se dovendo fare uno standalone sarebbe meglio il contrario ... cioe', prima decidi quali pin utilizzare nel cablaggio in modo che le connessioni siano il piu semplici possibile e non ti ritrovi con il lato saldature che sembra una parrucca afro di fili (:P :D), e poi scrivi lo sketch in base ai pin che hai deciso di usare ... ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 30, 2016, 10:55 pm
Sì certo intendevo proprio quello.
Prima imposto tutto il circuito, poi gestisco le uscite con lo sketch.
Mi manca solo il passaggio di come sostituire la UNO con la MCU, ma sopratutto come la programmerò e quali piedini utilizzerò di quest'ultima.... ma intanto mi preme far funzionare il prototipo
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Dec 01, 2016, 09:57 am
La UNO in fondo non e' altro che una MCU con un po di componenti "di contorno" per renderne piu comodo l'utilizzo in fase di prototipo ... quando sara' il momento di realizzare lo standalone, non fai altro che prendere uno zoccolo DIP per la MCU (potresti anche saldare la MCU, ma e' meglio usare lo zoccolo nel caso serva riflasharlo in futuro), saldarlo sullo stampato insieme ai pochi componenti realmente utili (quarzo, qualche condensatore e resistenza, regolatore 5V) e collegare direttamente al resto del circuito i pin della MCU che corrispondono adesso ai connettori della UNO ... nulla di piu, alla fine ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 02, 2016, 11:19 pm
Ciao, sto diventando un pochino matto nel cercare lo sketch giusto. Secondo voi questo:
http://sagarablog2.altervista.org/articoli/2015/02/07/Orologio_con_Display_a_7_segmenti/#gallery?IMG_20150207_115021
potrebbe fare al caso nostro? Se si sapreste indicarmi anche quali modifiche effettuare? Diversamente sapreste dirmi dove trovare uno sketch giusto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 03, 2016, 07:54 pm
Il programma va scritto su misura per l'hardware.

Il link parla di un display pilotato in multiplex senza usare RTC esterni, ma affidandosi solo al tempo contato con il quarzo della MCU (tramite la funzione millis), peraltro "corretto" con una calibrazione fatta  a mano.

Il software è fatto a mattoncini. Intanto bisogna riuscire a far apparire delle cifre qualsiasi sui display. Poi si penserà a tempo, regolazioni ecc. Alla fine l'orologio salta fuori quasi da solo come unione delle parti.

Ho perso di vista la versione attuale dell'hardware, se non sbaglio ci si era dirottati su una catena di 4 shift register senza multiplexing.

Bisogna preparare 4 byte in memoria con i bit alti (o bassi) corrispondenti ai segmenti da accendere (e quindi bisogna conoscere l'esatto cablaggio tra segmenti e pin degli shift register), e "scorrerli" fuori tramite la funzione shiftOut. Questo permette di vedere se tutto lo stadio di visualizzazione è ok.

Inutile pensare ad altre cose prima di essersi accertati che i display vengano comandati correttamente. In pratica bisogna prima di tutto scrivere una funzione (chiamata ad esempio visualizza) che legge un array di 4 byte con funzione di memoria video (chiamato ad esempio vidmem). La funzione deve scorrere l'array estraendone i valori e shiftandoli verso gli shift register esterni. Ogni bit dei byte della vidmem corrisponde ad un segmento di una cifra e va verificata l'esatta corrispondenza.

Ad esempio questo se non sbaglio dovrebbe accendere il segmento A della cifra più a sinistra:
Code: [Select]
#define CLOCK_PIN 2 // <-- qui vanno i pin scelti
#define LATCH_PIN 3
#define DATA_PIN  4

uint8_t vidmem[4] = {0x80, 0, 0, 0};

void visualizza() {
    digitalWrite(LATCH_PIN, LOW);
    for (int i=3; i>=0; i--)
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, vidmem[i]);  
    digitalWrite(LATCH_PIN, HIGH);
}

void setup() {
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
}

void loop() {
    visualizza();
}

AGGIUNTA: alla fine del post #72 c'è la tabella di conversione da valori numerici a codici display (con i nomi dei segmenti). Ad esempio se nella vidmem si scrivono i byte {0xDA, 0xFC, 0x60, 0xE0} sul display deve comparire 2017.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 04, 2016, 11:17 am
Grazie Claudio_F
Ho perso di vista la versione attuale dell'hardware, se non sbaglio ci si era dirottati su una catena di 4 shift register senza multiplexing.

Ti confermo che ci si era dirottati su questa soluzione

Inutile pensare ad altre cose prima di essersi accertati che i display vengano comandati correttamente.

Mi sembra un'ottimo approccio, infatti ora cercherò di verificare sul mio prototipo il codice da te indicato... poi vi aggiorno ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 04, 2016, 03:24 pm
Scusa Claudio_F, ma quindi il tuo suggerimento è quello di iniziare con questo sketch per vedere l'accensione dei vari segmenti e poi inserire anche l'RCT, Corretto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 04, 2016, 03:55 pm
Sia in hardware che in software si collauda sempre ogni "sottosistema" separatamente, altrimenti se qualcosa non funziona come si fa a trovare di quale parte è la colpa? Bisogna avere delle certezze. Una volta che i byte nella vidmem  vengono visualizzati correttamente si può pensare di "produrli" partendo da valori BCD (compresi tra 0 e 9), e successivamente di prendere questi valori BCD da una fonte esterna come può essere l'RTC. Il lavoro fatto fino a quel momento rimane, semplicemente ci si costruisce sopra ampliandolo.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 04, 2016, 07:03 pm
Ottimo! grazie ancora.
Ora ho terminato il cablaggio in allegato foto del risultato :).

Vi chiedo solo una cosa prima di far esplodere tutto: ho cercato i data sheet dei display in mio possesso per capire a quali piedini far riferimento ed ho trovato solo quello che vi allego che però fa riferimento ad un Catodo Comune (stesso modello del mio). Logicamente ho semplicemente invertito Anodi con i Catodi considerando che il piedino 1 corrispondesse al Catodo del segmento G il 2 a quello del segmento F e così via, mentre il 3 e l'8 fossero gli Anodi Comuni. è Corretto? Il fatto che vi siano 2 piedini con la stessa funzionalità (Anodo o Catodo Comune) è normale giusto?

Immagino basti semplicemente invertire ma volevo anche il vostro conforto...

Ora devo solo considerare come collegare il tutto alla UNO (cioè a quali PIN) e poi provo a vedere se si accende ;)

Edit: ora la foto del capolavoro è uploadata :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 04, 2016, 10:11 pm
Se ci sono dubbi sui terminali dei display basta alimentare gli anodi a +5Vcc attraverso una R da 330Ω e portare uno alla volta al negativo gli altri terminali. Comunque è normale che ci siano due anodi o due catodi comuni.

Prima di collegare gli shift register avrei verificato che comandando a mano gli ingressi degli ULN si accendessero i segmenti giusti (così se qualcosa non va non posso dare la colpa ne ai display ne agli ULN).

Se non sbaglio il display delle 10 ore è quello in alto, e lo shift register "più vicino" ad Arduino deve essere quello più in alto. Ma le strisce di alimentazione sull'estrema destra sono collegate a quelle di alimentazione a sinistra???

Se ti colleghi ai pin D2 D3 D4 di Arduino come da mio sketch è già a posto. I terminali comuni reset e abilitazione uscite degli shift register vanno intanto collegati rispettivamente a +Vcc e GND... poi si vedrà se può servire comandarli da Arduino tramite altri due pin.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 04, 2016, 11:00 pm
Prima di collegare gli shift register avrei verificato che comandando a mano gli ingressi degli ULN si accendessero i segmenti giusti (così se qualcosa non va non posso dare la colpa ne ai display ne agli ULN).
per comandare a mano gli ULN devo farlo uno alla volta? Li collego direttamente alla UNO?


Se non sbaglio il display delle 10 ore è quello in alto, e lo shift register "più vicino" ad Arduino deve essere quello più in alto. Ma le strisce di alimentazione sull'estrema destra sono collegate a quelle di alimentazione a sinistra???

Confermo che le ore e lo shift più in alto sono quelli più vicino ad Arduino. In merito alla domanda, dovrebbero essere collegate tra loro? Dallo schema non mi sembrava. Ed infatti NON sono collegate :)

Comunque partendo dall'estrema sinistra le strisce le ho suddivise nel modo seguente:
Striscia del + = Enable
Striscia del - = Data
Striscia del + = Store
Striscia del - = Clear
Striscia del + = Clock
Striscia del - vuota
Striscia del + = VCC
Striscia del - = GROUND
Striscia del + = 12 v
Striscia del - vuota

Penso che possa andare giusto?

Come sempre grazie
Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 04, 2016, 11:25 pm
Per gli ULN intendevo proprio a mano, collegando gli ingressi a +5V (come da figura post #142 si attivano i due transistor interni corrispondenti a quell'ingresso e deve accendersi il segmento collegato sull'uscita).

Le strisce direi che vanno bene. Come detto la enable intanto andrà messa a GND, la clear a +5V, la store è quella che nello sketch ho chiamato latch, data e clock si capiscono.

Comunque secondo me a questo punto puoi procedere direttamente con lo sketch.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 05, 2016, 10:06 pm
Le strisce direi che vanno bene. Come detto la enable intanto andrà messa a GND, la clear a +5V, la store è quella che nello sketch ho chiamato latch, data e clock si capiscono.

Wow wow wow!!! eppur si muove :D.

Per il momento si accendono i segmenti E ed F del display più a sx (molto fievole come luce ma immagino sia dovuto al fatto che sto connesso con la USB al pc), ho dovuto però mettere la striscia del 12v nel PIN 5v.

Se metto contemporaneamente anche clear nel 3v allora mi si accende anche il segmento D (E ed F più forte D più debole).

Se inverto 12v e clear sui 3/5v allora si accende anche il segmento G

Diciamo che il segmento A (che dovrebbe essere quello in alto orizzontale) non lo vedo accendersi :).

Next Step?

Edit: ho notato che togliendo le "strisce" di latch (Store), data e clock si accendono comunque i segmenti C, D, E, F, G della prima cifra...

Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 06, 2016, 09:52 am
Allora il prossimo passo è tornare indietro  fare una cosa per volta su parti di circuito più circoscritte fino ad ottenere la minima unità certamente funzionante (il circuito completo non sarà altro che l'insieme di più parti piccole già testate... il solito discorso insomma).

Provare separatamente:
- il funzionamento di un solo shift register con 8 LED collegati sulle uscite (ricordando che il bit più significativo trasmesso deve uscire dallo stadio interno del 595 più vicino ad Arduino, cioè il pin 15 (Q0) del 595 come si vede dalla figura 4 del datasheet (http://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf)).
- il funzionamento di un solo ULN (comandato a mano) + display anodo comune.
- unione delle due parti (la sezione di ULN che comanda il segmento A andrà poi pilotata con l'uscita Q0 del 595 in modo da essere comandata dal bit più significativo e di seguito le altre).
- quando si riesce a far funzionare una cifra, allora moltiplicare per quattro arrivando a quella che dovrebbe essere la configurazione attuale.

Trovare "a voce" un problema in un circuito completo, senza parti singole testate, con tutte le possibilità di errore dal più banale collegamento errato, al malfunzionamento di un singolo componente, al concetto non ben compreso, è impossibile.



Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Dec 06, 2016, 09:57 am
Ehm ... quante striscie stai collegando a quel povero 5V dell'USB ? ... :D

Poi ... forse e' solo una mia impressione, dato che la foto e' piccola, ma ... non mi sembra di vedere fili che portano alimentazione alle breadboard, ne al comune dei display ... o sbaglio ? ...

Per il test dei display, senza collegare gli shift, basta alimentare il gruppo display - segmenti, poi con una resistenza da 1K collegata al +5V, toccare i pin di ingresso degli ULN ... se sono cablati correttamente, ad ogni pin deve corrispondere il giusto segmento del relativo display, che si deve accendere ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 06, 2016, 11:01 pm
Provare separatamente:
- il funzionamento di un solo shift register con 8 LED collegati sulle uscite (ricordando che il bit più significativo trasmesso deve uscire dallo stadio interno del 595 più vicino ad Arduino, cioè il pin 15 (Q0) del 595 come si vede dalla figura 4 del datasheet (http://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf)).

non mi è ben chiaro cosa devo fare. Intendi che metto dei banalissimi led all'uscita il cui anodo va su una striscia "comune" collegata a 5v e poi collego le varie entrate degli shift con il 3v dell'arduino e vedo se funzionano i led?

- il funzionamento di un solo ULN (comandato a mano) + display anodo comune.

forse è quello che ho testato nella logica suggerita da etem:

Per il test dei display, senza collegare gli shift, basta alimentare il gruppo display - segmenti, poi con una resistenza da 1K collegata al +5V, toccare i pin di ingresso degli ULN ... se sono cablati correttamente, ad ogni pin deve corrispondere il giusto segmento del relativo display, che si deve accendere ...
In effetti con la striscia dell'anodo collegata al pin 5v, la enable a GND e partendo dal 3v della UNO ho testato i vari ingressi degli ULN ed ho notato che:
- il primo ULN (quello più vicino alla UNO) si accendono i segmenti in modo causale (anche più di uno) a seconda dell'ingresso al quale mi collego.
- il secondo ULN si accendono correttamente tutti i segmenti (compresi i due punti centrali nell'ingresso/uscita 9), anche se si illumina in modo molto fievole anche qualche segmento del primo display :(
- il terzo e quarto ULN non danno segni di vita...

allego comunque foto del segmento A secondo display illuminato :).

P.S.: lo sketch è rimasto quello precedente (ho dato per scontato che andasse bene anche per le prove)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 07, 2016, 09:37 am
Quote from: ghezzia
non mi è ben chiaro cosa devo fare.  Intendi che metto dei banalissimi led all'uscita il cui anodo va su una striscia "comune" collegata a 5v e poi collego le varie entrate degli shift con il 3v dell'arduino e vedo se funzionano i led?
Perché continui a parlare di 3V? Non c'è nulla da alimentare a 3V. Il seguente è lo schema minimo per testare uno shift register (per il 74595 ho usato la stessa nomenclatura dello schema del post #140), sono da provare tutti così scopriamo se se ne è bruciato qualcuno. Le linee tratteggiate indicano i cinque LED che non ho disegnato per comodità, ma ovviamente vanno collegati tutti e otto, ciascuno su un'uscita del 74595:

(http://stor.altervista.org/p.php?p=ghe_shift.png)

Questo il programma per luci sequenziali da Qa a Qh, consiglio di non procedere oltre finché non lo hai compreso alla perfezione. Il ^0xFF scritto nella chiamata alla funzione shiftOut serve per invertire il livello logico dei bit in uscita in quanto in questa prova non sono interposti gli ULN2803 e i LED si accendono in presenza di uscita bassa:

Code: [Select]
#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4

// Variabili di lavoro globali
byte val;

// Inizializzazione sistema eseguita una sola volta
void setup(){
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
    digitalWrite(CLOCK_PIN, LOW); // pin clock inizialmente basso
    val = 0x80;                   // 0x80 =  10000000 binario
}

// Ciclo principale del programma ripetuto continuamente
void loop(){
    // trasmette val a shift register
    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, val^0xFF);  
    digitalWrite(LATCH_PIN, HIGH);
    // scorre bit a destra
    val = val >> 1;
    if (val == 0) val = 0x80;
    // ritardo
    delay(200);
}

Il passo successivo sarà interporre un ULN2803 tra il 74595 e i LED, togliere l'inversione logica software, e verificare che continui tutto a funzionare (così poi testiamo anche gli ULN uno per uno). Nello schema seguente si da per scontato l'Arduino sulla sinistra (nota: il terminale COM dell'ULN -pin 10- qui non l'ho collegato perché serve per i diodi volano interni in caso di pilotaggio di carichi induttivi, si potrà collegare ai 12V nel circuito definitivo):

(http://stor.altervista.org/p.php?p=ghe_uln2803.png)

Successivamente si può collegare un display (anodo comune) e verificare che si accendano i segmenti nella sequenza A B C D E F G dp (così testiamo anche l'integrità di tutti i display). Una sola resistenza comune sull'anodo è solo per test, per ridurre il numero di componenti (anche qui si da per scontata la presenza a sinistra di Arduino+shift register):

(http://stor.altervista.org/p.php?p=ghe_disp01.png)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Dec 07, 2016, 10:44 am
Sarebbe meglio, anche per i test, usare una resistenza per ogni led ... per il resto mi sembra ok ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 07, 2016, 07:17 pm
Allora dopo i primi test degli Shift register ho scoperto che dei 4 shift solo 3 sembrano funzionare correttamente. Il primo (quello che dava problemi anche sulla configurazione totale) accende solo 3 led "senza troppa convinzione"... :).
Ora testo anche la configurazione con gli ULN ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 07, 2016, 07:41 pm
Il ^0xFF scritto nella chiamata alla funzione shiftOut serve per invertire il livello logico dei bit in uscita in quanto in questa prova non sono interposti gli ULN2803 e i LED si accendono in presenza di uscita bassa:


Il passo successivo sarà interporre un ULN2803 tra il 74595 e i LED, togliere l'inversione logica software,

Per togliere l'inversione logica è sufficiente cancellare dallo sketch "^0xFF"?
perchè in effetti, facendo solo questa operazione non mi valida lo sketch...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 07, 2016, 08:59 pm
Quote from: ghezzia
Per togliere l'inversione logica è sufficiente cancellare dallo sketch "^0xFF"?
Si, quella riga deve diventare:
Code: [Select]
shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, val);
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 08, 2016, 12:16 am
Rieccomi!
ho fatto tutti i test come suggerito da Claudio_F...
Quasi tutto funziona regolarmente.
Dico quasi perchè sembra che un display non si accenda proprio, e uno shift, come detto, da segni di vita accendendo in modo fievole 3/4 led...

Gli ULN funzionano tutti. Anche se li ho testati con un solo shift (uno dei 3 che funzionava) immagino non sia un problema, giusto?

Faccio 2 domande:

1 - E' normale che uno shift e un display, praticamente nuovi (li ho comprati un paio di settimane fa) si siano già "bruciati"? se no è possibile che li abbia "bruciati" io con qualche contatto sbagliato?

2 - Nel frattempo che riesco a reperire i ricambi (Shift + display) posso fare qualche altra prova per portarmi avanti col lavoro?

Grazie ragazzi... mi sto divertendo :)

Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 08, 2016, 10:11 am
Bene, temevo di dover verificare anche se le uscite di Arduino erano integre :) (per fare un mini analizzatore logico sarebbero bastati due LED e due resistenze).

Componenti guasti alla nascita sono possibili ma rari, più facile qualche corto accidentale nel cespuglio. Il display invece è più strano, me ne è capitato uno che aveva un problema meccanico: si scollegava internamente un segmento muovendo leggermente un pin, da quel giorno ho sempre avuto timore a "stortare" i terminali dei display.

Se hai anche verificato che inviando i codici display della tabella del post #72 compaiono i numeri corretti da 0 a 9, allora con  i componenti buoni si può intanto triplicare il circuito, ricordando che i segnali CLOCK e LATCH in arrivo dall'Arduino vanno portati in parallelo a tutti i 74595, mentre l'ingresso SER dei successivi 74595 va collegato all'uscita QH* (pin 9) dello shift register precedente.

In attesa dei pezzi nuovi le cose che si possono  provare sono:
- conteggio da 0 a 999
- conteggio avanti / indietro tramite due pulsanti
- timer da 1 a 999 secondi

Perché? Perché così ottieni:
- la certezza di gestire tutte le cifre correttamente
- esperienza nella gestione dei pulsanti con cui poi regolare l'orologio vero e proprio
- esperienza software (ma solo se lo scrivi tu :smiley-razz:)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 08, 2016, 12:36 pm
Io proponevo un multiplexing con shift register, ho verificato che trasmettendo solo 12 bit con una funzione ad hoc la trasmissione dura 185 microsecondi:

Code: [Select]
#define CLOCK_PIN   2
#define LATCH_PIN   3
#define DATA_PIN    4
//-----------------------------------------------------------------------------
//               Trasmette 12 bit ai 74595 (lsbfirst)
//-----------------------------------------------------------------------------
void write_shift_register(uint16_t val)
{
   digitalWrite(LATCH_PIN, 0);
   for (uint8_t i=0; i<11; i++)
   {
           digitalWrite(DATA_PIN, val & 1);
           digitalWrite(CLOCK_PIN, 1);
           digitalWrite(CLOCK_PIN, 0);
           val >>= 1;
   }
   digitalWrite(DATA_PIN, val & 1);
   digitalWrite(CLOCK_PIN, 1);
   digitalWrite(CLOCK_PIN, 0);
   digitalWrite(LATCH_PIN, 1);
}


Se si usano le uscite QA..QG dei 595 per comandare i relativi segmenti (accesi se uscita alta) dovrebbe andare bene la seguente tabella di codici:


Code: [Select]
     CODICI DISPLAY 1=ACCESO

               --A--
             |       |
             F       B
             |       |
               --G--
             |       |
             E       C
             |       |
               --D--


     A  B  C  D  E  F  G  dp
------------------------------------
0    1  1  1  1  1  1  0  0    0xFC
1    0  1  1  0  0  0  0  0    0x60
2    1  1  0  1  1  0  1  0    0xDA
3    1  1  1  1  0  0  1  0    0xF2
4    0  1  1  0  0  1  1  0    0x66
5    1  0  1  1  0  1  1  0    0xB6
6    1  0  1  1  1  1  1  0    0xBE
7    1  1  1  0  0  0  0  0    0xE0
8    1  1  1  1  1  1  1  0    0xFE
9    1  1  1  1  0  1  1  0    0xF6


Ciao, sto cercando di "decifrare il codice postato da Claudio_F, mi è chiaro il concetto della creazione dei numeri utilizzando la tabella dei codici, non mi è chiarissimo a che punto dello sketch sopra devo inserire questi codici. Se voglio vedere un sette metterò 0xE0... corretto? Ma dove lo inserisco? Tra l'altro la IDE non mi valida il codice sopra così com'è :(
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 08, 2016, 05:27 pm
Alt, quel codice non è completo (vedi che mancano setup loop ecc?), è una funzione isolata pensata per essere inserita e usata all'interno dell'ipotetico programma con gestione multiplexing di cui si discuteva in quel momento. Tra l'altro è scritta per trasmettere 12 bit, ok capire come funziona, ma inutile per il circuito attuale.

Nell'ultimo codice di prova il valore viene emesso dalla funzione shiftOut, è quella che devi vedere.

È chiaro che la shiftOut crea una trasmissione dati sincrona verso gli shift register e il segnale di latch "conferma" i dati trasmessi?

(http://stor.altervista.org/p.php?p=ghe_tx01.png)

Per far contare da 0 a 9 quel display bisogna passare a shiftOut i codici display corrispondenti ai valori da 0 a 9. La cosa più semplice è leggere una tabella dei codici (scritta in un array) usando il valore 0-9 come indice:

Code: [Select]
#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4

// Variabili di lavoro globali
byte val;
byte tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                    0xB6, 0xBE, 0xE0, 0xFE, 0xF6};

// Inizializzazione sistema eseguita una sola volta
void setup(){
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
    digitalWrite(CLOCK_PIN, LOW); // pin clock inizialmente basso
    val = 0;                      // valore da 0 a 9
}

// Ciclo principale del programma ripetuto continuamente
void loop(){
    // trasmette val a shift register
    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[val]);
    digitalWrite(LATCH_PIN, HIGH);
    // aggiorna valore, se supera 9 torna a 0
    val = val + 1;
    if (val == 10) val = 0;
    // ritardo
    delay(500);
}


Alla fine, con quattro shift register e i segmenti collegati come nelle ultime prove, saranno necessarie quattro shiftOut in sequenza per "riempire" tutti i registri con 32 bit:

(http://stor.altervista.org/p.php?p=ghe_tx02.png)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 08, 2016, 07:28 pm
Alla fine, con quattro shift register e i segmenti collegati come nelle ultime prove, saranno necessarie quattro shiftOut in sequenza per "riempire" tutti i registri con 32 bit:

(http://stor.altervista.org/p.php?p=ghe_tx02.png)
Vediamo se ho capito bene (e se sto imparando qualcosa), ti posto il codice che utilizzerei per fare in modo che i 3 display mandino in sequenza i numeri da 0 a 9... Per il momento ho solo 3 display funzionanti...

Code: [Select]

#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4

// Variabili di lavoro globali
byte val;
byte tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                    0xB6, 0xBE, 0xE0, 0xFE, 0xF6};

// Inizializzazione sistema eseguita una sola volta
void setup(){
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
    digitalWrite(CLOCK_PIN, LOW); // pin clock inizialmente basso
    val = 0;                      // valore da 0 a 9
}

// Ciclo principale del programma ripetuto continuamente
void loop(){
    // trasmette val a shift register
    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[val]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[val]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[val]);
    digitalWrite(LATCH_PIN, HIGH);
    // aggiorna valore, se supera 9 torna a 0
    val = val + 1;
    if (val == 10) val = 0;
    // ritardo
    delay(500);
}


In verità non mi è chiaro come la funzione shiftOut riconosca lo shift di riferimento...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 08, 2016, 10:52 pm
OK!
come vedete dalla foto che allego lo sketch funziona anche con 3 display... il problema vero è che funziona sia con la versione con funzione shiftOut singola che triplicata.... questo mi fa pensare che la mia "intuizione" non sia stata così geniale :).

Ora provo a cercare di capire come fare il countdown o il cronometro da 0 a 999....

Vi faccio sapere come andrà :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 09, 2016, 10:15 pm
In verità non mi è chiaro come la funzione shiftOut riconosca lo shift di riferimento...

In effetti non sono riuscito a trovare il modo di far riconoscere allo sketch quale Shift/ULN/Display sta comandando in quel momento.

la mia idea è quella di comunicare al display più a dx di partire dal 9 e arrivare allo 0 con delay 1000 millisecondi; di comunicare al display in mezzo di partire da 9 e di scendere gradualmente ai numeri più bassi ogni volta che il display alla sua dx arrivi a 0; per finire col display più a sx che scende gradualmente ogni volta che il display alla sua dx arriva a 0....

come faccio con lo sketch a fare quanto sopra?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 10, 2016, 10:20 am
Quote
In verità non mi è chiaro come la funzione shiftOut riconosca lo shift di riferimento...
Quote
si può intanto triplicare il circuito, ricordando che i segnali CLOCK e LATCH in arrivo dall'Arduino vanno portati in parallelo a tutti i 74595, mentre l'ingresso SER dei successivi 74595 va collegato all'uscita QH* (pin 9) dello shift register precedente.
Ho il sospetto che tu non abbia creato la catena di shift register, ma li stia comandando in parallelo. Quindi memorizzano tutti lo stesso byte, cioè l'ultimo trasmesso, mentre i primi due byte vengono persi perché "scorrono fuori" dalle uscite QH* collegate a niente.

Se crei la catena QH* -> SER tra un 595 e il successivo allora la prima shiftOut trasmette il valore che finirà sul 595 più lontano da Arduino, e l'ultima su quello più vicino (ogni shiftOut "spinge" 8 bit spostandoli sempre più lontano attraverso tutta la catena).

Questo collegamento era già presente nello schema del post #140 (http://forum.arduino.cc/index.php?topic=431577.msg3004285#msg3004285), cioè nel primo circuito che hai provato ad accendere.

Per quanto riguarda il conteggio (che usando delay non sarà mai di un secondo preciso ma un po' più lungo a causa delle istruzioni da eseguire tra una delay e l'altra) basta usare tre variabili diverse che contengono i tre valori da 0 a 9. Inizialmente vanno ovviamente impostate tutte a 9. Ad ogni ciclo decrementi quella delle unità, quando va sotto zero la riporti a nove e decrementi quella delle decine ecc (nota: ricorda che una variabile senza segno, come il tipo byte, quando passa da 0 a -1 non diventa negativa, ma ritorna al valore massimo permesso dal suo tipo, che per il tipo byte è 255).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 10, 2016, 04:15 pm
Se crei la catena QH* -> SER tra un 595 e il successivo allora la prima shiftOut trasmette il valore che finirà sul 595 più lontano da Arduino, e l'ultima su quello più vicino (ogni shiftOut "spinge" 8 bit spostandoli sempre più lontano attraverso tutta la catena).
Si in effetti non avevo creato questa catena... ora l'ho fatto

Per quanto riguarda il conteggio (che usando delay non sarà mai di un secondo preciso ma un po' più lungo a causa delle istruzioni da eseguire tra una delay e l'altra) basta usare tre variabili diverse che contengono i tre valori da 0 a 9. Inizialmente vanno ovviamente impostate tutte a 9. Ad ogni ciclo decrementi quella delle unità, quando va sotto zero la riporti a nove e decrementi quella delle decine ecc (nota: ricorda che una variabile senza segno, come il tipo byte, quando passa da 0 a -1 non diventa negativa, ma ritorna al valore massimo permesso dal suo tipo, che per il tipo byte è 255).
:( continuo a non capire... devo aggiungere altre 2 void loop secondo la logica da te indicata, oppure è sufficiente aggiungere all'interno del void loop le variabili che mi permettono quanto sopra?
Come detto sono un pò una "capretta" :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 11, 2016, 01:04 pm
:( continuo a non capire... devo aggiungere altre 2 void loop secondo la logica da te indicata, oppure è sufficiente aggiungere all'interno del void loop le variabili che mi permettono quanto sopra?
Immagino che nel frattempo avrai provato e avrai visto che al compilatore l'idea non piace... c'è una sola funzione loop in un programma.

Come per l'hardware, anche nel software quando qualcosa non è chiaro / non funziona si torna indietro tutti i passi necessari per arrivare ad una parte minima funzionante. Si devono fare tutte le prove necessarie a capire cosa succede e prevedere cosa succederà scrivendo una certa istruzione, si deve fare finta di essere Arduino stesso ed eseguire quello che si è scritto. Se quello che si crede non corrisponde a quello che accade servono altre prove.

Ci sono molti tutorial, mi permetto di segnalare questo (http://www.maffucci.it/area-studenti/arduino/), soprattutto le parti strutture / tipi dati / variabili ecc perché sono fondamentali per non brancolare nel buio.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Dec 11, 2016, 05:46 pm
Con la shiftout non mi sembra esista alcun modo per "dirgli" quale integrato della catena cambiare ... semplicemente, se hai 4 integrati, ogni volta butti fuori i 4 bytes nella corretta sequenza, cambiandoli tutti (che poi cambi in effetti un solo pin o tutti quanti poco conta, ogni volta che butti fuori i dati fai in pratica il "refresh" dell'intera catena)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 12, 2016, 10:33 pm
Rieccomi!
Scusate ma ho cercato di comprendere dai tutorial indicati (e anche qualche altro) come creare il codice corretto ma devo essere sincero NON ci ho capito nulla  :'(

si deve fare finta di essere Arduino stesso ed eseguire quello che si è scritto
Ho seguito il tuo consiglio è ho provato a "partorire" questo codice :)...

Code: [Select]

#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4

// Variabili di lavoro globali
byte val;
byte tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                    0xB6, 0xBE, 0xE0, 0xFE, 0xF6};

// Inizializzazione sistema eseguita una sola volta
void setup(){
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
    digitalWrite(CLOCK_PIN, LOW); // pin clock inizialmente basso
    val = 0;                      // valore da 0 a 9
}

// Ciclo principale del programma ripetuto continuamente
void loop(){
    // trasmette val a shift register
    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[val]);
    digitalWrite(LATCH_PIN, HIGH);
    // aggiorna valore, se supera 9 torna a 0
    val = val + 1;
    if (val == 10) val = 0;
    // ritardo
    delay(500);
     // trasmette val a shift register 2
    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[val]);
    digitalWrite(LATCH_PIN, HIGH);
    // aggiorna valore, se supera 9 torna a 0
    val = val + 1;
    if (val == 10) val = 0;
    // ritardo
    delay(500);
     // trasmette val a shift register 3
    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[val]);
    digitalWrite(LATCH_PIN, HIGH);
    // aggiorna valore, se supera 9 torna a 0
    val = val + 1;
    if (val == 10) val = 0;
    // ritardo
    delay(500);
}


Devo essere sincero, non è che ho fatto un grosso sforzo di fantasia, ma mi sono detto: "se i comandi non riconoscono a quale shift si riferiscono se eseguo tre volte il loop, e ragionano a "spingere" quello precedente, dovrebbe funzionare il tutto!"

NON lo ho ancora testato tuttavia... cosa dite sono sulla giusta strada?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 13, 2016, 09:42 pm
Quote from: ghezzia
ma devo essere sincero NON ci ho capito nulla
Non è un opzione ammessa :smiley-lol:

Quote
mi sono detto: "se i comandi non riconoscono a quale shift si riferiscono se eseguo tre volte il loop, e ragionano a "spingere" quello precedente, dovrebbe funzionare il tutto!"
L'idea dello spingere per tre volte per riempire tutti i registri è corretta. Quel codice qualcosa fa e sui display appaiono numeri diversi (anche se sicuramente non il conteggio che si diceva)... però è meglio se vedi in pratica cosa succede e cerchi di capire perché... Quello che vedi accadere è esattamente quello che hai "ordinato". La cosa più importante in questo momento è riuscire a "ragionare" come ragiona la macchina.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 13, 2016, 10:59 pm
L'idea dello spingere per tre volte per riempire tutti i registri è corretta. Quel codice qualcosa fa e sui display appaiono numeri diversi (anche se sicuramente non il conteggio che si diceva)... però è meglio se vedi in pratica cosa succede e cerchi di capire perché... Quello che vedi accadere è esattamente quello che hai "ordinato". La cosa più importante in questo momento è riuscire a "ragionare" come ragiona la macchina.

Eccoci!
pensavo di aver avuto l'idea illuminante ma... sia col codice scritto in precedenza sia con questo:

Code: [Select]

#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4

// Variabili di lavoro globali
byte val1;
byte val2;
byte val3;
byte tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                    0xB6, 0xBE, 0xE0, 0xFE, 0xF6};

// Inizializzazione sistema eseguita una sola volta
void setup(){
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
    digitalWrite(CLOCK_PIN, LOW); // pin clock inizialmente basso
    val1 = 0;
    val2 = 0;
    val3 = 0;// valore da 0 a 9
}

// Ciclo principale del programma ripetuto continuamente
void loop(){
    // trasmette val a shift register1
    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[val1]);
    digitalWrite(LATCH_PIN, HIGH);
    // aggiorna valore, se supera 9 torna a 0
    val1 = val1 + 1;
    if (val1 == 10) val1 = 0;
    // ritardo
    delay(500);
   
    // trasmette val a shift register2
    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[val2]);
    digitalWrite(LATCH_PIN, HIGH);
    // aggiorna valore, se val1 supera 9 torna a 0
    val2 = val2 + 1;
    if (val1 == 10) val2 = 0;
   
    // trasmette val a shift register3
    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[val3]);
    digitalWrite(LATCH_PIN, HIGH);
    // aggiorna valore, se val2 supera 9 torna a 0
    val3 = val3 + 1;
    if (val2 == 10) val3 = 0;

}


Il risultato è sempre il medesimo.... conteggio di tutti i 3 display da 0 a 9 in contemporanea :( Ho provato anche ad invertire i 3 loop partendo dal tre, scritto senza delay per arrivare all'1 scritto col delay)

vediamo se la notte porterà consiglio.... nel frattempo se tu mi sai dare un suggerimento :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 13, 2016, 11:50 pm
Tre variabili che partono tutte con lo stesso identico valore, che vengono tutte incrementate di uno ad ogni ciclo, per forza di cose sono tre numeri uguali.


EDIT: manca ancora la prova elementare per accertarsi che la catena di shift register sia corretta, far scrivere tre cifre diverse:
Code: [Select]
digitalWrite(LATCH_PIN, LOW);
shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[5]);
shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[2]);
shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[7]);
digitalWrite(LATCH_PIN, HIGH);

Fare una sola shiftOut alla volta con un delay di mezzo secondo tra una e l'altra deve far per lo meno scorrere le cifre di una posizione sul display ogni mezzo secondo (per questo ho ancora il dubbio che la catena non sia corretta).


Dopo di che: scrivere su carta a  mano i valori di val1 val2 val3 seguendo gli incrementi e gli azzeramenti del tuo codice.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 14, 2016, 02:54 pm
EDIT: manca ancora la prova elementare per accertarsi che la catena di shift register sia corretta, far scrivere tre cifre diverse:
Code: [Select]
digitalWrite(LATCH_PIN, LOW);
shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[5]);
shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[2]);
shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[7]);
digitalWrite(LATCH_PIN, HIGH);

Fare una sola shiftOut alla volta con un delay di mezzo secondo tra una e l'altra deve far per lo meno scorrere le cifre di una posizione sul display ogni mezzo secondo (per questo ho ancora il dubbio che la catena non sia corretta).
Cioè intendi che devo provare a scrivere il codice di cui sopra aggiungendo il delay tra un loop e l'altro?


Dopo di che: scrivere su carta a  mano i valori di val1 val2 val3 seguendo gli incrementi e gli azzeramenti del tuo codice.
come seguo gli incrementi e gli azzeramenti? Visivamente? gli incrementi intendi i numeri che appaiono sui 3 display? e gli azzeramenti?

grazie del supporto e della sopportazione :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 14, 2016, 05:44 pm
Quote from: ghezzia
Cioè intendi che devo provare a scrivere il codice di cui sopra aggiungendo il delay tra un loop e l'altro?
Quello è l'unico codice da mettere dentro la funzione loop, giusto per vedere una benedetta volta se vengono fuori dei numeri diversi, un bel 527 in questo caso. Quelle cinque righe vengono eseguite in continuazione, ma non ci interessa, i byte trasmessi e visualizzati sono sempre gli stessi e quindi i numeri visualizzati, anche se riscritti circa 2000 volte al secondo, appaiono sempre uguali.


Quote
come seguo gli incrementi e gli azzeramenti?
Tu sei Arduino, devi eseguire una per una le righe che hai scritto. Le variabili sono dei quadrati disegnati su un foglio di carta (la tua memoria di lavoro), quando incontri una istruzione che modifica il valore di una variabile cancelli il valore e scrivi quello nuovo. Così vedi come variano i valori delle variabili durante il trascorrere del tempo.

In particolare questo è quello che, in italiano, ordini con il tuo ultimo codice:
Code: [Select]
eseguire una sola volta:
    azzera val1
    azzera val2
    azzera val3

ripetere continuamente le seguenti righe:
    incrementa val1 di 1
    se (val1 uguale a 10) allora azzera val1

    scorri le cifre display una posiz a destra e
    visualizza val 1 in quello più a sinistra

    attendi mezzo secondo

    incrementa val2 di 1
    se (val1 uguale a 10) allora azzera val2

    scorri le cifre display una posiz a destra e
    visualizza val 2 in quello più a sinistra

    incrementa val3 di 1
    se (val2 uguale a 10) allora azzera val3

    scorri le cifre display una posiz a destra e
    visualizza val 3 in quello più a sinistra
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 15, 2016, 12:13 am
giusto per vedere una benedetta volta se vengono fuori dei numeri diversi, un bel 527 in questo caso.
Ecco!, mi sa che c'è qualcosa di sbagliato... o nella catena o nel codice, perché in effetti inserendo queste righe nel loop (quello con un unico val) mi da, su tutte le cifre il 7... come se prendesse solo l'ultimo comando :(
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Dec 15, 2016, 11:12 am
Prova a commentare con // la riga del 7 e vedi se su tutti i display appare il 5; non è che gli shift sono collegati in "parallelo" e quindi mostrano tutti lo stesso valore?

L'altra prova da fare è mettere alla fine un delay (1000) o maggiore per bloccare temporaneamente il ciclo, e vedere se cambia qualcosa.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 15, 2016, 11:47 am
Prova a commentare con // la riga del 7 e vedi se su tutti i display appare il 5; non è che gli shift sono collegati in "parallelo" e quindi mostrano tutti lo stesso valore?
Stasera provo...
L'altra prova da fare è mettere alla fine un delay (1000) o maggiore per bloccare temporaneamente il ciclo, e vedere se cambia qualcosa.
Questo tentativo l'ho fatto e in effetti non cambiava nulla. Però dallo schema postato da Etem (che allego) mi sembrava fossero collegati in serie... o mi sbaglio?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Dec 15, 2016, 04:22 pm
I comandi sono in parallelo, la linea dati invece ovviamente e' in serie (entra nel 14 del primo, esce dal 9 del primo ed entra nel 14 del secondo, esce dal 9 del secondo ed entra nel 14 del terzo, e cosi via) ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 15, 2016, 05:14 pm
I comandi sono in parallelo, la linea dati invece ovviamente e' in serie (entra nel 14 del primo, esce dal 9 del primo ed entra nel 14 del secondo, esce dal 9 del secondo ed entra nel 14 del terzo, e cosi via) ...
Quindi mi confermi che, se io ho collegato correttamente i vari shift, il codice di cui sopra dovrebbe funzionare, giusto?

Dopo provo a verificare i vari collegamenti e a testare anche quanto suggerito da Michele e vi so dire...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 15, 2016, 06:17 pm
Scusate, giusto per curiosità nel frattempo. Ho trovato questo componente di cui vi allego datasheet.
Non pensate possa semplificare un pochino la parte elettronica? Pensate possa essere utilizzato nell'applicazione che sto studiando?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 15, 2016, 09:16 pm
Prova a commentare con // la riga del 7 e vedi se su tutti i display appare il 5; non è che gli shift sono collegati in "parallelo" e quindi mostrano tutti lo stesso valore?
Allora se commento la riga del 7 rimane acceso il 2 (che è quella appena precedente); se commento quella del 2 rimane sempre accesa quella del 7... sembra che riconosca solo l'ultima riga.

Pensate che non sia riuscito a collegare correttamente gli switch in serie tra loro? se così fosse come li collego correttamente?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 15, 2016, 09:51 pm
In particolare questo è quello che, in italiano, ordini con il tuo ultimo codice:
Code: [Select]
eseguire una sola volta:
    azzera val1
    azzera val2
    azzera val3

ripetere continuamente le seguenti righe:
    incrementa val1 di 1
    se (val1 uguale a 10) allora azzera val1

    scorri le cifre display una posiz a destra e
    visualizza val 1 in quello più a sinistra

    attendi mezzo secondo

    incrementa val2 di 1
    se (val1 uguale a 10) allora azzera val2

    scorri le cifre display una posiz a destra e
    visualizza val 2 in quello più a sinistra

    incrementa val3 di 1
    se (val2 uguale a 10) allora azzera val3

    scorri le cifre display una posiz a destra e
    visualizza val 3 in quello più a sinistra


In Italiano ancora più comprensibile io direi:

Quote
eseguire una sola volta:
    azzera val1
    azzera val2
    azzera val3
Ripetere:
    incrementa val1 di 1

    quando val1=10
    azzera val1 e incrementa val2 di 1

    quando val2=10
    azzera val2 e incrementa val3 di 1

    
In virtù di questo ragionamento ho provato con questo codice utilizzando solo 2 display perché ho voluto semplificare il circuito elettrico:

Quote
#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4

// Variabili di lavoro globali
byte val1;
byte val2;
byte tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                    0xB6, 0xBE, 0xE0, 0xFE, 0xF6};

// Inizializzazione sistema eseguita una sola volta
void setup(){
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
    digitalWrite(CLOCK_PIN, LOW); // pin clock inizialmente basso
    val1 = 0;
    val2 = 0;
}

// Ciclo principale del programma ripetuto continuamente
void loop(){
    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[val1]);
    digitalWrite(LATCH_PIN, HIGH);
    // aggiorna valore, se supera 9 torna a 0
    val1 = val1 + 1;
    if (val1 == 10) val1 = 0;
    val2 = val2 + 1;
}
Purtroppo con questo codice mi appare solo il numero 8 su tutti i display  :smiley-cry:
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 15, 2016, 11:00 pm
Quote from: ghezzia
In Italiano ancora più comprensibile io direi:
Io ho scritto quello che hai ordinato letteralmente, non quello che pensavi di ordinare, se vuoi scrivere:
Code: [Select]
quando val1=10
azzera val1 e incrementa val2 di 1

la sintassi è formata da un blocco di due istruzioni sotto la stessa condizione:
Code: [Select]
if (val1 == 10) {
    val1 = 0;
    val2 = val2 + 1;
}

Inoltre ho scritto quella cosa dello shift perché facendo una shiftOut alla volta e confermando ogni volta con latch, l'effetto è quello di far scorrere le cifre da un display all'altro (chiaramente se sono collegati in serie).

Quote
Purtroppo con questo codice mi appare solo il numero 8 su tutti i display
Non è il numero 8, ma tutti i numeri uno dopo l'altro visualizzati molte centinaia di volte al secondo...

Questo deve fare il conteggio in avanti da 0 a 99:
Code: [Select]
#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4
//---------------------------------------------------------------------
byte temp;
byte unita;
byte decine;
byte tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                    0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
//---------------------------------------------------------------------
void setup(){
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
    digitalWrite(CLOCK_PIN, LOW);
    unita = 0;
    decine = 0;
}
//---------------------------------------------------------------------
void loop(){
    if (decine != 0)
        temp = tabella[decine];
    else
        temp = 0;  // soppressione primo zero

    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[unita]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, temp);
    digitalWrite(LATCH_PIN, HIGH);

    unita = unita + 1;
    if (unita == 10)
    {
        unita = 0;
        decine = decine + 1;
        if (decine == 10)
            decine = 0;
    }

    delay(1000);
}
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 16, 2016, 09:38 am
Grazie Claudio, in effetti la sintassi utilizzata non era corretta.
Ora sono fuori per un paio di giorni, nel weekend proverò e vi aggiornerò sulle evoluzioni :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 17, 2016, 09:39 pm
Code: [Select]
#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4
//---------------------------------------------------------------------
byte temp;
byte unita;
byte decine;
byte tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                    0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
//---------------------------------------------------------------------
void setup(){
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
    digitalWrite(CLOCK_PIN, LOW);
    unita = 0;
    decine = 0;
}
//---------------------------------------------------------------------
void loop(){
    if (decine != 0)
        temp = tabella[decine];
    else
        temp = 0;  // soppressione primo zero

    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[unita]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, temp);
    digitalWrite(LATCH_PIN, HIGH);

    unita = unita + 1;
    if (unita == 10)
    {
        unita = 0;
        decine = decine + 1;
        if (decine == 10)
            decine = 0;
    }

    delay(1000);
}

Niente, questo codice, sembra far funzionare solo le decine (su entrambi i display). Infatti una volta caricato, parte con i display spenti e dopo circa 10 secondi (tempo necessario a contare da 0 a 10 le unità) appare un 1 su entrambi i display... mi viene il serio dubbio di aver sbagliato qualcosa nei collegamenti... mah!

Sapreste dirmi dove sbaglio?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Dec 17, 2016, 09:51 pm
A mio modestissimo parere la prima cosa che devi fare, e nessuno può aiutarti in questo, è quella di controllare con grande scrupolosità ogni singolo collegamento, non tanto delle linee dirette ai display, visto che i segmenti si accendono correttamente, quanto di quelle della logica di controllo e di Arduino, basta un solo collegamento sbagliato per ottenere risultati impensabili. Solo dopo che potrai confermare con certezza assoluta che l'hardware è a posto, allora chi ti sta aiutando col software (e che non dispone dell'hardware, cosa che rende il compito estremamente difficile) può mettere in dubbio il proprio suggerimento.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 17, 2016, 11:28 pm
Il comportamento evidenziato "sembra" quello di registri comandati completamente in parallelo. Quindi il controllo da fare è verificare dove è collegato il pin 14 del registro delle unità. Il collegamento corretto è con il pin 9 del registro delle decine.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ExperimentUno on Dec 18, 2016, 04:36 am
Dov'è lo schema elettrico ?
Si suppone che hai messo i 595 in cascata.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 18, 2016, 11:22 am
Quote from: ExperimentUno
Si suppone che hai messo i 595 in cascata.
Il problema è proprio che si sta andando avanti a supposte.

Lo schema di partenza si trova al post #140 (http://forum.arduino.cc/index.php?topic=431577.msg3004285#msg3004285)

La prima prova di accensione al #190 (http://forum.arduino.cc/index.php?topic=431577.msg3030662#msg3030662) (qualcosa si brucia?)

Vengono suggerite prove intermedie per ridurre l'incertezza #194 (http://forum.arduino.cc/index.php?topic=431577.msg3032673#msg3032673), e successivamente, visto l'esito positivo, a triplicare il circuito con i componenti spravvissuti creando la serie #200 (http://forum.arduino.cc/index.php?topic=431577.msg3034104#msg3034104).

Dal post #207 (http://forum.arduino.cc/index.php?topic=431577.msg3037401#msg3037401) sembrerebbe che la catena sia finalmente stata fatta, ma una serie di prove software successive ogni volta diverse ha ricreato l'incertezza su cosa stia succedendo, e qui arriviamo al momento attuale, con due soli registri e due soli display, che continuano a comportarsi come se il segnale dati fosse in parallelo e non in serie.

E quindi... "riprendiamo dalla battuta quattro" (cit.)... i pin 11, 12, 14, sono collegati come in figura?

(http://stor.altervista.org/p.php?p=ghe_2shift.png)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Dec 18, 2016, 12:42 pm
Il problema è proprio che si sta andando avanti a supposte.
(http://www.counselingebenessere.it/wp-content/uploads/2014/11/ridere-a-crepapelle.jpeg)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 18, 2016, 05:50 pm
Lo schema di partenza si trova al post #140 (http://forum.arduino.cc/index.php?topic=431577.msg3004285#msg3004285)

Eccoci!! finalmente ho trovato l'inghippo, in effetti rifacendomi al suddetto schema, mi ero focalizzato solo sul 9 collegato al 14 di quello successivo senza considerare di collegare anche il 11 e il 12 con quelli successivi  :-[ ....

Ora il conteggio da 0 a 99 funziona.... :) Grazie Claudio_F.

Seguendo lo schema proposto ho messo a cascata anche un terzo shift e creato questo codice:
Code: [Select]

#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4
//---------------------------------------------------------------------
byte temp;
byte unita;
byte decine;
byte centinaia;
byte tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                    0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
//---------------------------------------------------------------------
void setup(){
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
    digitalWrite(CLOCK_PIN, LOW);
    unita = 0;
    decine = 0;
    centinaia = 0;
}
//---------------------------------------------------------------------
void loop(){
    if (decine != 0)
        temp = tabella[decine];
    else
        temp = 0;  // soppressione primo zero
   
    if (centinaia != 0)
        temp = tabella[centinaia];
    else
        temp = 0;  // soppressione secondo zero

    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[unita]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[decine]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, temp);
    digitalWrite(LATCH_PIN, HIGH);

    unita = unita + 1;
    if (unita == 10)
    {
        unita = 0;
        decine = decine + 1;
        if (decine == 10)
            decine = 0;
    }
    if (decine == 10)
    {
        decine = 0;
        centinaia = centinaia + 1;
        if (centinaia == 10)
            centinaia = 0;
    }

    delay(500);
}


Purtroppo il risultato non è quello sperato...:(

Il display più a dx accende dei segmenti a caso... non dei numeri veri e propri; dopo 9 cambiamenti di segmenti causali che si alternano (tra cui appare anche un 8 e per questo escluderei un danneggiamento del display), si accende il secondo display e inizia il conteggio fino a 9; una volta raggiunto il 10 il display delle decine riparte senza mai accendere il display delle centinaia...

Da notare che a cascata ho aggiunto il terzo shift senza collegare direttamente al clock e al latch i PIN 11 e 12 del secondo shift. Forse ho sbagliato qualcosa nello sketch?

Edit: non ho inserito il condensatore da Claudio_F indicato nello schema... potrebbe cambiare qualcosa? non credo...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Dec 18, 2016, 06:05 pm
Clock, latch, e se lo userai per spegnere il display anche enable, vanno TUTTI collegati a TUTTI gli shift in modo parallelo (tutti i pin 11 insieme, tutti i pin 12 insieme, e cosi via) ... e' solo il data che va in serie (entra da uno, esce e va al secondo, e cosi via)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Dec 18, 2016, 09:57 pm
Se il display a dx da dei simboli casuali probabilmente sono sbagliati i collegamenti al display
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ExperimentUno on Dec 19, 2016, 03:33 am
Potrebbe esser collegati malamente i 7 segmenti.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 19, 2016, 05:25 pm
Quote from: ghezzia
Purtroppo il risultato non è quello sperato...:(
Il risultato è semplicemente quello che hai fatto:
1) Da quanto dici non hai collegato i pin clock e latch all'ultimo registro, quindi l'ultimo registro (quello delle attuali unità) riceve solo segnali spuri visualizzati con segmenti random.
2) Hai disabilitato il blanking delle decine, per cui il display (delle decine) visualizza sempre le cifre, anche lo zero
3) L'incremento della variabile centinaia non avviene mai, in quanto la condizione dell'if che hai scritto risulta sempre falsa in quel punto.

In sostanza il flusso dell'esecuzione della parte di programma che incrementa le variabili come lo hai scritto tu è il seguente (u, d, e c sono le variabili unità decine centinaia abbreviate):
Code: [Select]
         |
        u+1
   no    |     si
  ---< u==10? >---
 |                |
 |               u=0
 |                |
 |               d+1
 |          no    |     si
 |         ---< d==10? >---
 |        |                |
 |        |               d=0
 |        |                |
 |         --------X-------
 |                 |
  -------X---------
         |
   no    |     si
  ---< d==10? >---
 |                |
 |               d=0
 |                |
 |               c+1
 |          no    |     si
 |         ---< c==10? >---
 |        |                |
 |        |               c=0
 |        |                |
 |         --------X-------
 |                 |
  -------X---------
         |

La parte in alto sono i due if che ho scritto io, la parte in basso quelli aggiunti da te. Il problema è che non si verificherà mai la condizione d==10 in quel punto, perché la variabile d viene già azzerata dentro i miei if.

Le soluzioni sono due, o porti l'aggiornamento delle centinaia sotto la condizione D==10 dei miei if, oppure si riscrive tutto senza if annidati, in sostanza, a scelta, uno dei due flussi seguenti:
Code: [Select]
          |
         u+1
    no    |     si
   ---< u==10? >---
  |                |
  |               u=0
  |                |
  |               d+1
  |          no    |     si
  |         ---< d==10? >---
  |        |                |
  |        |               d=0
  |        |                |
  |        |               c+1
  |        |          no    |     si
  |        |         ---< c==10? >---
  |        |        |                |
  |        |        |               c=0
  |        |        |                |
  |        |         -------X--------
  |        |                |
  |         --------X-------
  |                 |
   -------X---------
          |

Code: [Select]
          |
         u+1
    no    |     si
   ---< u==10? >---
  |                |
  |               u=0
  |                |
  |               d+1
  |                |
   -------X--------
    no    |     si
   ---< d==10? >---
  |                |
  |               d=0
  |                |
  |               c+1
  |                |
   -------X--------
    no    |     si
   ---< c==10? >---
  |                |
  |               c=0
  |                |
   -------X--------
          |

Per quanto riguarda il condensatore, diciamo che nel circuito definitivo, dove girano correnti impulsive elevate, meglio metterlo.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 20, 2016, 10:36 pm
Rieccoci!
dopo aver ricevuto i pezzi di ricambio e testato gli sketch da 0 a 99 su le due coppie di display e verificato che funzionassero correttamente su suggerimento di Claudio_F ho partorito il seguente codice:
Code: [Select]

#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4
//---------------------------------------------------------------------
byte temp;
byte unita;
byte decine;
byte centinaia;
byte migliaia;
byte tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                    0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
//---------------------------------------------------------------------
void setup(){
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
    digitalWrite(CLOCK_PIN, LOW);
    unita = 0;
    decine = 0;
    centinaia = 0;
}
//---------------------------------------------------------------------
void loop(){
    if (decine != 0)
        temp = tabella[decine];
    else
        temp = 0;  // soppressione primo zero

    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[unita]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[decine]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[centinaia]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[migliaia]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, temp);
    digitalWrite(LATCH_PIN, HIGH);

    unita = unita + 1;
    if (unita == 10)
    {
        unita = 0;
        decine = decine + 1;
       
          if (decine == 10)
     
      {
          decine = 0;
          centinaia = centinaia + 1;
         
            if (centinaia == 10)
        {
            centinaia = 0;
            migliaia = migliaia + 1;
           
              if (migliaia == 10)
          {
              migliaia = 0;
          }
        }
      }
       
    }

    delay(200);
}
 
 /*
 
          |
         u+1
    no    |     si
   ---< u==10? >---
  |                |
  |               u=0
  |                |
  |               d+1
  |          no    |     si
  |         ---< d==10? >---
  |        |                |
  |        |               d=0
  |        |                |
  |        |               c+1
  |        |          no    |     si
  |        |         ---< c==10? >---
  |        |        |                |
  |        |        |               c=0
  |        |        |                |
  |        |         -------X--------
  |        |                |
  |         --------X-------
  |                 |
   -------X---------
          |
         
  */
 


che però mi ha dato come risultato che le unità partivano da zero e aumentavano come se fossero le centinaia. Le decine, le centinaia e le migliaia invece procedevano all'unisono scandendo le unità da zero a 9... Fatti 10 giri quello che nella mia testa sono le unità aumentava di 1 :)

non vorrei che i vari shift non siano collegati correttamente tra loro.

Quello che ho fatto io è di replicare lo schema proposto al post #230 aggiungendo a dx 2 shift con gli stessi identici collegamenti già previsti per lo shift più a dx. E' corretto?

Oppure c'è un errore nello Sketch?

Edit: ho trovato un errore nel collegamento del terzo shift e in effetti adesso mi conta correttamente fino alle centinaia... le migliaia invece si comportano come le unità... il mistero si infittisce :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 21, 2016, 07:12 am
Adesso il problema è esclusivamente software (se metti un delay 1000 vedrai che quelle che pensi siano le unità in realtà sono le decine e aumentano ogni 10 secondi). Il programma fa esattamente quello che hai ordinato, gli incrementi delle quattro variabili sono corretti, ma durante il comando degli shift register le unità le perdi completamente, perché scorrono fuori dal registro di destra. Quello che è presente nei registri, e che vedi sui display nel momento in cui latch diventa HIGH, sono:

decine  migliaia  centinaia  decine


Ricorda sempre che ogni shiftOut spinge un byte nella catena di registri spostando tutti gli altri:

Code: [Select]

                     -------    -------    -------    -------
shiftOut unita    --| unita |--|       |--|       |--|       |
                     -------    -------    -------    -------

                     -------    -------    -------    -------
shiftOut deci     --| deci  |--| unita |--|       |--|       |
                     -------    -------    -------    -------

                     -------    -------    -------    -------
shiftOut cent     --| cent  |--| deci  |--| unita |--|       |
                     -------    -------    -------    -------

                     -------    -------    -------    -------
shiftOut migl     --| migl  |--| cent  |--| deci  |--| unita |
                     -------    -------    -------    -------

                     -------    -------    -------    -------
shiftOut temp     --| temp  |--| migl  |--| cent  |--| deci  |
                     -------    -------    -------    -------

Le decine che vedi più a sinistra hanno lo zero spento, tutte le altre cifre sono sempre accese.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 21, 2016, 02:23 pm
Ricorda sempre che ogni shiftOut spinge un byte nella catena di registri spostando tutti gli altri:

Code: [Select]

                     -------    -------    -------    -------
shiftOut unita    --| unita |--|       |--|       |--|       |
                     -------    -------    -------    -------

                     -------    -------    -------    -------
shiftOut deci     --| deci  |--| unita |--|       |--|       |
                     -------    -------    -------    -------

                     -------    -------    -------    -------
shiftOut cent     --| cent  |--| deci  |--| unita |--|       |
                     -------    -------    -------    -------

                     -------    -------    -------    -------
shiftOut migl     --| migl  |--| cent  |--| deci  |--| unita |
                     -------    -------    -------    -------

                     -------    -------    -------    -------
shiftOut temp     --| temp  |--| migl  |--| cent  |--| deci  |
                     -------    -------    -------    -------

Le decine che vedi più a sinistra hanno lo zero spento, tutte le altre cifre sono sempre accese.
Grazie Claudio_F ho capito quanto mi stai dicendo e stasera proverò a mettere 1000 millisecondi... non sono del tutto certo però di essermi spiegato nel modo corretto. Quello che vedevo io era:

Code: [Select]

        -------     -------     -------     -------
    --| unita |--| migl  |--| cent  |--| deci  |
        -------     -------     -------     -------


sono quasi certo del fatto che quelle a sx fossero unità perchè andavano abbastanza veloci.... ma forse non così tanto :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Dec 21, 2016, 04:03 pm
Non e' che in qualche punto hai dato un byte in piu allo shiftout ?

Perche' la sequenza sarebbe corretta, solo "spostata" di una posizione ...

Voglio dire, se tu butti fuori unita'- decine - centinaia - migliaia per ogni refresh, in sequenza ... se per qualche motivo il primo ciclo butti fuori unita' - decine - centinaia - migliaia - unita', ti si posizionano cosi, e poi ad ogni successivo ciclo rimangono spostati ... (per quello io invece consiglio sempre di usarlo, quel maledetto pin di clear dei registri ... cosi ad ogni singolo ciclo si fa clear -> sequenza di bytes -> latch, e si e' sicuri di partire con i registri azzerati, e se c'e' qualche errore lo si capisce subito :P)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 21, 2016, 04:19 pm
se tu butti fuori unita'- decine - centinaia - migliaia per ogni refresh, in sequenza
mi sembrava fosse quello che ho fatto, solo che io vedevo (stando alla velocità con la quale scorrevano le cifre) partendo da sx: unità - centinaia - decine - unità ancora... (cioè alle due estremità c'era il conteggio in contemporanea)

Se fosse accaduto quello che dici tu allora avrei dovuto vedere: decine - migliaia - centinaia - decine.... almeno credo. Solo che lo scorrimento delle decine era troppo veloce per essere una ogni 2 secondi (200 millisecondi ogni unità)

Comunque stasera provo mettendo il delay a 1000 e magari capiamo meglio cosa cavolo mi mostrano questi benedetti display :D.

Comunque preparatevi perchè aggiustato il circuito e lo sketch dovrò aggiungere l'RCT :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Dec 21, 2016, 06:22 pm
... Comunque preparatevi ...
... siamo gia pronti ... e' un pezzo, che siamo qui ad aspettare fuori dalla tua porta con pece e piume ... (:P :D)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 21, 2016, 07:08 pm
Eccomi!!
Eureka Eureka!!

Ho rivisto il codice come segue e tutto funziona correttamente :) :
Code: [Select]

#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4
//---------------------------------------------------------------------
byte temp;
byte unita;
byte decine;
byte centinaia;
byte migliaia;
byte tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                    0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
//---------------------------------------------------------------------
void setup(){
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
    digitalWrite(CLOCK_PIN, LOW);
    unita = 0;
    decine = 0;
    centinaia = 0;
}
//---------------------------------------------------------------------
void loop(){
    if (decine != 0)
        temp = tabella[decine];
    else
        temp = 0;  // soppressione primo zero

    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[unita]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[decine]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[centinaia]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[migliaia]);

    digitalWrite(LATCH_PIN, HIGH);

    unita = unita + 1;
    if (unita == 10)
    {
        unita = 0;
        decine = decine + 1;
       
          if (decine == 10)
     
      {
          decine = 0;
          centinaia = centinaia + 1;
         
            if (centinaia == 10)
        {
            centinaia = 0;
            migliaia = migliaia + 1;
           
              if (migliaia == 10)
          {
              migliaia = 0;
          }
        }
      }
       
    }

    delay(500);
}



ho semplicemente tolto lo ShiftOut della variabile Temp...

Per esercitarmi ho provato però anche a fare il conto alla rovescia... da 9999 a zero. Solo che con il seguente codice mi fa apparire 9 sulle migliaia, centinaia e decine e sulle unità fa dei giochi di segmenti strani... senza tuttavia far scendere le cifre degli altri tre display.

Code: [Select]

#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4
//---------------------------------------------------------------------
byte temp;
byte unita;
byte decine;
byte centinaia;
byte migliaia;
byte tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                    0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
//---------------------------------------------------------------------
void setup(){
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
    digitalWrite(CLOCK_PIN, LOW);
    unita = 9;
    decine = 9;
    centinaia = 9;
    migliaia = 9;
}
//---------------------------------------------------------------------
void loop(){
    if (decine != 0)
        temp = tabella[decine];
    else
        temp = 9;  // soppressione primo zero

    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[unita]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[decine]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[centinaia]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[migliaia]);

    digitalWrite(LATCH_PIN, HIGH);

    unita = unita - 1;
    if (unita == -1)
    {
        unita = 9;
        decine = decine - 1;
       
          if (decine == -1)
     
      {
          decine = 9;
          centinaia = centinaia - 1;
         
            if (centinaia == -1)
        {
            centinaia = 9;
            migliaia = migliaia - 1;
           
              if (migliaia == -1)
          {
              migliaia = 9;
          }
        }
      }
       
    }

    delay(200);
}


Ora che sono pronto (si fa per dire) come inserisco l'RTC? :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 21, 2016, 07:13 pm
Quote from: Etemenanki
poi ad ogni successivo ciclo rimangono spostati ... (per quello io invece consiglio sempre di usarlo, quel maledetto pin di clear dei registri ... cosi ad ogni singolo ciclo si fa clear -> sequenza di bytes -> latch, e si e' sicuri di partire con i registri azzerati, e se c'e' qualche errore lo si capisce subito :P)
Dissento... il segnale latch è sufficiente a sincronizzare la trasmissione SE ogni volta si buttano fuori esattamente N byte (con N pari al numero di registri) confermandoli con il latch, allora quegli N byte riempiono sempre correttamente tutti i registri (salvo guasti o errori di cablaggio).

L'azzeramento può servire per far assumere uno stato noto alle uscite nel caso in cui non si facciano scorrere tutti i bit in un colpo solo, ma pochi per volta con latch intermedi (in altri shift register l'azzeramento è del tutto assente e si usano allo stesso modo).

Quote from: ghezzia
Per esercitarmi ho provato però anche a fare il conto alla rovescia... da 9999 a zero. Solo che con il seguente codice mi fa apparire 9 sulle migliaia, centinaia e decine e sulle unità fa dei giochi di segmenti strani... senza tuttavia far scendere le cifre degli altri tre display.
È spiegato alla fine del post #206 (http://forum.arduino.cc/index.php?topic=431577.msg3037026#msg3037026)  ;)

Comunque ormai siamo al termine del primo step di cui si parlava nel post #17 (http://forum.arduino.cc/index.php?topic=431577.msg2977054#msg2977054), il secondo step sarebbe stato: "provare a fare ad esempio conteggio avanti e indietro su un solo display premendo due pulsanti"... perché come lo regoli l'orologio se non si prevedono dei pulsanti? Quanti? Con che funzione?

Considera che un "orologio parziale", nel senso di non precisissimo ma perfettamente funzionante, si può realizzare anche senza RTC, sfruttando solo la funzione millis che conta i millisecondi dall' accensione (ogni 60000 millisecondi è passato un minuto).




Poi, queste righe perché lasci dentro al codice? A cosa servono?

Code: [Select]
if (decine != 0)
    temp = tabella[decine];
else
    temp = 9;  // soppressione primo zero




E a margine ma non meno importante se si vuole che altri leggano il proprio codice, va curata l'indentazione del testo, cioè deve essere chiaro a colpo d'occhio senza bisogno di contare le parentesi che cosa è contenuto/subordinato a che cosa. Nel caso in questione prendiamo la parte:
Code: [Select]
unita = unita - 1;
if (unita == -1)
{
    unita = 9;
    decine = decine - 1;
  
      if (decine == -1)
 
  {
      decine = 9;
      centinaia = centinaia - 1;
    
        if (centinaia == -1)
    {
        centinaia = 9;
        migliaia = migliaia - 1;
      
          if (migliaia == -1)
      {
          migliaia = 9;
      }
    }
  }
  
}

e "per gioco" togliamo le parentesi graffe di delimitazione dei blocchi di istruzioni... più o meno si può intuire che ci sono degli if con "dentro" qualcosa, ma ad esempio già per il secondo if non si capisce se deve eseguire solo l'istruzione decine = 9 o anche le seguenti, è tutto incolonnato alla pressapoco.
Code: [Select]
unita = unita - 1;
if (unita == -1)
    unita = 9;
    decine = decine - 1;
      if (decine == -1)
      decine = 9;
      centinaia = centinaia - 1;
        if (centinaia == -1)
        centinaia = 9;
        migliaia = migliaia - 1;
          if (migliaia == -1)
          migliaia = 9;

Se invece le parti "contenute" in qualcosa si incolonnano di 4 posizioni a destra, allora non ci sono più dubbi, è chiarissimo cosa è contenuto in cosa:
Code: [Select]
unita = unita - 1;
if (unita == -1)
    unita = 9;
    decine = decine - 1;
    if (decine == -1)
        decine = 9;
        centinaia = centinaia - 1;
        if (centinaia == -1)
            centinaia = 9;
            migliaia = migliaia - 1;
            if (migliaia == -1)
                migliaia = 9;

Quindi basta rimettere le parentesi obbligatorie per necessità sintattiche del compilatore e si ottiene il codice indentato in modo corretto, facilmente leggibile da tutti:
Code: [Select]
unita = unita - 1;
if (unita == -1)
{
    unita = 9;
    decine = decine - 1;
    if (decine == -1)
    {
        decine = 9;
        centinaia = centinaia - 1;
        if (centinaia == -1)
        {
            centinaia = 9;
            migliaia = migliaia - 1;
            if (migliaia == -1)
            {
                migliaia = 9;
            }
        }
    }
}

Il trucco è quindi sempre quello di pensare: "se lo scrivessi senza parentesi sarebbe lo stesso comprensibile da tutti?" Se la risposta è no, allora non è scritto bene... e la gente non avrà voglia di perdere tempo a contare le parentesi di qualcun'altro ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Dec 21, 2016, 07:27 pm
... SE ogni volta si buttano fuori esattamente N byte ...
... appunto ... ma se per un motivo qualsiasi non succede ? ... ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 21, 2016, 07:55 pm
... appunto ... ma se per un motivo qualsiasi non succede ? ... ;)
Allora sarebbe un guasto o un errore software, non una normale condizione di funzionamento. Cioè, anche azzerare i registri non migliorerebbe granché la situazione, si avrebbe lo stesso una visualizzazione sbagliata :P
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 22, 2016, 11:51 am
perché come lo regoli l'orologio se non si prevedono dei pulsanti? Quanti? Con che funzione?

Considera che un "orologio parziale", nel senso di non precisissimo ma perfettamente funzionante, si può realizzare anche senza RTC, sfruttando solo la funzione millis che conta i millisecondi dall' accensione (ogni 60000 millisecondi è passato un minuto).
Si in effetti potrei già impostarlo con un prossimo sketch che farò stasera... spero. In relazione ai pulsanti ne metterei solo 2 (uno per i minuti e uno per le ore) che ne dite? a che punto dello sketch posso inserire il comando? faccio un "if" dopo tutto il loop?

Poi, queste righe perché lasci dentro al codice? A cosa servono?

Code: [Select]
if (decine != 0)
    temp = tabella[decine];
else
    temp = 9;  // soppressione primo zero

Mah!! ce le ho trovate prima.... le ho lasciate :D

E a margine ma non meno importante se si vuole che altri leggano il proprio codice, va curata l'indentazione del testo, cioè deve essere chiaro a colpo d'occhio senza bisogno di contare le parentesi che cosa è contenuto/subordinato a che cosa.
Messaggio ricevuto ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 22, 2016, 11:42 pm
ciao,
rieccomi.
Premetto che non ho ancora testato il codice di seguito illustrato però ci ho ragionato un minimo e vorrei sapere se ho ragionato in modo corretto:
Code: [Select]

#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN 4
#define BUTTON_PIN1 5
#define BUTTON_PIN2 6
//---------------------------------------------------------------------
byte temp;
byte unita;
byte decine;
byte centinaia;
byte migliaia;
byte tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                    0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
//---------------------------------------------------------------------
void setup(){
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
    pinMode(BUTTON_PIN1, INPUT);
    pinMode(BUTTON_PIN2, INPUT);
    digitalWrite(CLOCK_PIN, LOW);
    unita = 0;
    decine = 0;
    centinaia = 0;
}
//---------------------------------------------------------------------
void loop(){

    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[unita]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[decine]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[centinaia]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[migliaia]);

    digitalWrite(LATCH_PIN, HIGH);
    digitalWrite(BUTTON_PIN1, HIGH);
    digitalWrite(BUTTON_PIN2, HIGH);

    unita = unita + 1;
    if (unita == 10)
    {
        unita = 0;
        decine = decine + 1;
        
          if (decine == 6)
          {
              decine = 0;
              centinaia = centinaia + 1;
          
              if (centinaia == 10)
              {
                  centinaia = 0;
                  migliaia = migliaia + 1;
            
                  if (migliaia == 3)
                  {
                      migliaia = 0;
                      }
                  }
              }    
          }

    delay(1000);
        if (BUTTON_PIN1 == LOW)
        {
            unita = +1;
            if (BUTTON_PIN2 == LOW)
            {
                centinaia = +1;
            }
        }
    }



Ho definito all'inizio due pin sui quali collegare due pulsanti(spero che possa andare bene definire due pin casuali)
Successivamente ho dichiarato che i due pulsanti fossero di default HIGH
Infine, ho portato alcune modifiche al loop definendo che, se le decine (che saranno i dieci minuti a giochi fatti) superano 5 devono tornare a 0, che se le migliaia (che saranno le decine di h a giochi fatti) superano 2 devono tornare a 0
Sempre nel loop ho aggiunto gli if nel caso in cui venga schiacciato il pulsante....

Non lo ancora testato anche perché capire come inserire i pulsanti (che lascerei all'esterno degli shift) nel circuito sarà un cinema :).

Pensate possa funzionare? E' giusto lasciare i pulsanti all'esterno degli shift?

P.s. in tutto ciò non ho ancora valutato dove mettere i due puntini centrali dell'orologio (che, immagino, lampeggino ogni 1000 millisecondi a prescindere che siano sincronizzati "realmente") :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 23, 2016, 10:02 am
P.S.: é editato meglio il codice? più comprensibile? :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 23, 2016, 08:30 pm
Quote from: ghezzia
Ho definito all'inizio due pin sui quali collegare due pulsanti(spero che possa andare bene definire due pin casuali)
Due pin digitali qualsiasi vanno bene, ma i nomi BUTTON_PIN1 e BUTTON_PIN2 non permettono di capire in modo autoevidente a cosa servono, cioè chiamarli PAPERINO e TOPOLINO era la stessa cosa. Due nomi come MIN_PULS e HOUR_PULS invece si comprende subito a cosa si riferiscono:
Code: [Select]
#define MIN_PULS 5
#define HOUR_PULS 6

Quote
Successivamente ho dichiarato che i due pulsanti fossero di default HIGH
Questo non ha senso, intanto non si scrive sugli ingressi con digitalWrite, ma si leggono con digitalRead (https://www.arduino.cc/en/Reference/DigitalRead), e poi lo stato di riposo è determinato come sono collegati all'esterno, cioè se si collega une resistenza di pull-up (riposo alto) o di pull-down (riposo basso). Siccome gli ingressi possono già essere configurati con una resistenza di pull-up interna, allora all'esterno è sufficiente collegare solamente un pulsante che chiude verso GND:
Code: [Select]
void setup(){
  pinMode(MIN_PULS, INPUT_PULLUP);
  pinMode(HOUR_PULS, INPUT_PULLUP);
}

Quote
Infine, ho portato alcune modifiche al loop definendo che, se le decine (che saranno i dieci minuti a giochi fatti) superano 5 devono tornare a 0, che se le migliaia (che saranno le decine di h a giochi fatti) superano 2 devono tornare a 0
Non basta, se non si tiene conto anche delle unità di ore si arriva alle 29.


Quote
Sempre nel loop ho aggiunto gli if nel caso in cui venga schiacciato il pulsante....
Però hai messo quello della regolazione delle ore all'interno (subordinato) di quello della regolazione dei minuti, questo vuol dire che le ore si regolano solo se contemporaneamente è premuto anche il pulsante dei minuti.


Quote
P.s. in tutto ciò non ho ancora valutato dove mettere i due puntini centrali dell'orologio
O si comandano con un ulteriore pin digitale di uscita di Arduino (come previsto nello schema del post #140 (http://forum.arduino.cc/index.php?topic=431577.msg3004285#msg3004285)), oppure si usa il bit zero di uno dei quattro byte trasmessi agli shift-register, e quindi si usa l'uscita QH (pin 7) di quel registro per pilotare i LED dei punti attraverso un ULN2803 (e anche questo c'è nello schema #140 (http://forum.arduino.cc/index.php?topic=431577.msg3004285#msg3004285))

Nel grafico del post #202 (http://forum.arduino.cc/index.php?topic=431577.msg3034656#msg3034656) ipotizzavo infatti di usare il bit zero del registro delle unità di ore per risparmiare un pin di arduino. Per avere i punti accesi è sufficiente aggiungere 1 al byte delle unità di ore da trasmettere con shiftOut, se non si aggiunge 1 invece i punti saranno spenti.


Quote
P.S.: é editato meglio il codice? più comprensibile?
Tutto il blocco sotto il delay è troppo spostato a destra, l'ultima parentesi di chiusura della funzione loop dovrebbe infatti trovarsi nella prima colonna. Anche le quattro parentesi sotto migliaia = 0 andrebbero spostate a sinistra incolonnandole sotto le corrispondenti parentesi aperte. Comunque questa volta anche togliendo le parentesi resta tutto comprensibile, quindi molto meglio  ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 23, 2016, 11:41 pm
Allora: ho testato lo sketch e l'ho modificato in questo modo:
Code: [Select]

#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN 4
#define MIN_PULS 5
#define HOUR_PULS 6
//---------------------------------------------------------------------
byte temp;
byte unita;
byte decine;
byte centinaia;
byte migliaia;
byte tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                    0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
//---------------------------------------------------------------------
void setup(){
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
    pinMode(MIN_PULS, INPUT_PULLUP);
    pinMode(HOUR_PULS, INPUT_PULLUP);
    digitalWrite(CLOCK_PIN, LOW);
    unita = 0;
    decine = 0;
    centinaia = 0;
}
//---------------------------------------------------------------------
void loop(){

    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[unita]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[decine]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[centinaia]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[migliaia]);

    digitalWrite(LATCH_PIN, HIGH);
    digitalWrite(MIN_PULS, HIGH);
    digitalWrite(HOUR_PULS, HIGH);

    unita = unita + 1;
    if (unita == 10)
    {
        unita = 0;
        decine = decine + 1;
       
          if (decine == 6)
          {
              decine = 0;
              centinaia = centinaia + 1;
         
              if (centinaia == 10)
              {
                  centinaia = 0;
                  migliaia = migliaia + 1;
           
                  if (migliaia < 3)
                  {
                      migliaia = migliaia + 1;
                      }
                      else {
                        centinaia = 0;
                        migliaia = 0;
                      }
                  }
              }   
          }

    delay(500);
        if (MIN_PULS == LOW)
        {
            unita = +1;
        }
        if (HOUR_PULS == LOW)
        {
            centinaia = +1;
        }
}



Funziona tutto correttamente fino alle 23:59, solo che anziché azzerarsi dopo le 23:59 prosegue fino alle 29:59 quando poi si azzera. Penso di aver capito il motivo che riguarda il fatto che gli dico prima di contare le unità di ore fino a 10 poi quando gli dico di azzerarle se le decine di ore superano il 2 lui prende in considerazione quello che gli ho detto prima.... solo che non saprei proprio come fare dal momento che, finché le decine di ore sono < a 2 le unità di ore possono arrivare fino a 9, mentre quando sono = 2 devono arrivare al massimo fino a 4....

Esistono funzioni particolari tipo se le decine di ore sono < di 2 conta fino a 9 altrimenti fino a 4?

Inoltre ho provato ad inserire nella breadboard anche i due pulsanti per la regolazione di ore e minuti ma, o sbaglio lo sketch o sbaglio i collegamenti, fatto sta che neanche quelli mi funzionano

I collegamenti li ho fatti come da schema allegato, dove però il 5v e il GND vanno su due linee all'interno degli stessi collegamenti fatti per il prototipo (allego anche foto).

pensate sia quello il problema?

p.s. io sto ancora viaggiando con la sola alimentazione USB. Conta qualcosa? i display si accendono tranquillamente...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 24, 2016, 10:18 am
Quote
Esistono funzioni particolari tipo se le decine di ore sono < di 2 conta fino a 9 altrimenti fino a 4?
Se / altrimenti.... sembrerebbe un if :)
Code: [Select]
++centinaia;
if (centinaia == 4  &&  migliaia == 2){
    centinaia = 0;
    migliaia = 0;
}
else if (centinaia == 10) {
    centinaia = 0;
    ++migliaia;
}



Quote
I collegamenti li ho fatti come da schema allegato, dove però il 5v e il GND vanno su due linee all'interno degli stessi collegamenti fatti per il prototipo (allego anche foto).
Ok, li hai collegati con una resistenza di pull-down esterna... quindi la condizione di riposo è LOW e non va abilitata la pull-up interna.




Quote
pensate sia quello il problema?
No, il problema è questo:
Quote from: ghezzia
Code: [Select]

if (MIN_PULS == LOW)
{
    unita = +1;
}
if (HOUR_PULS == LOW)
{
    centinaia = +1;
}

In pratica hai scritto:
Code: [Select]
if (5 == 0)
{
    unita = 1;
}
if (6 == 0)
{
    centinaia = 1;
}

...ma come dicevo nel post precedente gli ingressi si leggono con digitalRead (e visto che hai realizzato una configurazione pull-down, cioè riposo LOW, quando i pulsanti sono premuti il livello è HIGH):
Code: [Select]

if (digitalRead(MIN_PULS) == HIGH)
{
    ......
}
if (digitalRead(HOUR_PULS) == HIGH)
{
    ......
}

...inoltre non basta incrementare unità e centinaia, bisogna di nuovo controllare che non sforino con i valori... hai da fare in questo week end? :D

Buone feste  :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 24, 2016, 05:31 pm
Eccolo!! :)
Grazie mille almeno le 24h le ho sistemate ;) e questo è il regalo di natale :)

Di seguito il codice

Code: [Select]

#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN 4
#define MIN_PULS 5
#define HOUR_PULS 6
//---------------------------------------------------------------------
byte temp;
byte unita;
byte decine;
byte centinaia;
byte migliaia;
byte tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                    0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
//---------------------------------------------------------------------
void setup(){
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
    pinMode(MIN_PULS, INPUT_PULLUP);
    pinMode(HOUR_PULS, INPUT_PULLUP);
    digitalWrite(CLOCK_PIN, LOW);
    unita = 0;
    decine = 0;
    centinaia = 0;
}
//---------------------------------------------------------------------
void loop(){

    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[unita]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[decine]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[centinaia]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[migliaia]);

    digitalWrite(LATCH_PIN, HIGH);
    digitalWrite(MIN_PULS, LOW);
    digitalWrite(HOUR_PULS, LOW);

    unita = unita + 1;
    if (unita == 10) {
        unita = 0;
        decine = decine + 1;
       
          if (decine == 6) {
              decine = 0;
              centinaia = centinaia + 1;
         
              if (centinaia == 4 && migliaia == 2) {
                    centinaia = 0;
                    migliaia = 0;
                }
              else if (centinaia == 10){
                    centinaia = 0;
                    migliaia = migliaia + 1;
                }                 
           }   
     }

    delay(500);
        if (digitalRead(MIN_PULS) == HIGH)
        {
            unita = +1;
        }
        if (digitalRead(HOUR_PULS) == HIGH)
        {
            centinaia = +1;
        }
   }


Purtroppo ancora non funzionano i pulsanti... ho ricontrollato i collegamenti e mi sembrano corretti.

Cosa non va?

Buone feste a tutti quanti! e non mangiate troppo panettone :D
Alex
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 25, 2016, 11:28 pm
Quote
Cosa non va?
Come detto nei post precedenti, questo (hai lasciato abilitate le pull-up interne nonostante all'esterno ci siano collegate delle pull-down):
Code: [Select]
pinMode(MIN_PULS, INPUT_PULLUP);
pinMode(HOUR_PULS, INPUT_PULLUP);

questo (continui a scrivere su pin configurati come ingressi come se fossero delle uscite):
Code: [Select]
digitalWrite(MIN_PULS, LOW);
digitalWrite(HOUR_PULS, LOW);

e questo (che operazione fai con le variabili 'unita' e 'centinaia' ?):
Code: [Select]
if (digitalRead(MIN_PULS) == HIGH)
{
    unita = +1;
}
if (digitalRead(HOUR_PULS) == HIGH)
{
    centinaia = +1;
}




Comunque visto, che fin qui l'hardware dovrebbe essere ok, questo dovrebbe funzionare (il segnale per i punti esce dal pin 7 del registro 'centinaia'):
Code: [Select]
#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4
#define MIN_PULS  5
#define HOUR_PULS 6
//-----------------------------------------------------------------------------
// Variabili di lavoro globali (31 byte)
//-----------------------------------------------------------------------------
typedef struct {
    uint32_t time;
    byte stat;
} button_t;

button_t minPulsData = {millis(), 0};   // dati pulsante minuti
button_t hourPulsData = {millis(), 0};  // dati pulsante ora
uint32_t tempoPunti = millis();         // tempi di partenza
uint32_t tempoUnMinuto = millis();
byte     point = 1;                     // variabile per lampeggio punti
byte     minuti = 0;                    // minuti correnti
byte     ore = 0;                       // ore correnti
byte     tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                        0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
//-----------------------------------------------------------------------------
// Rileva click su tasti con debounch 50 ms e autorepeat dopo 1 s
//-----------------------------------------------------------------------------
bool click(byte pin, ::button_t* data){
    if (!digitalRead(pin)){         // se non premuto
        data->time = millis();
        data->stat = 0;
        return false;
    }
    uint32_t elapsed = millis() - data->time;
    switch (data->stat){
        case 0:
            if (elapsed >= 50){     // primo click detect dopo 50 ms
                data->stat = 1;
                data->time = millis();
                return true;
            }
            return false;

        case 1:
            if (elapsed >= 1000){   // inizio autorepeat dopo 1 s
                data->stat = 2;
                data->time = millis();
                return true;
            }
            return false;

        case 2:
            if (elapsed >= 100){    // successivi click ogni 100 ms
                data->time += 100;
                return true;
            }
            return false;
    }
}
//-----------------------------------------------------------------------------
void blinkPunti(){
    if (millis() - tempoPunti >= 500){
        tempoPunti += 500;
        point ^= 1;
    }
}
//-----------------------------------------------------------------------------
void avanzaOra(){
    ore = (ore + 1) % 24;
}
//-----------------------------------------------------------------------------
void avanzaMinuto(){
    if (++minuti == 60){
        minuti = 0;
        avanzaOra();
    }
}
//-----------------------------------------------------------------------------
void aggiornaTempo(){
    if (millis() - tempoUnMinuto  >= 60000){
        tempoUnMinuto += 60000;
        avanzaMinuto();
    }
}
//-----------------------------------------------------------------------------
// Scrittura su display con blanking primo zero (tempo richiesto 0.6 ms)
//-----------------------------------------------------------------------------
void visualizza(){
    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[minuti%10]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[minuti/10]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[ore%10]|point);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, (ore/10) ? tabella[ore/10] : 0);
    digitalWrite(LATCH_PIN, HIGH);
}
//-----------------------------------------------------------------------------
// Impostazione sistema
//-----------------------------------------------------------------------------
void setup(){
    pinMode(MIN_PULS,  INPUT);
    pinMode(HOUR_PULS, INPUT);
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN,  OUTPUT);
    digitalWrite(CLOCK_PIN, LOW);
    visualizza();                   // prima scrittura su display
}
//-----------------------------------------------------------------------------
// Ciclo principale (eseguito circa 1500 volte al secondo)
//-----------------------------------------------------------------------------
void loop(){
    aggiornaTempo();                // ogni minuto aggiorna ora corrente
    blinkPunti();                   // lampeggio punti 1 Hz

    if (click(MIN_PULS, &minPulsData)){     // se premuto puls.minuti
        tempoUnMinuto = millis();           // azzera secondi
        avanzaMinuto();                     // regola minuti
    }

    if (click(HOUR_PULS, &hourPulsData)){   // se premuto puls.ore
        tempoUnMinuto = millis();           // azzera secondi
        avanzaOra();                        // regola ora
    }

    visualizza();                   // aggiorna display
}
//-----------------------------------------------------------------------------
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ExperimentUno on Dec 26, 2016, 05:40 pm
Mi sa che a questo orologio ci va aggiunto anche il contatore degli anni. Dal tempo che ci va per finirlo :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 26, 2016, 06:06 pm
Mi sa che a questo orologio ci va aggiunto anche il contatore degli anni
Questo sul retro ha la lancetta dei 100 anni e la scala dei mille:

(http://www.0-100.it/wp-content/uploads/2012/04/urwerk_ur_1001_0-100_3.jpg)


...comunque l'ultimo codice ci fa risparmiare un bel po'di strada... il passaggio all'RTC è quasi immediato una volta testate la sua lettura e scrittura. Però non sappiamo ancora con quale RTC abbiamo a che fare.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ExperimentUno on Dec 26, 2016, 06:20 pm
Si potrebbe usare il softRTC :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Dec 26, 2016, 06:37 pm
È già softRTC, funzionante e completo di regolazioni con autorepeat, l'unica cosa è che si resetta togliendo l'alimentazione.

È ovviamente basato sulla lettura di millis(), che non so quanto sia imprecisa, perché provando a generare un'onda quadra a qualche kHz la leggo strumentalmente precisa al decimo di Hz... quindi diciamo che non è macroscopicamente imprecisa (a parte un jitter di 1ms sui fronti, ma usando micros() si riduce anche questo).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 26, 2016, 06:57 pm
Buon natale a tutti
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 26, 2016, 06:58 pm
Grazie dello sketch Claudio_F , appena rientro a casa proverò e vi saprò dire.
Sono all'estero per lavoro fino al 30!

In merito all'RTC ho già comprato i DS3231 con la batteria... (ne ho comprati 5 per sicurezza :D) vediamo cosa viene fuori. Ho visto che esistono anche delle librerie.

Per il momento torno a riprendermi dai pasti natalizi ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Dec 26, 2016, 08:43 pm
È già softRTC, funzionante e completo di regolazioni con autorepeat, l'unica cosa è che si resetta togliendo l'alimentazione.

È ovviamente basato sulla lettura di millis(), che non so quanto sia imprecisa, perché provando a generare un'onda quadra a qualche kHz la leggo strumentalmente precisa al decimo di Hz... quindi diciamo che non è macroscopicamente imprecisa (a parte un jitter di 1ms sui fronti, ma usando micros() si riduce anche questo).
Ovviamente molto dipende dal clock, usando un Arduino basato su un risuonatore ceramico, l'imprecisione è sicura...l'ideale sarebbe creare uno stand-alone basato su un oscillatore quarzato, possibilmente termocompensato, qualche euro di spesa in più ma la stabilità è garantita e la precisione più che sufficiente.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 30, 2016, 10:07 am
Rieccomi ragazzi!
sono rientrato dalla grecia oggi, ma prima di domani non riuscirò a mettere mano al prototipo, solo una domanda, i led dei due punti centrali, li collego in serie giusto? oppure li strutturo come i display facendo l'anodo comune?
A domani
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Dec 30, 2016, 11:28 am
Sono in serie, con una resistenza calcolata per la giusta corrente (ma nei test puoi usarne anche uno solo, a te interessa solo vedere se lampeggia correttamente ;))
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 30, 2016, 11:47 am
Sono in serie, con una resistenza calcolata per la giusta corrente (ma nei test puoi usarne anche uno solo, a te interessa solo vedere se lampeggia correttamente ;))
Si in effetti.... :)
grazie
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 03, 2017, 09:29 pm
e visto, che fin qui l'hardware dovrebbe essere ok, questo dovrebbe funzionare (il segnale per i punti esce dal pin 7 del registro 'centinaia'):
Code: [Select]
#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4
#define MIN_PULS  5
#define HOUR_PULS 6
//-----------------------------------------------------------------------------
// Variabili di lavoro globali (31 byte)
//-----------------------------------------------------------------------------
typedef struct {
    uint32_t time;
    byte stat;
} button_t;

button_t minPulsData = {millis(), 0};   // dati pulsante minuti
button_t hourPulsData = {millis(), 0};  // dati pulsante ora
uint32_t tempoPunti = millis();         // tempi di partenza
uint32_t tempoUnMinuto = millis();
byte     point = 1;                     // variabile per lampeggio punti
byte     minuti = 0;                    // minuti correnti
byte     ore = 0;                       // ore correnti
byte     tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                        0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
//-----------------------------------------------------------------------------
// Rileva click su tasti con debounch 50 ms e autorepeat dopo 1 s
//-----------------------------------------------------------------------------
bool click(byte pin, ::button_t* data){
    if (!digitalRead(pin)){         // se non premuto
        data->time = millis();
        data->stat = 0;
        return false;
    }
    uint32_t elapsed = millis() - data->time;
    switch (data->stat){
        case 0:
            if (elapsed >= 50){     // primo click detect dopo 50 ms
                data->stat = 1;
                data->time = millis();
                return true;
            }
            return false;

        case 1:
            if (elapsed >= 1000){   // inizio autorepeat dopo 1 s
                data->stat = 2;
                data->time = millis();
                return true;
            }
            return false;

        case 2:
            if (elapsed >= 100){    // successivi click ogni 100 ms
                data->time += 100;
                return true;
            }
            return false;
    }
}
//-----------------------------------------------------------------------------
void blinkPunti(){
    if (millis() - tempoPunti >= 500){
        tempoPunti += 500;
        point ^= 1;
    }
}
//-----------------------------------------------------------------------------
void avanzaOra(){
    ore = (ore + 1) % 24;
}
//-----------------------------------------------------------------------------
void avanzaMinuto(){
    if (++minuti == 60){
        minuti = 0;
        avanzaOra();
    }
}
//-----------------------------------------------------------------------------
void aggiornaTempo(){
    if (millis() - tempoUnMinuto  >= 60000){
        tempoUnMinuto += 60000;
        avanzaMinuto();
    }
}
//-----------------------------------------------------------------------------
// Scrittura su display con blanking primo zero (tempo richiesto 0.6 ms)
//-----------------------------------------------------------------------------
void visualizza(){
    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[minuti%10]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[minuti/10]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[ore%10]|point);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, (ore/10) ? tabella[ore/10] : 0);
    digitalWrite(LATCH_PIN, HIGH);
}
//-----------------------------------------------------------------------------
// Impostazione sistema
//-----------------------------------------------------------------------------
void setup(){
    pinMode(MIN_PULS,  INPUT);
    pinMode(HOUR_PULS, INPUT);
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN,  OUTPUT);
    digitalWrite(CLOCK_PIN, LOW);
    visualizza();                   // prima scrittura su display
}
//-----------------------------------------------------------------------------
// Ciclo principale (eseguito circa 1500 volte al secondo)
//-----------------------------------------------------------------------------
void loop(){
    aggiornaTempo();                // ogni minuto aggiorna ora corrente
    blinkPunti();                   // lampeggio punti 1 Hz

    if (click(MIN_PULS, &minPulsData)){     // se premuto puls.minuti
        tempoUnMinuto = millis();           // azzera secondi
        avanzaMinuto();                     // regola minuti
    }

    if (click(HOUR_PULS, &hourPulsData)){   // se premuto puls.ore
        tempoUnMinuto = millis();           // azzera secondi
        avanzaOra();                        // regola ora
    }

    visualizza();                   // aggiorna display
}
//-----------------------------------------------------------------------------

Rieccomi, sono finalmente riuscito a testare il codice... grazie ;).

E sembra funzionare tutto: minuti, decine, ore e... le 24h non ho avuto abbastanza tempo :). comunque do per scontato che funzionino correttamente.

Funzionano anche i due punti centrali che lampeggiano simpaticamente ogni secondo.

L'unica cosa che non funziona sono i pulsanti... li schiaccio ma nulla accade. Vi riposto lo schema che ho fatto, non è che il problema sta li?

Inizio anche a portarmi avanti col lavoro.... in tutto questo come inserisco l'RTC? dovrò inserire una libreria già pronta in tal senso? oppure pensate che potremo programmare da zero?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 03, 2017, 10:47 pm
Quote from: ghezzia
L'unica cosa che non funziona sono i pulsanti... li schiaccio ma nulla accade. Vi riposto lo schema che ho fatto, non è che il problema sta li?
Lo schema sembra giusto, il cablaggio lo sarà? Come al solito quando qualcosa non va si torna indietro e si testa finché funziona. Cosa c'è di meglio che farsi dire da Arduino stesso se "sente" i pulsanti accendendo il suo LED on board collegato al pin D13?
Code: [Select]
#define MIN_PULS  5
#define HOUR_PULS 6

void setup(){
   pinMode(MIN_PULS,  INPUT);
   pinMode(HOUR_PULS, INPUT);
   pinMode(13, OUTPUT);
}

void loop(){
   digitalWrite(13, digitalRead(MIN_PULS) | digitalRead(HOUR_PULS));
}




Quote
in tutto questo come inserisco l'RTC? dovrò inserire una libreria già pronta in tal senso? oppure pensate che potremo programmare da zero?
L'RTC si collega tramite bus i2c (pin A4 (SDA) e A5 (SCL) di ArduinoUNO), e la comunicazione su questo bus si effettua con la libreria Wire.h

Prima di qualsiasi altra cosa bisogna vedere che l'RTC, una volta collegato (http://www.goodliffe.org.uk/arduino/pictures/rtc_ds3231.jpg), venga riconosciuto tramite un i2c scanner (i messaggi inviati da Arduino vanno visualizzati con il monitor seriale dell'IDE):
Code: [Select]
#include <Wire.h>

void setup(){
    Wire.begin();
    Serial.begin(9600);
}

void loop(){
    Serial.println("Scan...");
    for(byte addr=0; addr<128; addr++){
        Wire.beginTransmission(addr);
        if (!Wire.endTransmission()){
            Serial.print("Found device ");
            Serial.print("0x");
            if (addr < 16) Serial.print("0");
            Serial.println(addr, HEX);
        }
    }
    Serial.println();
    delay(2000);
}
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 03, 2017, 11:52 pm
Lo schema sembra giusto, il cablaggio lo sarà? Come al solito quando qualcosa non va si torna indietro e si testa finché funziona. Cosa c'è di meglio che farsi dire da Arduino stesso se "sente" i pulsanti accendendo il suo LED on board collegato al pin D13?
Code: [Select]
#define MIN_PULS  5
#define HOUR_PULS 6

void setup(){
   pinMode(MIN_PULS,  INPUT);
   pinMode(HOUR_PULS, INPUT);
   pinMode(13, OUTPUT);
}

void loop(){
   digitalWrite(13, digitalRead(MIN_PULS) | digitalRead(HOUR_PULS));
}


Eccolo !!! In effetti ho testato due nuovi pulsanti su una breadboard a parte e tutto funzionava correttamente. Forse erano gli altri che non erano collegati nel giusto modo (in mezzo a tutto il groviglio di fili) oppure in qualche modo difettati.... mah!

Una volta collegati al prototipo i pulsanti rispondevano alle pressioni :D Eureka...

Domani proverò l'RTC... vediamo cosa ne viene fuori...

Nel frattempo vi chiedo per portarmi avanti coi lavori: mi dareste un suggerimento sulla metodologia che dovrò usare per disegnare tutto il circuito sulla millefiori?
La mia idea era quella di prendere un foglio a quadretti e simulare che ogni quadretto (o incrocio di righe dei quadretti) sia un buchino della millefiori. Li sopra inizierò a disegnare il circuito che poi in modo speculare dovrò riportare sulla millefiori... pensate sia una buona idea?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Jan 04, 2017, 01:30 am
 :smiley-sweat:  :smiley-sweat:  :smiley-sweat:  :smiley-sweat:  MILLEFORI, sta per MOLTI BUCHI non per PRATO FIORITO  :smiley-mr-green:  :smiley-mr-green:  :smiley-mr-green:
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Jan 04, 2017, 01:44 am
Se hai tempo certo puoi ricorrere a matita e carta per progettare la disposizione dei componenti, il principio fondamentale è quello di fare collegamenti più brevi possibili ed evitare incroci, quindi è bene avere come riferimento lo schema elettrico.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 04, 2017, 05:45 pm
Quote from: Michele Menniti
:smiley-sweat:  :smiley-sweat:  :smiley-sweat:  :smiley-sweat:  MILLEFORI, sta per MOLTI BUCHI non per PRATO FIORITO  :smiley-mr-green:  :smiley-mr-green:  :smiley-mr-green:
Oh lo sa lo sa, glielo si è detto già al post #100 (http://forum.arduino.cc/index.php?topic=431577.msg2994858#msg2994858) :)


Quote
La mia idea era quella di prendere un foglio a quadretti e simulare che ogni quadretto (o incrocio di righe dei quadretti) sia un buchino della millefiori. Li sopra inizierò a disegnare il circuito che poi in modo speculare dovrò riportare sulla millefiori... pensate sia una buona idea?
Ovviamente si... la costruzione al volo senza un disegno può riservare parecchie sorprese, come la necessità di fare molti ponti di filo per traverso sia lato componenti che lato saldature. Un'idea può essere quella di pensare a ponticelli dritti lato componenti ortogonali a piste dritte lato saldature:

(http://stor.altervista.org/p.php?p=newtsp.jpg)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 04, 2017, 06:43 pm
Ha un senso se intendi "replicare" un circuito tipo doppia faccia a fori metallizzati ... ma sul millefori sei molto piu libero, basta disporre i componenti in modo "logico" ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 05, 2017, 09:51 pm
Prima di qualsiasi altra cosa bisogna vedere che l'RTC, una volta collegato (http://www.goodliffe.org.uk/arduino/pictures/rtc_ds3231.jpg), venga riconosciuto tramite un i2c scanner (i messaggi inviati da Arduino vanno visualizzati con il monitor seriale dell'IDE):
Code: [Select]
#include <Wire.h>

void setup(){
    Wire.begin();
    Serial.begin(9600);
}

void loop(){
    Serial.println("Scan...");
    for(byte addr=0; addr<128; addr++){
        Wire.beginTransmission(addr);
        if (!Wire.endTransmission()){
            Serial.print("Found device ");
            Serial.print("0x");
            if (addr < 16) Serial.print("0");
            Serial.println(addr, HEX);
        }
    }
    Serial.println();
    delay(2000);
}


Fatto!! tutto sembra funzionare, l'RTC viene riconosciuto... almeno credo; quello che vedo dal monitor seriale è questo:
Scan...
Found device 0x57
Found device 0x68

Ora come lo inserisco nel nostro fantastico prototipo? :)

:smiley-sweat:  :smiley-sweat:  :smiley-sweat:  :smiley-sweat:  MILLEFORI, sta per MOLTI BUCHI non per PRATO FIORITO  :smiley-mr-green:  :smiley-mr-green:  :smiley-mr-green:
Si SI!! in effetti nel mio ufficio tempo addietro ero uno dei campioni :D... quindi non dovrebbe venirmi difficile :D
Oh lo sa lo sa, glielo si è detto già al post #100 (http://forum.arduino.cc/index.php?topic=431577.msg2994858#msg2994858) :)

Ovviamente si... la costruzione al volo senza un disegno può riservare parecchie sorprese, come la necessità di fare molti ponti di filo per traverso sia lato componenti che lato saldature. Un'idea può essere quella di pensare a ponticelli dritti lato componenti ortogonali a piste dritte lato saldature:

(http://stor.altervista.org/p.php?p=newtsp.jpg)
solo una domanda in relazione al disegno proposto perché non lo leggo bene:
Le linee rosse sono ponticelli di filo? quelle grigie invece sono le saldature giusto?

ormai lo sento sempre più vicino questo orologio "BOMBA"... sto trovando anche il progetto giusto per la stampante 3D :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 06, 2017, 11:08 am
Quote from: ghezzia
Fatto!! tutto sembra funzionare, l'RTC viene riconosciuto... almeno credo; quello che vedo dal monitor seriale è questo:
Found device 0x68
È lui.

Quote
Ora come lo inserisco nel nostro fantastico prototipo? :)
Prima bisognerebbe sapere come regolarlo e leggerlo...
Premetto che non ho mai usato quell'RTC, ma neppure nessun altro RTC  :D
Ma da quello che di può leggere nel datasheet (https://datasheets.maximintegrated.com/en/ds/DS3231.pdf) a pagina 11, i registri interni a 8 bit che ci interessano sono 0, 1 e 2, e contengono le informazioni in formato binario BCD packed.

Quindi bisogna fare il seguente test, che "dovrebbe" impostare l'RTC alle 10:58 e poi continua a scrivere sul monitor seriale l'ora riletta. Verificare l'avanzamento di secondi, minuti e ora fino alle 11.

Code: [Select]

#include <Wire.h>
byte     ore;                       // ore correnti
byte     minuti;                    // minuti correnti
byte     secondi;                   // secondi correnti
byte     error;
//-----------------------------------------------------------------------------
byte BCDbin(byte n){
    return ((n >> 4) * 10) + (n & 0x0F);
}
//-----------------------------------------------------------------------------
void leggiRTC(){
    Wire.beginTransmission(0x68);   // <--- indirizzo RTC su bus i2c
    Wire.write(0);                  // <--- punta al registro 0
    if (Wire.endTransmission()){
        error = 1;                  // <--- errore di connessione
        return;
    }
    Wire.requestFrom(0x68, 3);      // <--- tre registri da leggere
    if (Wire.available() != 3){
        error = 2;                  // <--- errore di ricezione
        return;
    }
    secondi = BCDbin(Wire.read());
    minuti = BCDbin(Wire.read());
    ore = BCDbin(Wire.read());
    error = 0;
}
//-----------------------------------------------------------------------------
byte binBCD(byte n){
    return ((n / 10) << 4) | (n % 10);
}
//-----------------------------------------------------------------------------
void impostaRTC(){
    Wire.beginTransmission(0x68);   // <--- indirizzo RTC su bus i2c
    Wire.write(0);                  // <--- punta al registro 0
    Wire.write(0);                  // <--- azzera secondi RTC
    Wire.write(binBCD(minuti));     // <--- imposta minuti RTC
    Wire.write(binBCD(ore));        // <--- imposta ore RTC
    Wire.endTransmission();
}
//-----------------------------------------------------------------------------
void setup(){
    Serial.begin(9600);
    Wire.begin();                   // inizializza bus i2c

    ore = 10;
    minuti = 58;
    impostaRTC();                   // imposta RTC alle 10:58
}
//-----------------------------------------------------------------------------
void loop(){
    delay(200);

    leggiRTC();                     // lettura ora corrente da RTC
    if (error) {
        Serial.print("Errore ");
        Serial.println((error==1) ? "connessione" : "ricezione");
        return;
    }

    Serial.print(ore);              // scrive ora su monitor seriale
    Serial.print(':');
    Serial.print(minuti);
    Serial.print(':');
    Serial.println(secondi);
}

Se tutto ok rifare lo stesso test impostando però l'ora iniziale alle 12:58 (per vedere se alle 13:00 riparte da 0 o segna le 13).

Se tutto ok rifare lo stesso test impostando però l'ora iniziale alle 23:58 (per vedere il corretto passaggio alle 0:0:0)

Se va tutto bene si potranno riutilizzare quelle funzioni nel programma completo.



Quote
Le linee rosse sono ponticelli di filo? quelle grigie invece sono le saldature giusto?
Si, in rosso ho indicato i ponticelli lato componenti, realizzati con spezzoni di filo rigido:
(http://stor.altervista.org/p.php?p=v_sopra.jpg)

Comunque quella delle piste/ponticelli ortogonali è una possibilità. Lavorando con le millepetali si può arrangiare il circuito anche in altri modi più liberi come dice Etemenanki:

(http://stor.altervista.org/p.php?p=basette.jpg)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 06, 2017, 04:04 pm
Anche quello ... ma piu che altro intendo dire che, salvo che tu non ci debba vincere un premio per l'eleganza dei cablaggi, puoi farci tutto quello che vuoi ... esempio ;)

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=193688)

(e questa e' pure semplice :P :D)

Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: goldx on Jan 06, 2017, 06:08 pm
wire wrap altro metodo di cablare schede.
ci vogliono zoccoli appositi per gli integrati , un attrezzino anche manuale e del filo molto sottile.
ho cablato un sacco di roba, sia per lavoro che per hobby e anche dopo anni  funzionano ancora.
se ci si prende la mano è pure veloce la realizzazione di cose anche complesse.
grosso vantaggio del metodo, si possono fare modifiche in un baleno.
ete, tu sicuramente lo conosci.
ciao

per i curiosi wikipedia docet  :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 06, 2017, 06:54 pm
Le prime le facevamo in wire-wrap, infatti (i prototipi, intendo ... schede grandi 3 volte quella della foto, per rack  industriali non standard) ... poi con i rack standard "rimpiccioliti" e gli spazi ridotti fra le schede delle macchine nuove, i pin lunghi del wire-wrap rompevano le scatole, cosi siamo passati alle millefori ... preistoria digitale :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 06, 2017, 07:19 pm
bisogna fare il seguente test, che "dovrebbe" impostare l'RTC alle 10:58 e poi continua a scrivere sul monitor seriale l'ora riletta. Verificare l'avanzamento di secondi, minuti e ora fino alle 11.

Se tutto ok rifare lo stesso test impostando però l'ora iniziale alle 12:58 (per vedere se alle 13:00 riparte da 0 o segna le 13).

Se tutto ok rifare lo stesso test impostando però l'ora iniziale alle 23:58 (per vedere il corretto passaggio alle 0:0:0)

Se va tutto bene si potranno riutilizzare quelle funzioni nel programma completo.

Eccomi!! al momento l'RTC sembra funzionare perfettamente: il monitor mi indica: 11.0.0 alla scadenza delle 10:59; 13.0.0 alla scadenza delle 12:59; 0.0.0 alla scadenza delle 23:59. Fantastich :smiley-twist:

Ho provato però a ricollegare anche il prototipo (senza comprendere l'RTC ovviamente) ma mi fa degli scherzi strani quando pigio i pulsanti per cambiare ore e minuti: nello specifico quando schiaccio parte una sequenza di numeri e dopo alcuni numeri si ferma... resta fortunatamente invariata la logica delle 24h... forse è solo un problema di collegamenti "ballerini"...

Sempre per portarmi avanti col lavoro, nello schema proposto dove metterò la ATMega che sostituirà l'Arduino? immagino abbia bisogno di qualche altro componente oltre all'integrato giusto? quali?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: goldx on Jan 06, 2017, 09:05 pm
quando pigi i pulsanti per cambiare ore e minuti se non vuoi che parta una sequenza di numeri, devi usare la parolina magica: DEBOUNCE.   :) che detto tra noi, esiste sia hardware che software.
adesso arriva il boss e ti dice lui dove guardare per risolvere.  :smiley-confuse:
lui, è da ammirare, ha una bella costanza (non c'entra la citta' svizzera).
e te lo spieghera' dicendoti guarda  QUI , QUI e QUI.   :smiley-confuse:   
tranquillo niente collgamenti ballerini.

ciao.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 06, 2017, 10:50 pm
In verità non credo sia quello il problema. Infatti fino a ieri sera funzionava tutto correttamente.... mah!
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 07, 2017, 09:45 am
Comunque i condensatori e le resistenze di debounce li hai messi sui pulsanti, vero ? ...

Perche' i rimbalzi sono "bastardi", capitano a caso e mai in modo ripetitivo ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 07, 2017, 10:19 am
Ho messo le resistenze... non i condensatori. Quali dovrei mettere? Le resistenze sono di pull-down non so se cambia qualcosa :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 07, 2017, 10:51 am
Il debounch di 50ms [1] è già realizzato via software nel case 0 dello switch della funzione 'click' (che, come da ghezzia-project, prevede delle pull-down esterne), e infatti mi pare non ci fossero problemi. Qualche contatto ballerino su breadboard può esserci. Qualche pulsante difettoso anche. Se prima andava deve andare anche adesso (attenzione a non scambiare l'autorepeat dopo un secondo per mancanza di debounch).

A dire il vero il debounch viene applicato alla sola pressione, se il pulsante fosse difettoso e generasse delle microinterruzioni distanti tra loro più di 50ms, allora queste potrebbero in effetti essere rilevate come pressioni successive. Vediamo se viene trovato l'inghippo, altrimenti tocca modificare la 'click'.

Per il resto inserire le funzioni dell'RTC nel programma già fatto è immediato (se tutto il display lampeggia vuol dire che la lettura dall' RTC fallisce):
Code: [Select]
#include <Wire.h>
#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4
#define MIN_PULS  5
#define HOUR_PULS 6
//-----------------------------------------------------------------------------
// Variabili di lavoro globali (28 byte)
//-----------------------------------------------------------------------------
typedef struct {
    uint32_t time;
    byte     stat;
} button_t;

button_t minPulsData = {millis(), 0};   // dati pulsante minuti
button_t hourPulsData = {millis(), 0};  // dati pulsante ora
uint32_t tempoPunti = millis();         // tempi di partenza
byte     point = 1;                     // variabile per lampeggio punti
byte     error = false;                 // true se errore lettura RTC
byte     minuti = 0;                    // minuti correnti
byte     ore = 0;                       // ore correnti
byte     tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                        0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
//-----------------------------------------------------------------------------
// Rileva click su tasti con debounch 50 ms e autorepeat dopo 1 s
//-----------------------------------------------------------------------------
bool click(byte pin, ::button_t* data){
    if (!digitalRead(pin)){         // se non premuto
        data->time = millis();
        data->stat = 0;
        return false;
    }
    uint32_t elapsed = millis() - data->time;
    switch (data->stat){
        case 0:
            if (elapsed >= 50){     // primo click detect dopo 50 ms
                data->stat = 1;
                data->time = millis();
                return true;
            }
            return false;

        case 1:
            if (elapsed >= 1000){   // inizio autorepeat dopo 1 s
                data->stat = 2;
                data->time = millis();
                return true;
            }
            return false;

        case 2:
            if (elapsed >= 100){    // successivi click ogni 100 ms
                data->time += 100;
                return true;
            }
            return false;
    }
}
//-----------------------------------------------------------------------------
byte binBCD(byte n){
    return ((n / 10) << 4) | (n % 10);
}
//-----------------------------------------------------------------------------
void impostaRTC(){
    Wire.beginTransmission(0x68);   // <--- indirizzo RTC su bus i2c
    Wire.write(0);                  // <--- punta al registro 0
    Wire.write(0);                  // <--- azzera secondi RTC
    Wire.write(binBCD(minuti));     // <--- imposta minuti RTC
    Wire.write(binBCD(ore));        // <--- imposta ore RTC
    Wire.endTransmission();
}
//-----------------------------------------------------------------------------
void avanzaOra(){
    ore = (ore + 1) % 24;
}
//-----------------------------------------------------------------------------
void avanzaMinuto(){
    if (++minuti == 60){
        minuti = 0;
        avanzaOra();
    }
}
//-----------------------------------------------------------------------------
void blinkPunti(){
    if (millis() - tempoPunti >= 500){
        tempoPunti += 500;
        point ^= 1;
    }
}
//-----------------------------------------------------------------------------
byte BCDbin(byte n){
    return ((n >> 4) * 10) + (n & 0x0F);
}
//-----------------------------------------------------------------------------
void leggiRTC(){
    Wire.beginTransmission(0x68);   // <--- indirizzo RTC su bus i2c
    Wire.write(1);                  // <--- punta al registro 1
    if (Wire.endTransmission()){    // <--- errore di connessione
        error = true;
        return;
    }
    Wire.requestFrom(0x68, 2);      // <--- due registri da leggere
    if (Wire.available() != 2){
        error = true;               // <--- errore di ricezione
        return;
    }
    minuti = BCDbin(Wire.read());
    ore = BCDbin(Wire.read());
    error = false;
}
//-----------------------------------------------------------------------------
// Scrittura su display con blanking primo zero e lampeggio se errore
//-----------------------------------------------------------------------------
void visualizza(){
    digitalWrite(LATCH_PIN, LOW);
    if (error && !point){
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
    }else{
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[minuti%10]);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[minuti/10]);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[ore%10]|point);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, (ore/10) ? tabella[ore/10] : 0);
    }
    digitalWrite(LATCH_PIN, HIGH);
}
//-----------------------------------------------------------------------------
// Impostazione sistema
//-----------------------------------------------------------------------------
void setup(){
    Wire.begin();                   // inizializza bus i2c
    pinMode(MIN_PULS,  INPUT);
    pinMode(HOUR_PULS, INPUT);
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN,  OUTPUT);
    digitalWrite(CLOCK_PIN, LOW);
    visualizza();                   // prima scrittura su display
}
//-----------------------------------------------------------------------------
// Ciclo principale eseguito circa 800 volte al secondo
//-----------------------------------------------------------------------------
void loop(){
    leggiRTC();                     // lettura ora corrente da RTC
    blinkPunti();                   // lampeggio punti 1 Hz

    if (click(MIN_PULS, &minPulsData)){     // se premuto puls.minuti
        avanzaMinuto();                     // regola minuti
        impostaRTC();
    }

    if (click(HOUR_PULS, &hourPulsData)){   // se premuto puls.ore
        avanzaOra();                        // regola ora
        impostaRTC();
    }

    visualizza();                   // aggiorna display
}
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 07, 2017, 06:04 pm
Giusto per provare se e' quello (tanto male non glie ne fa, anzi), prova a mettere un condensatore da 100n fra il pin del pulsante e massa, ed una resistenza da 100 ohm in serie al pulsante (un condensatore ed una resistenza per ogni pulsante, intendo)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 07, 2017, 09:17 pm
Giusto per provare se e' quello (tanto male non glie ne fa, anzi), prova a mettere un condensatore da 100n fra il pin del pulsante e massa, ed una resistenza da 100 ohm in serie al pulsante (un condensatore ed una resistenza per ogni pulsante, intendo)
ciao, in effetti i rimbalzi proseguono... adesso addirittura schiaccio i minuti avanza di un'ora e rimbalzano i minuti avanti....
non mi è chiaro come aggiungo il condensatore (io ho un paio di condensatori di ceramica da 105 e 103 oppure quelli classici da 100nF). come li collego nello schema dei pulsanti? prima o dopo la resistenza?


Qualche contatto ballerino su breadboard può esserci. Qualche pulsante difettoso anche. Se prima andava deve andare anche adesso (attenzione a non scambiare l'autorepeat dopo un secondo per mancanza di debounch).
in effetti ha dei rimbalzi strani è sufficiente a volte che sfioro la breadboard e va avanti... però c'è anche da dire che non ho toccato nessun collegamento dall'ultima volta... mah!
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 07, 2017, 09:48 pm
Quote from: ghezzia
non mi è chiaro come aggiungo il condensatore
In parallelo alla resistenza di pull-down.

Quote
in effetti ha dei rimbalzi strani è sufficiente a volte che sfioro la breadboard e va avanti...
Sembrerebbe si sia interrotto il collegamento verso GND delle resistenze di pull-down e gli ingressi prendano disturbi casuali.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 07, 2017, 11:57 pm
Ok! Domani ricontrollo i collegamenti per benino e vedo di fissarli in modo che non subiscano danni ulteriori.
In merito ai condensatori vanno bene quelli che ho?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 08, 2017, 10:53 am
Quote from: ghezzia
In merito ai condensatori vanno bene quelli che ho?
I 105 dovrebbero essere 1µF, ok quelli, anche se la R di pull-down dovrebbe essere un po' più alta in modo da aumentare la costante di tempo del gruppo RC... diciamo almeno 4.7kΩ.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 08, 2017, 05:47 pm
Se hai dei 100nF vanno bene, anche se non ceramici ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 08, 2017, 06:10 pm
Per il resto inserire le funzioni dell'RTC nel programma già fatto è immediato (se tutto il display lampeggia vuol dire che la lettura dall' RTC fallisce):

Ho provato ad inserire anche l'RCT e sembra non dare "disturbi"

Tuttavia continuano i "disturbi" dei rimbalzi... quindi non sono certissimo che l'RCT funzioni correttamente.

in verità le mie resistenze di pull down sono da 10kohm... vanno bene lo stesso?

I condensatori che ho sono quelli della foto. Quale uso?.. allego anche il modo con cui li collegherei... che dite salta tutto?

Grazie ancora ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 08, 2017, 09:35 pm
Quote from: ghezzia
I condensatori che ho sono quelli della foto. Quale uso?
La lenticchia va bene. In parallelo alla R di pull-down. Cioè tra l'ingresso di Arduino e GND come la resistenza. la costante di tempo è miserrima (10000 * 100e-9 = 0.001s) ma meglio che niente.

Continuo a pensare che si sia creato un problema hardware, ma comunque prova questo sostituto della funzione click che filtra anche i rilasci (antirimbalzo portato da 50 a 60 ms):

Code: [Select]
//-----------------------------------------------------------------------------
// Rileva click su tasti con debounch 60 ms e autorepeat dopo 1 s
//-----------------------------------------------------------------------------
bool click(byte pin, ::button_t* data){
    uint32_t elapsed = millis() - data->time;
    bool press = digitalRead(pin);
    switch (data->stat)
    {
        case 0:                             // attesa pressione
            if (press){                     // se premuto
                data->stat = 1;             // passa ad antirimbalzo
                data->time = millis();
            }
            return false;


        case 1:                             // antirimbalzo pressione
            if (!press){                    // se non premuto
                data->stat = 0;             // ritorna ad attesa
                return false;
            }
            if (elapsed > 60){              // primo click
                data->stat = 2;
                data->time = millis();
                return true;
            }
            return false;


        case 2:                             // attesa inizio autorepeat
            if (!press){                    // se non premuto
                data->stat = 3;
                data->time = millis();
                return false;
            }
            if (elapsed > 1000){            // inizio autorepeat dopo 1 s
                data->stat = 4;
                data->time = millis();
                return true;                // primo autoclick
            }
            return false;


        case 3:                             // antirimbalzo rilascio
            if (press){                     // se premuto
                data->stat = 2;
                data->time = millis();
                return false;
            }
            if (elapsed > 60)               // rilasciato
                data->stat = 0;             // torna ad attesa
            return false;


        case 4:                             // autorepeat
            if (!press){                    // se non premuto
                data->stat = 5;
                data->time = millis();
                return false;
            }
            if (elapsed > 100){             // successivi click ogni 100 ms
                data->time = millis();
                return true;
            }
            return false;


        case 5:                             // antirimbalzo rilascio
            if (press){                     // se premuto
                data->stat = 4;
                data->time = millis();
                return false;
            }
            if (elapsed >= 60)              // rilasciato
                data->stat = 0;             // torna ad attesa
            return false;
    }
}
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ExperimentUno on Jan 08, 2017, 10:27 pm
Ma ci sono button (https://github.com/tigoe/Button) e OneButton (http://www.mathertel.de/Arduino/OneButtonLibrary.aspx) nelle librerie. Senza esimere che mettere quella libreria o qualcosa di specifico, ci va sempre dello spazio scritto nella flash ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 08, 2017, 11:09 pm
Grazie Claudio_F domani sono fuori ma martedì sera spero di riuscire a provare, sia hardware che software. Vi tengo aggiornati.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 10, 2017, 10:37 pm
Ragazziiiiiiii!!! non ci crederete. Come volevasi dimostrare sbagliavo i collegamenti tra i pulsanti e arduino.... avevo invertito i cavi che vanno alla board con quelli che vanno al 5v.... Perdonatemi ;).

Ora sembra funzionare tutto correttamente. Anche l'RCT (con batteria tampone) sembra tenere gli orari anche quando lo stacco dal PC. L'unica cosa è che mi sembra un pochino veloce... forse 1 sec. ogni minuto.... problema dell'RCT? faccio altre prove empiriche nel frattempo...

Addirittura ho provato senza condensatori e rimbalzi non se ne vedono.

Claudio_F avevi ragione ancora una volta :)

Ho comunque mantenuto l'ultima versione del codice modificando solo la parte relativa al rilevamento dei click sui pulsanti:
Code: [Select]


//-----------------------------------------------------------------------------
// Rileva click su tasti con debounch 60 ms e autorepeat dopo 1 s
//-----------------------------------------------------------------------------
bool click(byte pin, ::button_t* data){
    uint32_t elapsed = millis() - data->time;
    bool press = digitalRead(pin);
    switch (data->stat)
    {
        case 0:                             // attesa pressione
            if (press){                     // se premuto
                data->stat = 1;             // passa ad antirimbalzo
                data->time = millis();
            }
            return false;


        case 1:                             // antirimbalzo pressione
            if (!press){                    // se non premuto
                data->stat = 0;             // ritorna ad attesa
                return false;
            }
            if (elapsed > 60){              // primo click
                data->stat = 2;
                data->time = millis();
                return true;
            }
            return false;


        case 2:                             // attesa inizio autorepeat
            if (!press){                    // se non premuto
                data->stat = 3;
                data->time = millis();
                return false;
            }
            if (elapsed > 1000){            // inizio autorepeat dopo 1 s
                data->stat = 4;
                data->time = millis();
                return true;                // primo autoclick
            }
            return false;


        case 3:                             // antirimbalzo rilascio
            if (press){                     // se premuto
                data->stat = 2;
                data->time = millis();
                return false;
            }
            if (elapsed > 60)               // rilasciato
                data->stat = 0;             // torna ad attesa
            return false;


        case 4:                             // autorepeat
            if (!press){                    // se non premuto
                data->stat = 5;
                data->time = millis();
                return false;
            }
            if (elapsed > 100){             // successivi click ogni 100 ms
                data->time = millis();
                return true;
            }
            return false;


        case 5:                             // antirimbalzo rilascio
            if (press){                     // se premuto
                data->stat = 4;
                data->time = millis();
                return false;
            }
            if (elapsed >= 60)              // rilasciato
                data->stat = 0;             // torna ad attesa
            return false;
    }
}



Adesso rimane solo che inserire in tutto questo la Atmega in sostituzione di arduino... ho trovato questa (https://h3ron.com/post/sostituire-arduino-con-un-atmega328p-pu-come-programmarlo/) guida che mi sembra un buon modo di programmare la atmega. Che ne dite?

Solo una domanda, una volta programmata per testare il tutto io avrei preso un trasformatore della 220v per avere 12v con 2A... se utilizzo questo direttamente questa tensione sulla atmega non rischio di bruciarla? che alternativa posso utilizzare?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 10, 2017, 11:01 pm
L'unica cosa è che mi sembra un pochino veloce... forse 1 sec. ogni minuto.... problema dell'RCT? faccio altre prove empiriche nel frattempo...
Prove empiriche fatte!! sembra tenere il tempo alla perfezione... ora stacco dal PC e domani son curioso di sapere se l'orario è ancora esatto :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 11, 2017, 09:46 am
... 12v con 2A... se utilizzo questo direttamente questa tensione sulla atmega non rischio di bruciarla? che alternativa posso utilizzare?
Per atmega intendi la MCU o la scheda mega2560 ?

Ovvio che la MCU va alimentata a 5V stabilizzati ... la scheda ha il regolatore, ma 12V sono un po al limite, sarebbe meglio dargliene di meno, tipo 8 o 9 ... puoi ricavarli con un secondo regolatore, oppure far cadere un po di tensione con qualche diodo al silicio tipo 1N400x in serie (circa 0.8V per ogni diodo) ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 11, 2017, 03:08 pm
Per atmega intendi la MCU o la scheda mega2560 ?
No no, ho preso solo la MCU (l'integrato come si vede dal link del post precedente)... mi sembrava di capire che i 12v e 2A servissero per alimentare tutto l'orologio, corretto? posso sdoppiare l'alimentazione in modo da inviare 12v all'orologio e stabilizzare a 5V solo l'alimentazione che va alla MCU?

P.S. dopo aver lasciato l'orologio staccato tutta notte l'ho ricollegato questa mattina e spaccava il secondo...
Fantastico !! :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 11, 2017, 04:45 pm
Si, ovviamente dovrai montare un regolatore di tensione ... va bene anche un 7805, ma prevedi un'aletta di raffreddamento, perche' da 12 a 5 la potenza da dissipare in calore e' abbastanza ... comunque il 5V alimentera' tutta la logica, mentre il 12V solo i segmenti dei numeri ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Jan 11, 2017, 05:15 pm
No no, ho preso solo la MCU (l'integrato come si vede dal link del post precedente)...
Nel post precedente si vede l'ATmega328P, che è quello di Ardiuno UNO, ma tu parli del 2560, che è quello dell'Arduino MEGA, peraltro è un smd piuttosto faticoso da trattare, avrai preso uno zoccolo adattatore immagino, per montarlo su una millefori...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 11, 2017, 09:57 pm
Nel post precedente si vede l'ATmega328P, che è quello di Ardiuno UNO, ma tu parli del 2560, che è quello dell'Arduino MEGA, peraltro è un smd piuttosto faticoso da trattare, avrai preso uno zoccolo adattatore immagino, per montarlo su una millefori...

No Confermo che ho preso una 328P-PU come quella del post precedente l'unica differenza è che il numero sopra alla sigla è 1602 anziché 0936 (non credo cambi nulla però).

Ho comunque preso uno zoccolo adattatore da montare sulla millefiori.

Pensi si possa procedere come da "tutorial"? Una volta programmata in che modo posso caricargli sopra lo sketch in modo che possa sostituire la UNO?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 11, 2017, 11:11 pm
Quote from: ghezzia
Addirittura ho provato senza condensatori e rimbalzi non se ne vedono.
Giusto per completezza, l'autorepeat funziona regolarmente? Se scolleghi SDA o SCL dall'RTC il display lampeggia?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 12, 2017, 09:09 am
Giusto per completezza, l'autorepeat funziona regolarmente? Se scolleghi SDA o SCL dall'RTC il display lampeggia?
Ho provato, e una volta tolti i collegamenti accade solo che i due punti centrali smettono di lampeggiare (rimangono accesi).
Nessun lampeggio del display... Dovrebbe?
tra l'altro ho notato che l'orario viene mantenuto regolarmente :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 12, 2017, 10:34 pm
Mi è sorto un dubbio: ma devo caricare il bootloader sull'atmega e poi sostituirla a quella di arduino sulla quale ho preventivamente caricato lo sketch dell'orologio, oppure posso caricare direttamente lo sketch dell'orologio sulla atmega passando dalla UNO?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 13, 2017, 10:00 am
Altra domanda legata alla messa in produzione sulla millefiori: ma non esiste una sorta di "penna" con inchiostro conduttore che mi permetta di collegare i vari fori della millefiori in modo semplice senza dover saldare lunghe strisce di stagno? Se non sbaglio esiste una specie di "uniposca" giusto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 13, 2017, 10:16 am
Quelle penne non funzionano, il loro inchiostro ha comunque una resistenza elettrica troppo elevata, non ha resistenza meccanica, e basta una sbavatura per fare un corto ... diverso e' l'inchiostro serigrafico a base di polvere di argento e colla speciale usato per fare le metallizzazioni in alcuni tipi di assemblaggi, ma ha un costo assurdo ed e' quasi impossibile da trovare a livello di privati ...

Comunque nessuno ti obbliga a fare lunghe striscie di stagno ... se e' una pista di potenza, ok, ma se sono segnali, puoi semplicemente usare fili isolati ... o fermare il filo sui pad saldandone uno si ed uno no ... o altri sistemi simili ...
Title: uesta
Post by: claudio_f on Jan 13, 2017, 06:50 pm
Quote from: ghezzia
Ho provato, e una volta tolti i collegamenti accade solo che i due punti centrali smettono di lampeggiare (rimangono accesi). Nessun lampeggio del display... Dovrebbe?
Dovrebbe si, questo mi fa supporre qualcosa riguardo la libreria Wire, ma non avendo l'RTC sotto mano (l'ho usato solo per corrispondenza :smiley-lol:) fare tutte le prove diventerebbe troppo lungo... per cui diamola buona così. L'autorepeat invece si attiva tenendo premuti i pulsanti almeno un secondo.

Quote
ma devo caricare il bootloader sull'atmega e poi sostituirla a quella di arduino sulla quale ho preventivamente caricato lo sketch dell'orologio
Questa è la soluzione più semplice. L'alternativa, dopo aver caricato il bootloader, sarebbe procurarsi un convertitore USB->seriale FTDI e programmare direttamente l'orologio come se fosse Arduino, o ancora usare la board Arduino come convertitore USB-seriale senza controller.

Quote
senza dover saldare lunghe strisce di stagno
Ci sono millepetali con le strisce di rame che semplificano questo compito (ma permettono montaggi meno "densi"):
(http://stor.altervista.org/p.php?p=v_sotto.jpg)

In alternativa come detto spezzoni di filo nudo. Oppure usare la millepetali in stile breadboard:
(http://stor.altervista.org/p.php?p=z2.jpg)

Ho provato anche questa soluzione... un incubo da dimenticare  :)
(http://stor.altervista.org/p.php?p=e_sotto3.jpg)
Title: Re: uesta
Post by: Etemenanki on Jan 13, 2017, 07:19 pm
...
Ho provato anche questa soluzione... un incubo da dimenticare  :)
...
... se quello lo chiami incubo, allora questo come lo chiami ?

(http://i.imgur.com/WvgblnQ.jpg)

:D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Jan 13, 2017, 07:30 pm
Altro che cruciverba :D sai quando devi rifare il viaggio mentale se è collegato tutto bene  :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 13, 2017, 07:34 pm
Dovrebbe si, questo mi fa supporre qualcosa riguardo la libreria Wire, ma non avendo l'RTC sotto mano (l'ho usato solo per corrispondenza :smiley-lol:) fare tutte le prove diventerebbe troppo lungo... per cui diamola buona così. L'autorepeat invece si attiva tenendo premuti i pulsanti almeno un secondo.
Si diamola buona così concordo :).
Se per Autorepeat intendi che tenendo premuto i pulsanti cominciano ad aumentare ore e minuti in rapida sequenza, ti confermo che funziona ;).

Questa è la soluzione più semplice. L'alternativa, dopo aver caricato il bootloader, sarebbe procurarsi un convertitore USB->seriale FTDI e programmare direttamente l'orologio come se fosse Arduino, o ancora usare la board Arduino come convertitore USB-seriale senza controller.
Non sarebbe meglio usare la UNO per caricare direttamente lo sketch sulla atmega che funzionerà per la gestione dell'orologio? se è possibile naturalmente.

Ultima domanda: che tipo di componenti devo comunque aggiungere al microcontroller che sarà sull'orologio? sia esso la Atmega appena comprata piuttosto che quella configurata sulla UNO? Mi sembra di capire che comunque un quarzo serva corretto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 13, 2017, 07:54 pm
Quote from: ghezzia
Non sarebbe meglio usare la UNO per caricare direttamente lo sketch sulla atmega che funzionerà per la gestione dell'orologio? se è possibile naturalmente.
Non so più se intendiamo la stessa cosa. Carichi tutto su arduino e poi sposti il controller sull'orologio, fine.

Quote
Ultima domanda: che tipo di componenti devo comunque aggiungere al microcontroller che sarà sull'orologio? sia esso la Atmega appena comprata piuttosto che quella configurata sulla UNO? Mi sembra di capire che comunque un quarzo serva corretto?
Questa imagine mi sembra chiara (al posto di 9V vanno bene anche i 12):
(http://www.institutodigital.com.br/esquema_stand.jpg)

Vandono anche gli appositi kit (https://www.amazon.it/ATMEGA328P-PU-ARDUINO-UNO-stabilizzatore-tensione/dp/B00OZGWCWE/) per standalone.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 13, 2017, 08:51 pm
OK, lo schema mi sembra chiaro :).

Per il kit l'ho visto anch'io e sicuramente va bene. Anche qui rimane il mio dubbio che non ho in effetti espresso in modo chiaro prima. Vediamo se riesco ad essere più chiaro:

La UNO ha al suo interno una Atmega che è quello che chiamiamo controller, giusto?

Se così fosse, a quanto mi dici, carico lo sketch sulla UNO (come ho già fatto), stacco la Atmega dalla UNO e la inserisco nel circuito definitivo collegando i vari PIN come indicato nel suddetto schema, giusto?

Le varie tracce Clock, Latch, Data, GND e 12v le collego ai PIN della Atmega come se fossero i PIN della UNO che ho utilizzato fin'ora, Corretto?

Poi la Atmega che ho comprato (o comprerei col kit) la utilizzerei per rimpiazzare quella della UNO in modo da riavere la scheda completa per altri utilizzi futuri. Giusto?

Semplice,no? :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 13, 2017, 09:01 pm
Tutto giusto. Il controller nuovo potrebbe non avere il bootloader a bordo, per cui prima gli va caricato, in modo da funzionare come quello vecchio una volta inserito in Arduino.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Jan 13, 2017, 10:10 pm
12V scalda però
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 13, 2017, 11:21 pm
Il controller nuovo potrebbe non avere il bootloader a bordo, per cui prima gli va caricato

Ecco appunto, quello che dicevo prima era: non vale la pena caricare lo sketch direttamente sul controller acquistato senza fare inutili scambi di atmega?
Evidentemente è solo uno scrupolo inutile ma togliere e mettere componenti (seppure su uno zoccolino apposito) mi sembrava un passaggio "rischioso"... Ma forse, ripeto, è solo una mia paranoia :).

12V scalda però
A questo proposito, avevamo detto che i 12v servivano per alimentare le stripled. Detto che ai pin dei 5v del controller ci collegherò il resto del circuito, come "sdoppio" la mia alimentazione, che sarà a 12v, in modo che in parte vada sul circuito e in parte sulle stripled?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Jan 13, 2017, 11:37 pm
Pensavo ci alimentassi lo standalone con il regolatore di tensione no?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 14, 2017, 07:26 am
Ecco appunto... a maggior ragione allora non sono in grado di capire come collegare l'ingresso dei 12v a tutto il resto del circuito;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 14, 2017, 09:52 am
Quote from: ghezzia
Evidentemente è solo uno scrupolo inutile ma togliere e mettere componenti (seppure su uno zoccolino apposito) mi sembrava un passaggio "rischioso"
Allora (dopo aver fatto la procedura per caricare il bootloader) credo sia obbligatoriamente da procurarsi un adattatore USB->seriale esterno: electronics.stackexchange.com/questions/106870/programming-an-atmega328-with-arduino-bootloader-via-a-ftdi-usb-serial-adapter/156007 (http://electronics.stackexchange.com/questions/106870/programming-an-atmega328-with-arduino-bootloader-via-a-ftdi-usb-serial-adapter/156007) (attendo smentite che interessa anche a me  ;))


Quote
A questo proposito, avevamo detto che i 12v servivano per alimentare le stripled. Detto che ai pin dei 5v del controller ci collegherò il resto del circuito, come "sdoppio" la mia alimentazione, che sarà a 12v, in modo che in parte vada sul circuito e in parte sulle stripled?
(http://stor.altervista.org/p.php?p=ghe_alim.png)

I due fili in alto portano la maggior parte della corrente, che entra negli anodi dei display e ritorna dal GND degli ULN. I due fili che scendono portano solo la corrente necessaria alla parte logica. Tra +5 e GND di ogni integrato, mettere un condensatore da 100nF. Anche tra ingresso/GND e uscita/GND del regolatore mettere condensatori da 100nF. Inoltre un 100µF tra ingresso e GND del regolatore, e un 10µF tra uscita e GND del regolatore.

Con 12V il regolatore scalda troppo se si assorbono oltre 50mA sui 5V, in tal caso basta avvitarci un'aletta di alluminio, più è grande meno sale la temperatura e più corrente si può assorbire (ricordare che il corpo metallico del regolatore non è isolato ma è elettricamente collegato a GND).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 14, 2017, 10:17 am
Se il regolatore dovesse comunque scaldare troppo anche con l'aletta, metti qualche diodo al silicio in seroe al positivo che va al regolatore ... ogni diodo abbassa di circa 0.8V ...

E metti qualche condensatore anche sul 12V. per fare da filtro e "serbatoio" di energia ... tipo 470uF o anche 1000uF, 25V, con in parallelo il solito 100nF ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 14, 2017, 10:32 am
Quote from: Etemenanki
Se il regolatore dovesse comunque scaldare troppo anche con l'aletta, metti qualche diodo al silicio in seroe al positivo che va al regolatore ... ogni diodo abbassa di circa 0.8V
Che poi, "scaldare troppo" è relativo, per un regolatore lavorare a 40..50 gradi è assolutamente normale, preoccupante, anche per il rischio di ustioni, sarebbe superare i 65..70 gradi. I diodi in serie d'altra parte non fanno che spostare parte della dissipazione su di loro diventando a loro volta caldi.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 14, 2017, 11:03 am
Vero, pero' aiutano a disperdere il calore in una superfice maggiore ed in posti diversi ... se fai abbassare di circa 4V con 5 o 6 diodi in serie prima del regolatore, e l'elettronica dovesse assorbire, diciamo, sui 500mA in tutto, il carico di potenza da dissipare in calore sul regolatore passerebbe da 3.5W ad 1.5W circa, permettendoti di usare un'aletta piu piccola e di mettere i diodi in modo che dissipino i restanti 2W (circa mezzo W per diodo non li scaldano eccessivamente) su una superfice piu ampia ... inoltre, cosa piu importante, riducono il rischio che il regolatore vada in protezione termica spegnendo tutto quanto, che e' la cosa piu importante per qualcosa che dovrebbe rimaner sempre acceso ...

EDIT: ovviamente parlo di diodi tipo 1N400x, non di diodi per segnale come 1N4148 e simili ... :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Jan 14, 2017, 12:18 pm
Meno scaldi meglio è sempre, :D ovvio se stai a 30 gradi non è che devi andare sotto zero :D poi con 12V anche se assorbi non molto di scaldare scaldi. Mi ricordo Arduino alimentato senza nessun carico scaldare sui 40 gradi con 12V

Le soluzioni di Ete le puoi seguire sempre :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 14, 2017, 12:46 pm
Quote from: As_Needed
Mi ricordo Arduino alimentato senza nessun carico scaldare sui 40 gradi con 12V
Beh si, con 12V bastano i 20mA del power LED per far dissipare 0.15W al microscopico regolatore. Usando un più grosso 7805 in formato TO220 già sarebbe diverso, e con un'aletta minima 5x4cm ci si può già permettere di dissipare due o tre watt senza eccessivo surriscaldamento. Cioè, nel caso di questo progetto il riscaldamento per me è un problema inesistente visto che si è completamente liberi di attaccare il regolatore ad un tocco di alluminio adeguato.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Jan 14, 2017, 12:50 pm
Quello è vero. Poi ecco effettivamente dipende sempre da quanto assorbi di corrente oltre al sistema di dissipazione, ovviamente senza superare le specifiche del regolatore
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 14, 2017, 03:06 pm
... be', finche' l'alluminio non iniza ad imbarcarsi, con la parte piu vicina al regolatore che fonde in superfice, e' ok ...

(sto scherzando, ovviamente :P :D)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Jan 14, 2017, 03:07 pm
... be', finche' l'alluminio non iniza ad imbarcarsi, con la parte piu vicina al regolatore che fonde in superfice, e' ok ...

(sto scherzando, ovviamente :P :D)
:D :D
Una volta ho sentito un tipo venuto sul forum a chiedere che se anche scaldava, bastava raffreddarlo e chissene delle specifiche  :smiley-mr-green:
A sto punto risolti tutti i problemi riguardo la dissipazione. Cella con 0 kelvin dentro e componenti sempre in vita anche se gli spari 20GHz di OC a una CPU da 3
E DEVI spararglieli altrimenti si raffredda troppo per le specifiche :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 14, 2017, 03:52 pm
... Cella con 0 kelvin dentro ...
Eh, no ... cosi mi fermi pure gli elettroni ... :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Jan 14, 2017, 04:18 pm
Eh, no ... cosi mi fermi pure gli elettroni ... :D
Intanto è impossibile raggiungere lo zero :D qualche mini grado in più  :smiley-mr-green:
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 14, 2017, 05:36 pm
Allora (dopo aver fatto la procedura per caricare il bootloader) credo sia obbligatoriamente da procurarsi un adattatore USB->seriale esterno:
Ecco, se così fosse direi di fare le sostituzioni... mi sembra più semplice. Magari presto più attenzione :). Anche se in questo (https://h3ron.com/post/sostituire-arduino-con-un-atmega328p-pu-come-programmarlo/) post mi pare di capire che utilizzando una breadboard sulla quale inserire il microcontrollore si può usare la UNO per caricare il bootloader e successivamente caricare anche lo sketch senza bisogno di fare sostituzioni. Ho letto bene?

Con 12V il regolatore scalda troppo se si assorbono oltre 50mA sui 5V, in tal caso basta avvitarci un'aletta di alluminio, più è grande meno sale la temperatura e più corrente si può assorbire
OK più grande è meglio è (se non sbaglio parli di 5x4 cm) ma l'aletta così grande dove la inserisco nel case dell'orologio? La mia idea era quella di stampare in 3D qualcosa di simile (http://www.thingiverse.com/thing:820001) non credo di avere spazio per inserire un'aletta così grande...

(ricordare che il corpo metallico del regolatore non è isolato ma è elettricamente collegato a GND).
Questo significa che devo stare attento a come attacco l'aletta al regolatore giusto? sto pensando che se l'aletta la sdraio sul circuito non posso attaccare componenti in un'area abbastanza ampia (minio 5x4) se la metto in piedi invece dovrei avere una case molto capiente (minimo 4cm di altezza)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 14, 2017, 06:50 pm
Quote from: ghezzia
Ecco, se così fosse direi di fare le sostituzioni... mi sembra più semplice
E io che avevo detto nel post #305 (http://forum.arduino.cc/index.php?topic=431577.msg3083021#msg3083021)? (http://stor.altervista.org/p.php?p=icon_wall.gif)

Quote
Magari presto più attenzione :)
Cacciavitino a taglio, un po' per parte, resisti alla tentazione di toglierlo con le dita... tutti ci siamo fatti l'antitetanica in questo modo  :smiley-roll-blue:

Quote
OK più grande è meglio è (se non sbaglio parli di 5x4 cm) ma l'aletta così grande dove la inserisco nel case dell'orologio?
L'aletta di cui ho parlato serve per dissipare 2..3W, il tuo regolatore  ne dovrà dissipare forse 0.3, potrebbe non servire nessuna aletta. Poi non è detto che debba essere quadrata col regolatore al centro (anche se sarebbe il caso migliore), anche una striscia ripiegata a L o a U è meglio di niente. Comunque prova, se non scotta non c'è da preoccuparsi.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 14, 2017, 06:52 pm
... qualcosa di simile (http://www.thingiverse.com/thing:820001)  ...
Se arrivi a stamparli e' ok, ma puoi anche costruire i divisori per i segmenti con lamine di plastica o listelli di compensato o roba simile ... tanto poi davanti ci andra' un pannello in plexiglass, plastica o vetro sabbiato, se fatti bene e verniciati di nero opaco, anche il compensato o il legno potrebbero andare bene (solo non verniciare il pannello frontale, verrebbe un macello)

Considerando poi che il tutto probabilmente andra' fissato su un pannello posteriore unico (per l'allineamento e la robustezza), il pannello posteriore stesso potra' fare da supporto per le striscie di led ... e se di alluminio anche da dissipatore per il regolatore ... perche' non e' detto che lo devi saldare per forza sullo stampato, prendi 3 pezzi di filo flessibile da almeno 0.5mm^2 lungli 5 o 10 cm e lo piazzi dove vuoi (in quel caso i condensatorini da 100n su ingresso ed uscita sarebbe meglio saldarli direttamente ai terminali del regolatore) ... oppure anche un pezzo di pannello di alluminio dietro o all'interno del pannello posteriore, se non lo fai tutto di alluminio ... soluzioni possibili ce ne sono parecchie, dal "piu semplice di cosi si muore" all'elaborato andante, allo stile "tralicci da muratore" in plastica e plexiglass, alla simulazione di tubi a scarica con frame stile cyberpunk ... dipende solo da come vuoi fare tu la struttura principale, e da quanto tempo e materiale ci vuoi buttare dentro ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 16, 2017, 09:44 pm
E io che avevo detto nel post #305 (http://forum.arduino.cc/index.php?topic=431577.msg3083021#msg3083021)?
:) you know one more then the devil ;)
Comunque prova, se non scotta non c'è da preoccuparsi.
MI sa che farò così, domani arriva il kit e proverò ad inserire nel prototipo il microcontroller che ho su Arduino nel quale ho già inserito lo sketch e poi vi dico come procede.

Nel frattempo vorrei inserire nel prototipo anche le strip led per le quali vi chiedo un consiglio tecnico:
Da quello che ho capito devo tagliare ogni 9 LED (3 microsegmenti) per creare ogni segmento, corretto? li taglio con la forbice? ci sono controindicazioni? come riconosco l'Anodo che dovrò mettere in comune?
Allego Foto delle strip per darvi un'idea di cosa ho comprato ...
Thanks again
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 17, 2017, 10:54 am
Le tagli con una forbice affilata o con un buon tronchesino, nei punti dove e' segnato (fra le piazzuole scoperte) ... non necessariamente solo 3 led per segmento, ma ogni segmento dovra' per forza essere un multiplo di 3 led (3, 6, 9, e cosi via, secondo la lunghezza che serve a te)

Nei punti di taglio il piu (anodo) dovrebbe essere contrassegnato o scritto da entrambi i lati del taglio ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 17, 2017, 12:07 pm
Grazie Etem,
ovviamente inserendo le stripled nel prototipo, dovrò alimentarlo a 12v come previsto da schema iniziale corretto? non ce la fa l'USB del pc ad accenderle?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 17, 2017, 12:28 pm
Se sono led rossi, forse si accendono molto debolmente, se sono di altri colori non si accendono neppure, perche' le loro cadute interne richiedono piu di 5V ... comunque, non ce la farebbe lo stesso perche' probabilmente servirebbe anche piu corrente di quella disponibile, non solo piu tensione ... meglio usare il 12V ...

La struttura dei display l'hai gia fatta ? ... o almeno hai deciso come costruirla ?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 17, 2017, 01:49 pm
La struttura dei display l'hai gia fatta ? ... o almeno hai deciso come costruirla ?
No in verità non l'ho ancora fatta, sto valutando col mio amico che ha la stampante 3D se il progetto visto su thingverse (già postato in precedenza) possa essere adattato alla sua stampante. Fatto così mi piaceva...
però non so ancora come farlo. Ho visto i tuoi suggerimenti e mi sembrano anche quelli interessanti, se non fosse altro che sono sicuramente (forse) più semplici... vedremo.

Qualcuno sa dove posso trovare qualche progetto già pronto in tal senso? Devo sicuramente capire anche che tipo di visibilità danno degli schermi satinati piuttosto che in plexiglass
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 17, 2017, 02:21 pm
L'importante e' il contrasto e la mascheratura ... il sabbiato e l'opalino contribuiscono a diffondere la luce rendendo i segmenti un po piu uniformi, il plexiglass fume' maschera il retro, il plexiglass semitrasparente tipo quello bianco che si usa per lo sfondo delle insegne luminose riduce leggermente la luminosita' ma da un risultato migliore a livello estetico e di contrasto, specie se le divisorie e la roba che ci va dietro le si vernicia di bianco ... poi e' tutta questione di preferenze personali ...

Per un'amico ad esempio avevo studiato un sistema abbastanza fuori di testa, led ambra per simulare il colore dei tubi a gas, coperti da spezzoni sagomati di tubi in plexiglass opale tagliati per il lungo e fissati a formare le cifre su un pannello di legno anticato con minuterie di ottone lucido e roba simile, stile cyberpunk (completi di circuiti che simulano l'occasionale sfarfallio di un segmento a caso una volta ogni tanto :P :D), ma a finirlo ci ha messo parecchio e c'e' voluto molto lavoro per fare una cosa fatta bene (ma e' un maniaco del cyberpunk e non e' la prima cosa che si costruisce con quello stile) ... le possibilita' sono molte, dipendono solo dalla tua fantasia e dal tempo/soldi che ci puoi spendere dietro ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 18, 2017, 10:41 pm
eccomi!
scusate ma mi sto concentrando sulla versione definitiva del prototipo, per questo ho montato su una piccola breadboard lo stand alone, e volevo provare a collegarla alla rete elettrica 220 tramite il trasformatore di cui vi allego foto.

La domanda che mi sorge spontanea è: stando agli ingressi e alle uscite che si vedono nella foto, posto che i due ingressi rossi (AC in L e N) presumo siano gli ingressi della 220, l'uscita centrale è quella che collegherò a GND del circuito finale? V- e V+ a cosa si riferiscono? o meglio quale dei due alimenterà il circuito?

Purtroppo non ho trovato il data sheet per questo sto andando a "sensazione" ma prima di far esplodere tutto (ora iniziamo a giocare con la 220) preferirei essere sicuro :)

P.s. altro dubbio. Credo di no ma per sicurezza lo chiedo lo stesso: ma negli input dovrò verificare fase e neutro? lo chiedo perché vedo L e N e io sto usando una normale spina per collegarlo alla presa della 220...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Jan 18, 2017, 11:19 pm
L e N sono i punti per collegare i 230 Vac, accanto c'è il simbolo della terra, lì devi collegare il polo centrale della 230Vac. V+ e V- sono rispettivamente +12V e GND
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 19, 2017, 07:01 am
Grazie michele,
Nel caso posso evitare di collegare la terra della 220? Al momento sto riciclando un cavo di una vecchia lampada che ha solo fase e neutro...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Jan 19, 2017, 08:57 am
Si certamente, anche se a lavoro finito conviene sempre collegarla.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 19, 2017, 09:33 pm
Quote from: ghezzia
posso evitare di collegare la terra della 220?
E si sconfina nella violazione regolamento... io davo per scontato che si alimentasse tutto con qualcosa di simile a questo (https://www.amazon.it/Salcar-alimentatori-caricabatterie-Ledstreifen-Stromspanung/dp/B01AA83VHA). Se è vero che quell'alimentatore tecnicamente (in assenza di guasti) probabilmente funziona anche senza terra (anche se magari non rispetta più le specifiche EMC/EMI), la terra va comunque sempre collegata negli apparecchi privi di doppio isolamento che la prevedono, a maggior ragione se (loro e/o gli apparecchi ad essi collegati) presentano parti metalliche accessibili che potrebbero entrare in contatto con la tensione di rete e causare folgorazione.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Jan 19, 2017, 09:40 pm
Concordo, ma devi valutare il contesto assolutamente provvisorio della sua richiesta e della mia risposta


Al momento sto riciclando un cavo di una vecchia lampada che ha solo fase e neutro...

anche se a lavoro finito conviene sempre collegarla.


In realtà per queste situazioni vanno più che bene gli alimentatori switching incapsulati come quello che hai linkato che, appunto, non hanno la messa a terra.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 19, 2017, 10:14 pm
evvivaaaaa!!!
funziona anche con lo stand alone e il trasformatore!!
Ovviamente metterò anche la terra (non essendo isolato l'alimentatore).

L'unica cosa che ho notato è che il regolatore scalda parecchio... ho provato a toccarlo col dito e mi sono quasi ustionato... è vero che al momento non ho ancora inserito le stripled che immagino assorbano parte di quanto viene immesso nel circuito... ma mi sembra effettivamente un pochino troppo caldo.
Proverò ad inserire anche le stripled e vi saprò dire. Pensate possa reggere?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 19, 2017, 10:30 pm
Per reggere regge (hanno un'autolimitazione termica, e se ti sei solo "quasi ustionato" e non "completamente ustionato" siamo ancora lontani da quel limite :smiley-mr-green: )... ma una lastrina di alluminio ce la attaccherei.

L'aggiunta delle strip non cambia nulla, la loro corrente non passa per il regolatore 5V.

Sarebbe però interessante sapere quanti mA vengono effettivamente assorbiti dai 5V (basterebbe mettersi in serie al regolatore con un tester in scala 200mA).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Jan 19, 2017, 10:59 pm
Se stai alimentando il regolatore con 7V di drop-out già a 140mA di consumo quel povero cubetto deve dissipare 1 watt :smiley-mr-green:
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 20, 2017, 10:38 am
... ed 1W e' appunto il massimo della potenza per cui i case TO220 sono previsti, senza essere collegati ad un dissipatore di calore esterno ... ovvio, che scalda ... ;)

A proposito di questo, per isolare il regolatore dall'aletta puoi comperare (o riciclare da un vecchio alimentatore per PC bruciato) quei pad di tessuto siliconato grigio (piu raramente trovi la mica, ma ormai non la usa quasi piu nessuno) che ci sono fra i transistor e le alette di raffreddamento ... inclusa la vite con la rondella di nylon o teflon, ovviamente ... e se le dimensioni sono quelle giuste, anche l'aletta in se', alcune sono larghe sopra, altre invece abbastanza strette ... puoi anche ritagliarla a misura, stando solo attento a non piegare il punto in cui poi dovrai avvitare il regolatore ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 20, 2017, 08:08 pm
Chiedevo la misura della corrente sul regolatore appunto per capire quanto deve dissipare. Quanto assorbirà il tutto? Un RTC, una MCU, quattro shift register... 20mA in tutto a stare larghi?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 20, 2017, 11:06 pm
Ho provato col tester mettendo il positivo nell'output del dissipatore e subito a valle di questo il negativo (spero sia il modo giusto per misurare).
Con 200ma settato il display segnava 2.9/3.0... può essere?

Nel frattempo l'orologio gira... e gira... e gira... :)

Ma se dovesse surriscaldarsi troppo dicevate che va in blocco? Cosa accade?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 21, 2017, 12:17 am
Forse hai fatto saltare il fusibile nel tester.

Quote
basterebbe mettersi in serie al regolatore
(http://stor.altervista.org/p.php?p=ghe_amp.png)

Quote
Ma se dovesse surriscaldarsi troppo dicevate che va in blocco? Cosa accade?
Si abbassa la tensione in uscita. Ma non bisogna arrivare a quel punto (cioè oltre i 120 gradi).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 21, 2017, 07:19 am
Perché saltare il fusibile?
In effetti rispetto al tuo schema io il tester l'ho usato sull'uscita e non prima dell'entrata :). Non credo uesto possa far saltare il fusibile, o no?
Dopo riprovo...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 21, 2017, 11:47 am
Hai misurato così (con scala 200mA in corrente continua)?
L'orologio naturalmente nella fase di misura deve essere, collegato e funzionante...

(http://stor.altervista.org/p.php?p=ghe_amp2.png)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 21, 2017, 02:49 pm
Hai misurato così (con scala 200mA in corrente continua)?
L'orologio naturalmente nella fase di misura deve essere, collegato e funzionante...

(http://stor.altervista.org/p.php?p=ghe_amp2.png)
In effetti era proprio impostato come da schema, con tutto collegato e funzionante. L'unica cosa che sto al momento ancora utilizzando i display 7 segmenti piccolini (non i BIG display che vorrò costruire che andranno collegati direttamente al 12v).

Ho provato a riprovare a misurare... purtroppo non mi da nessun dato il tester ne utilizzando questo schema ne quello precedente.
Tenete presente che il tester era impostato come da foto allegata.

Visto che non funziona più ora e che ho notato in un paio di tentativi delle cose strane sull'orologio (del tipo che ad un certo punto si è azzerato l'orologio, oppure ha iniziato a lampeggiare)... potrebbe essere che il tester stia giocando brutti scherzi?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 21, 2017, 03:21 pm
Se impostato in quel modo hai provato anche solo un'attimo a misurare la tensione, probabilmente hai bruciato il fusibile interno da 200mA del tester (lo vedi subito, metti su continuita' e vedi se suona, o su ohm e vedi se unendo i puntali misura il corto ... se no, il fusibile e' da sostituire)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 21, 2017, 04:10 pm
Se impostato in quel modo hai provato anche solo un'attimo a misurare la tensione, probabilmente hai bruciato il fusibile interno da 200mA del tester (lo vedi subito, metti su continuita' e vedi se suona, o su ohm e vedi se unendo i puntali misura il corto ... se no, il fusibile e' da sostituire)
Mi pare che il corto lo misuri: sulla scala dei 200 ohm il corto mi da 0,6... sulla scala hFE (che non so cosa sia :)) mi da variabile tra 770 e 785... Gli altri tutti zero :(
puoi comperare (o riciclare da un vecchio alimentatore per PC bruciato) quei pad di tessuto siliconato grigio (piu raramente trovi la mica, ma ormai non la usa quasi piu nessuno) che ci sono fra i transistor e le alette di raffreddamento ... inclusa la vite con la rondella di nylon o teflon, ovviamente ...
forse ne ho uno ora provo a guardare :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 21, 2017, 04:13 pm
Quote from: ghezzia
L'unica cosa che sto al momento ancora utilizzando i display 7 segmenti piccolini
Ah, vedi che c'era il motivo? Ovvio, che se si fa passare attraverso il regolatore anche tutta la corrente dei display scalda abbestia. Nel circuito definitivo sarà più tiepido (e con la minialetta attaccata anche meno).

A questo punto il tester, nonostante il collegamento giusto, potrebbe essere stato attraversato da più di 200mA, con interruzione del fusibile.

Ma vederlo è elementare:
1) su portata 20Vcc misuri i 12V dell'alimentatore?
2) se si, facendo un circuito alimentatore 12V -> resistenza 1k -> tester, su portata 200mAcc leggi 12mA?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 21, 2017, 04:36 pm
Ma vederlo è elementare:
1) su portata 20Vcc misuri i 12V dell'alimentatore?
2) se si, facendo un circuito alimentatore 12V -> resistenza 1k -> tester, su portata 200mAcc leggi 12mA?
1) OK misura 12,06 V
2) non mi è chiaro come creo il circuito: uscita + dell'alimentatore lo collego alla resistenza, l'uscita della resistenza la collego al + del tester e il negativo del tester lo collego al negativo dell'alimentatore?

edit: ho collegato così come ho detto e misura 11,9 mA... tutto rientrato
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 21, 2017, 05:02 pm
Ora ho una domanda da farvi legata allo Stand Alone:
Io l'ho creato come da schema (trovato nella confezione del kit) che vi allego.

é ovvio che i due led inseriti (rosso e verde) non mi servono, probabilmente neanche il tasto reset.
Secondo voi è sufficiente toglierli dal circuito oppure devo modificare i collegamenti in qualche modo? C'è qualcosa, all'interno del suddetto circuito, che è comunque indispensabile per poter far funzionare lo Stand Alone?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Jan 21, 2017, 05:31 pm
My two cents:
Tra l'ingresso del regolatore e GND ci va un altro condensatore da 100nF
Puoi eliminare le due r da 330 ed i due LED ed anche il diodo 1N4148 (è una soluzione ormai obsoleta)
Indispensabile la r da 10K tra pin 1 e 5V
Il pin ARef NON va collegato ai 5V (non ha alcun significato visto che il collegamento è interno quando usi il default nell'ADC, che peraltro nemmeno usi, se non sbaglio)
Il pulsante di RESET può essere utile, ma comunque la stessa funzione la ottieni togliendo l'alimentazione
Il C da 100nF che vedi collegato sui pin VCC e AVCC va fisicamente posizioneto il più vicino possibile al pin 8 del micro.
Anche quarzo e relativi condensatori vanno tenuti abbastanza vicini ai pin 9 e 10 del micro.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 21, 2017, 06:46 pm
My two cents:
Tra l'ingresso del regolatore e GND ci va un altro condensatore da 100nF
Puoi eliminare le due r da 330 ed i due LED ed anche il diodo 1N4148 (è una soluzione ormai obsoleta)
Indispensabile la r da 10K tra pin 1 e 5V
Il pin ARef NON va collegato ai 5V (non ha alcun significato visto che il collegamento è interno quando usi il default nell'ADC, che peraltro nemmeno usi, se non sbaglio)
Il pulsante di RESET può essere utile, ma comunque la stessa funzione la ottieni togliendo l'alimentazione
Il C da 100nF che vedi collegato sui pin VCC e AVCC va fisicamente posizioneto il più vicino possibile al pin 8 del micro.
Anche quarzo e relativi condensatori vanno tenuti abbastanza vicini ai pin 9 e 10 del micro.
Cerco di capire meglio:
Tra l'ingresso del regolatore e GND ci va un altro condensatore da 100nF Un altro? lo metto in serie o in parallelo?
Puoi eliminare le due r da 330 ed i due LED ed anche il diodo 1N4148 (è una soluzione ormai obsoleta)Fatto
Indispensabile la r da 10K tra pin 1 e 5Vfatto
Il pin ARef NON va collegato ai 5V (non ha alcun significato visto che il collegamento è interno quando usi il default nell'ADC, che peraltro nemmeno usi, se non sbaglio)Tolto
Il pulsante di RESET può essere utile, ma comunque la stessa funzione la ottieni togliendo l'alimentazioneTolto
Il C da 100nF che vedi collegato sui pin VCC e AVCC va fisicamente posizioneto il più vicino possibile al pin 8 del micro.Perchè vicino al pin 8? il pin 8 non mi pare abbia nulla a che fare con questo C da 100nF, o mi sbaglio?
Anche quarzo e relativi condensatori vanno tenuti abbastanza vicini ai pin 9 e 10 del micro.fatto

Il bello è che l'orologio continua a funzionare :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Jan 21, 2017, 11:11 pm
Il condensatore ha due reofori no? uno lo colleghi all'IN del regolatore e l'altro lo colleghi a GND, diciamo che è in parallelo alla tensione di ingresso al regolatore, ma deve stare fisicamente vicino al pin IN altrimenti se ne perde la funzione

Se segui il pin 7 (scusa ho sbagliato, è il 7 e non l'8, ma quel pdf si vede da schifo) vedrai che è fisicamente collegato al 20 e lì c'è un C da 100nF, devi metterlo molto vicino al pin 7 e non al 20 come ti suggerirebbe lo schema elettrico.

Questi sono suggerimenti per evitare potenziali problemi legati ai disturbi che potrebbe captare l'alimentazione, non sono interventi risolutivi, ovvio che ti continua a funzionare tutto.

Comunque devi fare una statua a Claudio, ho seguito questo thread perché mi sono appassionato alla passione che lui ha messo nell'aiutarti, io no so cosa fa nella vita, ma posso garantire che come Professore sarebbe eccellente, e magari lo è..... :D

Anche Etem ti ha dato una buona mano e poi qualcun altro, ma la guida di Claudio è degna di Oscar alla pazienza!
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 22, 2017, 12:05 am
Quote
la guida di Claudio è degna di Oscar alla pazienza!
Credo che tu abbia ragione :) anche se devo ringraziare veramente tutti ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 22, 2017, 12:10 am
Questo schema forse è più chiaro ... Sicuramente quel condensatore (stando alle tue indicazioni) è posto in modo fuorviante:D
https://www.just-honest.com/downloads/ATMEGA%20KIT%205V/KIT_ATMEGA_5V.jpg
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Jan 22, 2017, 02:24 am
Questo schema forse è più chiaro ... Sicuramente quel condensatore (stando alle tue indicazioni) è posto in modo fuorviante:D
https://www.just-honest.com/downloads/ATMEGA%20KIT%205V/KIT_ATMEGA_5V.jpg
sì si vede decisamente meglio, è sempre lo stesso e confermo tutte le indicazioni, anche il condensatore da 100nF posto in uscita del regolatore va collegato il più vicino possibile al pin OUT.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 22, 2017, 12:46 pm
Ok! Ora sistemo tutto.
Il mio prossimo step sarà inserire le stripled... poi, se funziona tutto cercherò di iniziare l'assemblaggio :)... poi verrò personalmente a ringraziarvi uno ad uno :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 22, 2017, 05:11 pm
... poi verrò personalmente a ringraziarvi uno ad uno :D
... suona quasi come una minaccia ... :D :D :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Jan 22, 2017, 07:53 pm
... suona quasi come una minaccia ... :D :D :D
Già, suona come la famosa battuta di Liam Neeson "Io vi troverò....e vi ucciderò!"  :smiley-confuse:  :smiley-confuse:
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 22, 2017, 08:01 pm
Non sono così terribile ragazzi :).
Sicuramente capisco poco di elettronica ma alla fine son simpatico! Al massimo vi offro da bere :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 22, 2017, 10:15 pm
Stavo cercando di capire come collegare le stripled.
Ho visto che la gomma che ricopre le strip ricopre anche i connettori.
Cosa faccio taglio un pezzettino di gomma in prossimità dei connettori per saldarci i cavi?
Lo chiedo perché vorrei evitare di fare danni ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 23, 2017, 02:53 pm
Dipende dalle stripled che hai, ma al 95% e' quello che chiamano "liquidlens", cioe' resina flessibile bicomponente (la stessa che usano per quegli adesivi con la copertura trasparente) ... se e' quella, dovresti riuscire, con un po di attenzione, a scollare un paio di mm di resina dal punto dove ci sono le due piazzuole di saldatura (magari facendo prima un taglio sulla resina in prossimita' del punto di fine pelatura, in modo che sia piu facile poi togliere il pezzo senza scollarne di piu) ... a quel punto o con un tronchesino o con una lama affilata, stacchi il pezzetto che hai scollato, e ti restano le piazzuole libere per saldarci i fili ...

EDIT: ho fatto qualche immagine con una vecchia stripled che avevo qui ... qualita' schifosa, lo so, ho solo una vecchia webcam che funziona qui, ma almeno rende l'idea piu di una descrizione a parole (spero :P)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 23, 2017, 10:57 pm
eccoci!
vediamo se ho fatto il test corretto:
ho "spellato" la strip come indicato (allego foto)
poi ho provato a saldare due fili sui connettori esposti (allego ancora foto).

Mi sembra tuttavia che la vicinanza della "liquidlens" non mi permetta di fare un lavoro tanto pulito; avete suggerimenti in tal senso?

Altra questione: come collego tutti gli anodi tra loro? c'è un punto specifico nel quale entro con i 12v? alla fine come lo chiudo il circuito? cioè mi spiego meglio, il positivo dell'ultimo segmento lo devo ricollegare a quello del primo?
Ovviamente il catodo di ogni segmento lo collegherò agli ULN, ma anche qui nelle strip ho due capi da dove posso uscire con il negativo, quale uso?

Insomma, mi servirebbe un piccolo schema :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 24, 2017, 09:46 am
Nelle foto non vedo fili saldati.

Non preoccuparti per la resina, al massimo puzza un po se si brucia con il saldatore, ma non crea altri problemi ... e per le saldature, quando fai delle saldature decenti e con un buon contatto, il resto non conta (le strip non rimangono "a vista", quindi dell'estetica puoi anche fregartene un po ;))

I positivi comuni li colleghi dove vuoi, non serve che passino di strip in strip ne che siano tutti saldati allo stesso punto, lo fai in base alla comodita' di assemblaggio finale ... basta che siano elettricamente tutti insieme, e che sulle strip usi fili non troppo sottili (diciamo indicativamente dall'AWG24 in poi) ... puoi anche prendere pezzetti di millefori, tipo uno o due per ogni segmento, per collegarci gruppi di comuni, poi i vari pezzi li colleghi con cavetto decente (ad esempio il rosso-nero da 1mm che usano per le casse o roba simile) e li porti tutti insieme al positivo dell'alimentatore ...

Per i negativi, anche qui non c'e' senso di connessione, ai vari segmenti li puoi collegare indifferentemente da un lato o dall'altro, o anche il piu da una parte ed il meno dall'altra della strip, secondo come sei piu comodo ... fili AWG24 che vanno agli ULN dovrebbero essere sufficenti ... poi sullo stampato i negativi degli ULN dovranno essere collegati con "piste" o fili piu robusti, tipo minimo 0.5mm, al morsetto di massa (ed ovviamente anche al resto della massa del circuito) ... non serve neppure collegare i "com" dei diodi interni degli ULN2803, perche' il carico e' resistivo (collegarlo non gli fa male, ma non e' indispensabile)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 24, 2017, 05:09 pm
Nelle foto non vedo fili saldati.
si in effetti non mi ha preso la foto :)

sulle strip usi fili non troppo sottili (diciamo indicativamente dall'AWG24 in poi) ...
cavoli mi sembrano un pochino grossi, no?
io stavo per usare dei fili grossi come i jumper compresi nei kit. troppo piccoli? :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 24, 2017, 05:23 pm
Credo quelli siano AWG24 ... almeno quelli che avevo in giro io lo erano ...

AWG24 (o 24AWG come lo scrivono loro), e' circa 0.5mm di diametro (da non confondere con la sezione ... come puoi vedere da una qualsiasi tabella di conversione (http://www.themeter.net/diametri3.htm), sono circa 0.2 millimetri quadri) ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 25, 2017, 02:58 pm
ho ricomposto con le stripled i 4 displayoni a 7 segmenti...
stasera provo a saldare e connettere tutto al circuito. Speriamo non esploda nulla :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 27, 2017, 11:27 pm
rieccomi finalmente.
Ho collegato tutti i segmenti e il risultato è quello che vedete nella foto :(.
purtroppo tutto il display delle decine di ore e la parte bassa delle ore (seg. c,d ed e) non funzionano.

Immagino sia un problema di collegamenti riusciti male, infatti funziona tutto il resto, il tempo scorre, i pulsanti SET funzionano regolarmente, i minuti si vedono fino al 59 regolarmente ecc. ecc.

Sapreste dirmi un metodo certo per capire dove sta l'interruzione? c'è una logica nell'utilizzo del tester che mi permette di capire meglio?

Forse è meglio passare all'assemblaggio definitivo? se fosse qualche segmento di strip bruciato?

Mamma mia quante domande :)

Grazie ancora
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 28, 2017, 10:03 am
Come foto, e' troppo piccola per poterci capire qualcosa ... meglio se fai foto di dettagli (a fuoco) e parti diverse ...

Hai controllato bene che non ci siano ponticelli di stagno da qualche parte, o fili che non fanno contatto bene ? ... se fosse una sola cifra e tutta insieme, potrebbe essere uno degli ULN, ma quella che funziona a meta' sembrerebbe escluderlo ... contatti fra le breadboard e la millefori a posto ? ... niente corti sotto la millefori ? ... masse o comuni scollegati ? ... cosi al volo non mi viene in mente altro ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 28, 2017, 10:34 am
In effetti escluderei guasti ai componenti perché fino a poco prima di collegarli ai displayoni con i 7 segmenti piccoli tutto funzionava a meraviglia.
Propenderei più per dei pasticci nei collegamenti fatti un pochino di fretta e malamente.
Per questo chiedevo se avevate suggerimenti sulle modalità di utilizzo del tester nella ricerca dei guasti.
Oggi provo a controllare meglio.
Tra l'altro i display delle ore ho provato a saldarli sulla millefiori e poi riportati agli ULN, mentre quelli dei minuti (che sono gli unici che funzionano bene) li ho collegati col metodo "capuozzo"... ossia attorcigliando i fili tra loro :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Jan 28, 2017, 04:24 pm
Quote from: ghezzia
escluderei guasti ai componenti perché fino a poco prima di collegarli ai displayoni con i 7 segmenti piccoli tutto funzionava a meraviglia
Eh, ma sul "fino a poco prima" non abbiamo nessun dubbio... è sul poco dopo che... :smiley-roll-blue:

Il tester in questo caso lo trovo poco utile.

I segmentoni prima di collegarli agli ULN li hai provati a mano collegandoli direttamente a GND? SI[ ] NO[ ]

Se ricolleghi i segmentini agli ULN si accendono come prima? SI[ ] NO[ ]

si si - cannato il cablaggio
si no - cannato il cablaggio e guastato gli ULN
no si - cannato il cablaggio e/o segmentoni guasti
no no - ripassa a settembre :P
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 28, 2017, 05:17 pm
I segmentoni prima di collegarli agli ULN li hai provati a mano collegandoli direttamente a GND? SI[ ] NO[ ]

Alla fine dopo questa prima prova empirica ho trovato il gusto.... un segmento non aveva l'anodo correttamente collegato a metà della cifra delle ore... ora funziona tutto correttamente come vedete dalla foto.... Eurekaaaaaa!!! :)

Sono molto contento, ora inizierò l'assemblaggio definitivo.

C'è solo una cosa.... i due punti centrali non si accendono più, è normale? non mi pare di aver cambiato qualcosa nel cablaggio degli stessi anzi li ho lasciati sulla breadboard come erano prima
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 30, 2017, 06:28 pm
visto che questa sera vorrei iniziare l'assemblaggio definitivo almeno della parte del circuito, avete dei suggerimenti in tal senso? del tipo: è meglio iniziare dalle tracce dei collegamenti oppure dalla saldatura dei componenti?
C'è un modo di verificare passo passo che stia collegando nel modo corretto i contatti?
C'è un modo di verificare che le tracce siano effettivamente collegate senza "buchi" invalidanti?
Grazie ancora del supporto ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 31, 2017, 09:51 pm
Nessun aiutino? :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 01, 2017, 09:47 am
Dare un suggerimento del genere su una millefori e' difficile, perche' ognuno ha un proprio "stile" di assemblaggio, e potrebbe non corrispondere alle necessita' o alle abitudini degli altri ...

Io, ad esempio, replicherei abbastanza fedelmente la disposizione che viene naturale sulla breadboard (catena di registri allineata, catena di driver allineata di fianco, MCU dalla parte opposta con lo spazio per il regolatore e gli altri componenti, e cosi via), perche' il millefori non costringe necessariamente ad usare i "pallini" di stampato per farci delle piste ... li si possono usare ad esempio per le piste di distribuzione dell'alimentazione, poi se ne avanzano, dove ci sono connessioni brevi e dirette o quasi, ma dopo si passa ai fili isolati ed il problema non esiste piu ... voler replicare a tutti i costo le tracce "sopra e sotto" di uno stampato normale anche sulle millefori e' una cosa inutile e che fa perdere un sacco di tempo complicando la vita per nulla ... ma questo e' come la penso io, non una regola universale ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 01, 2017, 11:44 am
voler replicare a tutti i costo le tracce "sopra e sotto" di uno stampato normale anche sulle millefori e' una cosa inutile e che fa perdere un sacco di tempo complicando la vita per nulla ...
Ecco! in effetti questa era una cosa che mi preoccupava...

A questo punto mi sorge un dubbio: la mia millefiori ha le connessioni solo su una faccia, cosa faccio, i pin dei componenti li infilo dal lato senza connessioni e li saldo dal lato connesso, giusto? E i fili che utilizzo per i collegamenti, li lascio dal lato "connectionless"?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 01, 2017, 02:07 pm
I fili li puoi mettere dove vuoi, e' questo il bello delle millefori ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 01, 2017, 06:15 pm
grazie Etem.

Invece suggerimenti su verifiche che possa fare passo passo in modo da vedere che stia collegando nel modo giusto ne hai/avete?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Feb 01, 2017, 07:24 pm
Scusa ghezzia, questa tua richiesta non ha senso. Tu hai realizzato un prototipo funzionante, come? seguendo lo schema elettrico hai collegato tutto punto-punto con fili volanti e componenti sulla breadboard. Ora devi rifare la stessa manovra ma con la milleFORI (senza petali, gambi, foglie, ecc) al posto della breadboard e i fili a saldare al posto di quelli volanti. Il principio è identico, l'unico controllo che puoi fare è se le saldature sono corrette, ti basta un tester/multimetro sulla portata ohm x1 e toccare con i puntali le due estremità del collegamento, se sono in cortocircuito la "pista" è corretta, altrimenti c'è un'interruzione, ma se sbagli il punto di partenza o di arrivo come fai a trovare il problema? Purtroppo non c'è modo, devi sono controllare e ricontrollare che il punto di partenza ed arrivo siano esattamente quelli che volevi usare, come da schema elettrico. D'altra parte se non si è molto esperti in questa tecnica l'errore è sempre in agguato, eccetto l'inversione di alimentazione, che è quasi sempre distruttiva, gli altri errori provocano solo malfunzionamenti, né più né meno di quelli che hai avuto finora e che ti sei risolto da solo semplicemente ricontrollando i collegamenti e correggendo gli errori. Tutto qui! :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 01, 2017, 07:28 pm
Quello che ti posso dire e' come in genere procedo io ... prima trovo una disposizione dei componenti il piu "logica" possibile (nel senso di cercare di mettere vicina tutta la roba che va collegata insieme, tenere i quarzi (se ci sono) vicini ai micro e distanti da tutto il resto, sparpagliare un po di condensatori da 100n sulla maggior parte delle alimentazioni degli integrati (nel senso di cercare se possibile di metterne uno vicino ad ogni integrato, o comunque dovunque ce ne stia uno), poi inizio con le masse e con le alimentazioni sfruttando un pezzo di filo flessibile stagnato sui pallini per portarle dappertutto (in genere per la massa cerco di collegarla "a griglia", e se possibile anche per il positivo, comunque mai usare un solo filo per fargli girare tutti i componenti, che se si stacca da qualche parte poi ti resta un pezzo di circuito che non va ... sempre almeno due o tre percorsi, anche di piu se il circuito e' grosso), poi via via il resto dei fili, partendo dai piu corti e finendo con i piu lunghi ...

Per testare le connessioni, se proprio vuoi essere sicuro, usa un tester ogi 5 o 10 fili, e ti segni sullo schema con un'evidenziatore i piedini che hai collegato e quelli che hai controllato (magari con due colori diversi, cosi vedi a colpo d'occhio se ne hai dimenticato uno) ... questa e' una cosa che con il tempo e la pratica magari poi abbandonerai, ma all'inizio, o per schemi molto incasinati, aiuta abbastanza ...

EDIT: Michele mi ha preceduto :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 02, 2017, 09:22 am
l'unico controllo che puoi fare è se le saldature sono corrette, ti basta un tester/multimetro sulla portata ohm x1 e toccare con i puntali le due estremità del collegamento, se sono in cortocircuito la "pista" è corretta, altrimenti c'è un'interruzione
Vedi che un senso la mia domanda ce l'ha? mi hai già dato un ottimo suggerimento. :)

prima trovo una disposizione dei componenti il piu "logica" possibile ......
.......ti segni sullo schema con un'evidenziatore i piedini che hai collegato e quelli che hai controllato (magari con due colori diversi, cosi vedi a colpo d'occhio se ne hai dimenticato uno) ...
Ecco, anche questi mi sembrano degli ottimi aiuti. Grazie Etem

(in genere per la massa cerco di collegarla "a griglia", e se possibile anche per il positivo, comunque mai usare un solo filo per fargli girare tutti i componenti, che se si stacca da qualche parte poi ti resta un pezzo di circuito che non va ... sempre almeno due o tre percorsi, anche di piu se il circuito e' grosso)
Quindi se io facessi una striscia per i 5v e una per il GND dalla quale partono i vari collegamenti ai componenti potrebbe andare bene? Sullo stile delle breadboard insomma..
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 02, 2017, 10:13 am
Se hai lo spazio ai lati, nei punti in cui hai file di integrati allineate, potresti fare una cosa di questo tipo

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=197199)

Con le due tracce principali dalle due parti dello stampato, e le linee che portano le alimentazioni saldate in mezzo agli integrati (attenzione a non fare corti) ... e se vuoi proprio essere sicuro, li "riporti" dal lato componenti con dei pezzi di filo isolato, in modo da raddoppiare le connessioni (il tuo circuito non ha componenti RF, quindi fare degli anelli in questo modo non crea alcun problema) ...

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=197201)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 02, 2017, 09:06 pm
mi sembra un'ottima soluzione...
sto disegnando moltissimo e saldando pochissimo... mi sa che è ora che inizio :)
però prima volevo farvi vedere cosa avevo partorito in termini di circuito definitivo. a breve aggiornamenti ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Feb 02, 2017, 09:27 pm
Io in genere collego prima tutte le alimentazioni e, prima di saldare il regolatore e gli elettrolitici, controllo col tester che tutte le masse "suonino" tra loro, e tutti i positivi altrettanto. Poi collego i vari segnali e verifico che i punti che devono risultare collegati sui pin degli zoccoli suonino tra loro, ma non suonino tra altri (non bisogna verificare solo la continuità, ma anche l'assenza di cortocircuiti). E si deve stare attenti che ad esempio una resistenza o un diodo non causino un corto apparente ma di fatto inesistente. Solo alla fine si inseriscono gli integrati.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 02, 2017, 11:31 pm
Anche questa mi sembra un'ottima strada. Con gli zoccolini dovrei riuscire anche a calcolare correttamente gli ingombri

Vorrei tuttavia prima farvi vedere come ho studiato lo schema (http://www.ghezzi.info/images/Documents/SchemaDraw.pdf).

Tenete presente che le linee tratteggiate (nella mia testa) dovrebbero essere saldature nella faccia della millefiori "connessa", quelle non tratteggiate invece rimarrebbero dei fili dal lato "non connesso".

Mi direste se secondo voi i collegamenti son tutti corretti? ho cercato di ricopiare fedelmente il prototipo che ancora continua a funzionare... però non vorrei essermi dimenticato qualcosa.

Scusate se insisto ma vorrei evitare di accorgermi a metà strada che una traccia non ci sta perché ho inserito un componente nei "fiori" sbagliati :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 03, 2017, 10:26 am
Non e' necessario che fai tutti quegli incroci per mantenere i segmenti sugli stessi pin dell'ULN ... puoi anche connetterli alla rovescia mettendo shift ed ULN paralleli e semplificandoti la vita ... tanto poi sei tu che porta i fili dall'ULN ai segmenti, quindi il fatto che siano nell'ordine attuale (A=1, B=2, ecc), oppure invertiti (A=7, B=6, ecc) sulle uscite dell'ULN non conta nulla, basta che lo sappia tu ... esempio al volo di cablaggio fra i due IC fatto in questo modo (lo shift che pilota anche i punti, gli altri avranno un filo in meno) :

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=197321)

;)

EDIT: esempio alternativo, se vuoi tenere anche le linee di alimentazione fra i pin degli integrati (coppia a destra senza punti, coppia a sinistra con punti, ne ho disegnate solo due tanto per dare l'idea, le tracce rosse sono sopra)

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=197323)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 03, 2017, 01:00 pm
Non e' necessario che fai tutti quegli incroci per mantenere i segmenti sugli stessi pin dell'ULN ... puoi anche connetterli alla rovescia mettendo shift ed ULN paralleli e semplificandoti la vita ... tanto poi sei tu che porta i fili dall'ULN ai segmenti, quindi il fatto che siano nell'ordine attuale (A=1, B=2, ecc), oppure invertiti (A=7, B=6, ecc) sulle uscite dell'ULN non conta nulla, basta che lo sappia tu ...
Beh! in effetti se potessi collegarli in quel modo sarebbe perfetto... non devo cambiare nulla a livello di sketch? lo chiedo perchè invertendo i PIN non vorrei che si accendessero i segmenti nel modo sbagliato.

EDIT: esempio alternativo, se vuoi tenere anche le linee di alimentazione fra i pin degli integrati (coppia a destra senza punti, coppia a sinistra con punti, ne ho disegnate solo due tanto per dare l'idea, le tracce rosse sono sopra)

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=197323)
Questo schema invece non l'ho capito molto :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 03, 2017, 02:36 pm
... lo chiedo perchè invertendo i PIN non vorrei che si accendessero i segmenti nel modo sbagliato.
A livello di sketch non cambia nulla, cambia solo l'ordine delle uscite dagli ULN ... se prima il segmento A lo collegavi al driver 1, il b al 2, ecc, ora li inverti semplicemente (gli ULN non hanno un'ordine di utilizzo, contengono semplicemente 8 driver darlington separati, che puoi usare nell'ordine che vuoi tu)

Per dire, come li avevi disegnati tu, il segmento A era il pin 16 dell'ULN, il B era il 15, e cosi via, con la cifra delle ore che aveva i punti collegati al piedino 10 ... collegati cosi invece il segmento A e' il piedino 9, il B e' il piedino 10, e cosi via, con la cifra delle ore che ha i punti collegati al piedino 16 ... cambia solo quello, quindi cambiera' solo l'ordine con cui tu colleghi i pezzi delle striscie di led agli ULN, ma lo sketch rimane uguale ...

Quote
Questo schema invece non l'ho capito molto :)
E' la stessa cosa del primo, solo che invece di far passare il pin 15 dello shift "sotto", gli ho messo un ponticello per consentire di passare "sotto" con le alimentazioni (forse nel disegno non si distingue molto bene, dove la traccia blu dal pin 15 incrocia quelle delle alimentazioni, cambia colore, in parte ai condensatori. il pezzetto rosso scuro viaggia "sopra" ... un po come il tuo disegno le tracce tratteggiate e quelle continue, solo che con Eagle viene poco chiaro) ... ovviamente poi dovrai collegare anche tutti gli altri pin, io ho disegnato solo la parte delle connessioni fra gli shift e gli ULN, per fare un'esempio ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 03, 2017, 05:04 pm
Per dire, come li avevi disegnati tu, il segmento A era il pin 16 dell'ULN, il B era il 15, e cosi via, con la cifra delle ore che aveva i punti collegati al piedino 10 ... collegati cosi invece il segmento A e' il piedino 9, il B e' il piedino 10, e cosi via, con la cifra delle ore che ha i punti collegati al piedino 16 ... cambia solo quello, quindi cambiera' solo l'ordine con cui tu colleghi i pezzi delle striscie di led agli ULN, ma lo sketch rimane uguale ...

Se così è allora si semplifica notevolmente il tutto... ridisegno :).

E' la stessa cosa del primo, solo che invece di far passare il pin 15 dello shift "sotto", gli ho messo un ponticello per consentire di passare "sotto" con le alimentazioni (forse nel disegno non si distingue molto bene, dove la traccia blu dal pin 15 incrocia quelle delle alimentazioni, cambia colore, in parte ai condensatori. il pezzetto rosso scuro viaggia "sopra" ... un po come il tuo disegno le tracce tratteggiate e quelle continue, solo che con Eagle viene poco chiaro) ... ovviamente poi dovrai collegare anche tutti gli altri pin, io ho disegnato solo la parte delle connessioni fra gli shift e gli ULN, per fare un'esempio ...
OK adesso è più chiaro, grazie ;)

Il resto dei collegamenti ti/vi sembrano corretti? A partire dalla Atmega intendo...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Feb 03, 2017, 05:57 pm
Il resto dei collegamenti ti/vi sembrano corretti? A partire dalla Atmega intendo...
A me sembra che non ci sia quasi nulla a posto... (sempre che i tratteggi non mi traggano in inganno).
Parto sempre dalle alimentazioni, in particolare mi interessava vedere come era collegato il negativo degli ULN... e mi sembra che in nesun punto raggiunga il GND del regolatore (in sostanza in tutta la parte sopra l'ATMEGA manca il GND).
Allora parto dal regolatore, e vedo che il negativo non è portato neppure sul pin 8 dell'ATMEGA (sul disegno sarebbe meglio indicare il verso degli integrati o almeno i numeri dei pin estremi, se non anche la sigla dei segnali più importanti altrimenti chiunque si confonde).
Comunque... vedo un ulteriore corto tra i pin 20 e 22 (con quel condensatore che quindi è in corto pure lui e +5 e GND dell'ATMEGA sempre in corto tra loro).
Poi i 5V portati sui pin 10 degli ULN... in questo modo i 12V in arrivo dai segmenti si riversano sulla linea 5V attraverso i diodi interni degli ULN... quel pin come già detto serve solo per carichi induttivi (relé ecc) e casomai va messo alla tensione di alimentazione di quei carichi (in questo caso 12V).
Il pin reset dell'ATMEGA non è collegato a niente...

Non ho analizzato altro ma mi sembra già abbastanza...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 03, 2017, 06:10 pm
Non ho analizzato altro ma mi sembra già abbastanza...

Si... in effetti è già abbastanza
A casa verifico meglio il prototipo... che è funzionante e vi dico :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 04, 2017, 09:59 am
... volendo proprio essere pignoli, anche l'ingresso dell'ULN che corrisponde all'uscita dei punti centrali non era collegato ... ma se lo deve rifare, meglio aspettare la nuova versione ;)

Ghezzia, un suggerimento, inizia sempre dalla massa ed assicurati di averla portata dappertutto, anche con doppie tracce se serve ... ed in particolare, usa una connessione di massa "robusta" per gli ULN, portata in modo piu efficace possibile al morsetto dell'alimentazione ... perche' alla fine, tutta la corrente dei vari segmenti accesi passera' di li ... ;)

Ed un'altra cosa ... il "COM" degli ULN non e' un'alimentazione positiva, e' il comune dei diodi interni, che si usano nel caso di impiego con carichi induttivi, rele', ecc ... se usi carichi resistivi, come le strip led, puoi lasciarlo scollegato, ma se lo vuoi collegare NON va connesso ai 5V delle logiche, ma al positivo del carico ... specie quando il positivo del carico e' piu alto dell'alimentazione delle logiche, come in questo caso ... altrimenti rischi che attraverso i carichi, una parte del 12V ti rientri nel 5V bruciando le logiche ... nel tuo caso forse non succede perche' la caduta sui led e' superiore alla soglia, ma se fossero semplici carichi resistivi, senza caduta, rischieresti di strinare tutto, quindi non farlo mai ... piuttosto lasciali scollegati ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 05, 2017, 07:16 pm
Rieccomi! finalmente sono riuscito a terminare la versione (spero definitiva) dello Schema (http://www.ghezzi.info/images/Documents/SchemaDraw03.pdf)...
ho cercato di riprendere quello che avete suggerito voi negli ultimi post ma mi rimangono alcuni dubbi:



Pensate sia sulla strada giusta?

Grazie ancora :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Feb 05, 2017, 08:56 pm
1) La traccia GND che fa il giro non bypassa il condensatore, se fosse un circuito audio sarebbe una bocciatura, ma qui non da fastidio :) Più corretto sarebbe stato tenere la GND dei soli ULN separata da quella di tutto il resto e farle unire solo al regolatore.

Il condensatore in ingresso al regolatore andrebbe scambiato con quello in uscita, solitamente la capacità in ingresso è più elevata.

Manca il "condensatore 104" sull'ingresso del regolatore.

Il pin reset dell'ATMEGA è sempre scollegato.

Il pin 8 (GND) anche.

Sulla breadboard è collegato così?


2) Come più volte ripetuto non serve, quel pin non è un'alimentazione ma una via di fuga per contenere le extratensioni prodotte dai carichi induttivi..

3) Se nel tratto di massa che porta fino all'ATMEGA non passano forti impulsi di corrente (non ne passano, ma il motivo di tenere separate le masse era per scongiurarlo totalmente) allora va bene.

Piuttosto di solito il bus i2c prevede due resistenze di pull-up da qualche k sui segnali SCL e SDA, qui, vista anche la distanza ridotta, a quanto pare sono sufficienti quelle interne della MCU.

4) La linea GND che sale dopo la MCU la farei solo scendere di tre fori senza fare il giro a ritroso da sopra.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 06, 2017, 09:31 pm
Grazie Claudio
1) La traccia GND che fa il giro non bypassa il condensatore, se fosse un circuito audio sarebbe una bocciatura, ma qui non da fastidio :) Più corretto sarebbe stato tenere la GND dei soli ULN separata da quella di tutto il resto e farle unire solo al regolatore.
Quindi se la unisco solo sul lato destro dello schema è ok?

Il condensatore in ingresso al regolatore andrebbe scambiato con quello in uscita, solitamente la capacità in ingresso è più elevata.
OK scambio ;)

Manca il "condensatore 104" sull'ingresso del regolatore.
Dove lo metto a cavallo tra l'ingresso del regolatore e il pin centrale dello stesso?

Il pin reset dell'ATMEGA è sempre scollegato.
è scollegato perché volutamente non ho voluto inserire il tasto reset... da quello che ho capito non è obbligatorio e, in effetti, a cosa dovrebbe servire su un orologio?

Il pin 8 (GND) anche.

Sulla breadboard è collegato così?
Si è collegato esattamente così, non ha connessioni il pin 8

2) Come più volte ripetuto non serve, quel pin non è un'alimentazione ma una via di fuga per contenere le extratensioni prodotte dai carichi induttivi..
OK, allora lascio così... meno tracce e collegamenti da fare ;)

3) Se nel tratto di massa che porta fino all'ATMEGA non passano forti impulsi di corrente (non ne passano, ma il motivo di tenere separate le masse era per scongiurarlo totalmente) allora va bene.
Se è confermato che vada bene lasciare collegato solo il lato dx allora sono a posto

Piuttosto di solito il bus i2c prevede due resistenze di pull-up da qualche k sui segnali SCL e SDA, qui, vista anche la distanza ridotta, a quanto pare sono sufficienti quelle interne della MCU.
Pensi sia il caso di metterle comunque? se si in che punto esatto le metto?

4) La linea GND che sale dopo la MCU la farei solo scendere di tre fori senza fare il giro a ritroso da sopra.
Ridisegno :).

Grazie ancora
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Feb 06, 2017, 09:41 pm
Anche se non vuoi usare il pin reset devi mettere una pull-up da 10k, in situazioni particolari il pin potrebbe andare in low e resettarti involontariamente l'orologio
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Feb 06, 2017, 11:06 pm
Quote from: ghezzia
Grazie ClaudioQuindi se la unisco solo sul lato destro dello schema è ok?
Si è appena detto di non far passare forti correnti nella pista di massa inferiore che va all'ATMEGA, se unisci solo sulla destra fai passare tutta la corrente proprio da li. Ok che in questo caso probabilmente non da fastidio, ma è esattamente l'opposto, allora piuttosto è meglio lasciare tutto l'anello.
Quote
Dove lo metto a cavallo tra l'ingresso del regolatore e il pin centrale dello stesso?
Si
Quote
Si è collegato esattamente così, non ha connessioni il pin 8
Allora c'è un collegamento interno nell'ATMEGA, ma probabilmente non è il modo migliore per farlo funzionare.
Quote
Pensi sia il caso di metterle comunque? se si in che punto esatto le metto?
Per una pista così corta, qualsiasi punto verso +5V. Due resistenze da 10k. Ma se non ci sono problemi può restare cosi'.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 07, 2017, 09:57 pm
Ecco lo l'ultimo schema (http://www.ghezzi.info/images/Documents/SchemaDraw04.pdf) realizzato:

Si è appena detto di non far passare forti correnti nella pista di massa inferiore che va all'ATMEGA, se unisci solo sulla destra fai passare tutta la corrente proprio da li.
Ok che in questo caso probabilmente non da fastidio, ma è esattamente l'opposto, allora piuttosto è meglio lasciare tutto l'anello.
OK, allora ho lasciato l'anello ;)


Allora c'è un collegamento interno nell'ATMEGA, ma probabilmente non è il modo migliore per farlo funzionare.
Ho portato il pin 8 sulla linea gnd inferiore. Va bene così?

Per una pista così corta, qualsiasi punto verso +5V. Due resistenze da 10k. Ma se non ci sono problemi può restare cosi'.
Lascerei così per evitare ulteriori complicazioni.

Inoltre:
Ho aggiunto il condensatore 104 all'ingresso del regolatore. E' posizionato corretto?

Anche se non vuoi usare il pin reset devi mettere una pull-up da 10k, in situazioni particolari il pin potrebbe andare in low e resettarti involontariamente l'orologio
Ho aggiunto una resistenza prima del pin reset (il pin 1). tuttavia non ho inserito il pulsante reset, è corretto?

4) La linea GND che sale dopo la MCU la farei solo scendere di tre fori senza fare il giro a ritroso da sopra.
Ho portato al PIN 22 (senza passare dal condensatore 104) la linea GND inferiore. Era questo che intendevi?

Notate altri errori di connessione, migliorie da fare?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Feb 07, 2017, 10:42 pm
Solo per puntualizzare, la resistenza da 10k va con un capo qualsiasi al pin reset del micro e l'altro capo ad un punto qualsiasi dei +5V.
Forse ora un'immagine aggiornata sarebbe utile.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 08, 2017, 06:56 am
Si, in effetti è quello che ho fatto. L'unica cosa è che l'ho collegata all'uscita del regolatore prima dei due condensatori. Deve andare dopo? Se così fosse mi viene anche più comodo collegarla ai +5 che stanno un paio di linee sotto al pin.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Feb 08, 2017, 10:14 am
Non cambia niente, almeno in questo specifico caso, ma i due 104 dovrebbero stare proprio sui due pin IN e OUT del regolatore e collegati entrambi con l'altro capo al pin centrale, credo ti sia stato detto molte volte; vale in generale per tutti i 104 che hai nel circuito e sono destinati ai pin Vcc degli integrati; troppo lontani non hanno molto senso
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 11, 2017, 04:28 pm
Rieccomii! Settimana pesante al lavoro :)

Ho corretto lo schema (http://www.ghezzi.info/images/Documents/SchemaDraw05.pdf) mettendo la resistenza del reset direttamente sotto lo stesso PIN collegandola al +5v (scavalcando le linee Clock, Latch e Data).

Ho avvicinato il 104 che porta all'ingesso del regolatore al PIN stesso del regolatore.

Ho fatto lo stesso col condensatore 104 che sta a cavallo dei PIN gnd e 5v dell'Atmega. In questo modo ho connesso però oltre al 104 GND e +5v provenienti dal circuito. Va bene lo stesso?

Infine mi sono permesso di togliere le linee GND che scendevano dalla linea superiore passando tra gli shift lasciandone solo due: una a sx di tutti gli shift e l'altra a dx degli stessi. Anche qui, pensate vada bene lo stesso?

Direi che se non ci sono altri errori di collegamento posso iniziare a saldare... :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 11, 2017, 05:29 pm
Mah ... secondo me', esplode tutto ...


... scherzo, ovviamente ;) ... non mi sembra di vederci errori particolari ... ho solo un dubbio sul come ci fai stare il quarzo in due fori a passo 2.54 (come l'hai disegnato tu), perche' di solito i quarzi richiedono almeno 4 fori come distanze dei terminali ... se li pieghi, attento che non tocchino il case di metallo del quarzo ...

Prova a montarlo, e vediamo se si accende (o se fa una nuvola a forma di fungo, quando dai tensione ... ;) :D)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 11, 2017, 05:32 pm
In effetti il quarzo che ho io (che era nel kit dell'Atmega UNO) prende solo 2 PIN... ergo nessun piegamento ;).

Nel frattempo però ho fatto un tentativo sul prototipo mettendo la resistenza da 10k tra il PIN reset dell'Atmega e la linea +5v e mi scombussola tutto l'orologio nel senso che accende tutti i segmenti li fa lampeggiare velocemente... credo ci sia qualcosa di sbagliato :). Sapreste dirmi dove?

E' vero che potrei lasciare senza collegamento il PIN reset (come è attualmente sul prototipo funzionante) ma è vero anche che il rischio del reset "anomalo" di cui mi parlavate non mi lascia del tutto tranquillo :D.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 12, 2017, 11:51 am
... lampeggiare velocemente ... cioe' continua a resettare ciclicamente ? ... la prima cosa che mi viene istintivo chiederti, e' se ci hai messo anche il condensatore da 100n, fra il pin reset e la massa, come si dovrebbe sempre fare ... dallo schema non lo vedo (puoi inserirlo tipo cosi)

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=198747)

ed ha una doppia funzione, garantire che ci sara' sempre un'impulso di reset ad ogni accensione, cosi il micro parte sempre da zero, e stabilizzare il pin durante il funzionamento ...

EDIT: anche un'altro consiglio, magari non indispensabile, ma che non fa mai male ... i pin inutilizzati del micro, invece di lasciarli scollegati, sarebbe sempre meglio collegarli a massa ... oppure piu semplicemente, dichiararli tutti "INPUT-PULLUP", anche se inutilizzati, cosi non rimangono "volanti" e non rischiano di captare disturbi ... dovrebbe bastare la semplice dichiarazione di stato all'inizio ... ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 12, 2017, 08:55 pm
eccomi!.
In effetti non avevo messo il condensatore come da te indicato però anche col condensatore 104 e la resistenza continua a fare reset...
mi sa che non era il condensatore.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 13, 2017, 06:59 am
Scusate! Atta piccola domanda: non c'è un modo per regolare l'intensità della luminosità delle stripled? Stanotte ho lasciato il prototipo acceso e devo essere sincero la luce che emana è un tantino esagerata :).
Che so un potenziometro inserito da qualche parte che mi permette di regolarla?
Portate pazienza ma man mano che vado avanti mi rendo conto di varie cose :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Feb 13, 2017, 11:16 am
Se stai usando il PWM, è sufficiente diminuirne il valore, altrimenti ti tocca agire sulle resistenze, ma io ora sinceramente non ho presente nulla di ciò che hai fatto come circuito; se hai messo una R ogni "segmento" cambiarle/modificarle tutte è un'impresa folle, potresti invece mettere un resistenzone sulla linea dell comune delle strip, a monte di tutto, e prevedere un interruttore come by-pass quando è giorno. A farla sofisticata potresti usare una fotoresistenza che pilota un bjt con la potenza adeguata e modulare la luminosità in base alla luce ambientale.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 13, 2017, 03:02 pm
Se stai usando il PWM, è sufficiente diminuirne il valore
Si in effetti lo sketch prevede il PWM (Se ho capito bene il suo significato ;) ) devo solo capire come diminuirlo... poi devo rimettere l'Atmega sulla UNO, ricaricare lo sketch e poi nuovamente rimetterla sul circuito

se hai messo una R ogni "segmento" cambiarle/modificarle tutte è un'impresa folle
Tieni presente che ho ricreato i segmenti con delle stripled quindi strada impercorribile come giustamente segnali tu ;)

A farla sofisticata potresti usare una fotoresistenza che pilota un bjt con la potenza adeguata e modulare la luminosità in base alla luce ambientale.
Questa mi sembra una soluzione interessante, secondo te dove e come lo inserisco all'interno del circuito?

Altro quesito legato ai 2 punti centrali: ho notato dal prototipo che la luminosità dei due punti centrali è molto bassa (quasi fievole), potrebbe essere che i due LED (A bulbo classici) che sto usando prendono i +5v del circuito e non i 12v delle stripled? Se così fosse li posso inserire tranquillamente nella parte del display che "gira" a 12v?

Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 13, 2017, 04:35 pm
Per i due punti: ovvio che devono andare al +12, se le resistenze le hai calcolate per quel valore ;)

Per il dimming: il PWM andrebbe nel pilotaggio dei tempi di ON ... ma non mi sembra che tu usi quel sistema ... usare una fotoresistenza che pilota un BJT (o mosfet) sarebbe fattibile, ma non omogeneo (intendo dire che ti toccherebbe aggiungere una resistenza al comune generale di tutte le strip, ma in questo modo, con la resistenza non bypassata, per ogni numero diverso di segmenti accesi avresti una luminosita' di quelli accesi leggermente differente, cioe' piu sono i segmenti accesi, meno sono luminosi, e viceversa ...

Pero' mi viene in mente una possibile soluzione, ma che richiede un'adattamento dello sketch, ed inoltre non sono sicuro che sia fattibile, perche' non ho controllato il tuo sketch (ed anche perche' non sono un programmatore :P) ... la mia idea si baserebbe sul variare il tempo di accensione dei segmenti in base al valore letto da una fotoresistenza per rilevare la luminosita' ambiente (e fin qui penso sia gia stato fatto e rifatto) ... pero', servirebbe modificare lo sketch in modo che modifichi l'intervallo di spegnimento dei segmenti fra un multiplexing e l'altro, senza modificare la frequenza di multiplexing ...

Provo a fare un'ipotesi ... mettiamo che il tuo sketch funzioni cosi: mando il valore dei display agli shift, faccio un latch, aspetto "X" millisecondi, mando il nuovo valore, e cosi via ...

in quel caso, lo sketch andrebbe modificato in modo da fare questo: spengo tutto, mando il valore dei display agli shift, faccio un latch, aspetto "Y" millisecondi, accendo tutto, aspetto "X" millisecondi, spengo tutto, e cosi via ... dove la somma di "Y" ed "X" e' lo stesso tempo della "X" del primo esempio, ma la proporzione fra i due viene cambiata in base alla luminosita' misurata dalla fotoresistenza, piu c'e' luce, piu aumento "X" e diminuisco "Y", meno c'e' luce, faccio l'opposto ...

Facendo in quel modo, ti serve usare anche il pin "output enable" degli shift, in modo da poter "spegnere" tutto quanto a piacere (ed ovviamente un pin analogico come ingresso per leggere la fotoresistenza, ma quello e' ovvio) ... nel tuo schema non lo usi, l'hai collegato direttamente a massa per mantenere attive le uscite sempre ... se invece lo colleghi a massa con una R da 10K e ad un pin del 328 settato come uscita, puoi usarlo per spegnere contemporaneamente tutti i segmenti mandandolo alto ...

Per quello io consiglio sempre di usarlo, l'enable, perche' da maggiore flessibilita' ed alternative ... si potrebbe addirittura limitarsi ad usarlo pilotandolo con un segnale PWM per aumentare e diminuire tutti i tempi indipendentemente dallo stato dei segmenti, ma e' da provare se causa problemi di sfarfallio interagendo con il pilotaggio degli shift ... questa sarebbe probabilmente la soluzione piu semplice, a livello di modifiche allo sketch, perche' non dovresti cambiare la logica di pilotaggio dei segmenti, ma solo aggiungere una funzione che legge il valore della fotoresistenza e lo usa per cambiare il duty-cycle del pin PWM ... e' da provare, magari funziona ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Feb 13, 2017, 07:10 pm
Riguardo il PWM, se si può gestire via software il valore, allora basterebbe mapparlo con un pin dell'ADC collegato ad un trimmer o potenziometro o ad un partitore con una fotoresistenza, e la luminosità varierebbe di continuo in base a quella ambientale, oppure si potrebbero creare degli step in modo da ottenere variazioni in condizioni di illuminazione ben precisa.
Sulla resistenza in serie alla linea PRINCIPALE dei comuni (anodi o catodi), ma con alcuni accorgimenti e soprattutto calcolando bene sia le R sui segmenti che questa unica R, considerando che tutto lavora in multiplexer si possono ottenere risultati validi; quindo non parlo di una R su ogni display in condizioni "normali" che effettivamente darebbe un pessimo effetto.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Feb 13, 2017, 08:36 pm
Ci sono voluti quasi centocinquanta post per abbandonare l'idea del multiplex e adesso nessuno si ricorda più che questo progetto *non* funziona in multiplex :smiley-lol:

Il sistema migliore è quello di usare il pin enable degli shift register e comandarlo in PWM (ad esempio con il pin 11 di Arduino).

Un'altra soluzione è uno switch (transistor o mosfet) sui 12V che alimentano gli anodi, sempre comandato con il PWM del pin 11.

La terza è quella interamente software, che però temo manchi di risoluzione (nel senso che non si potrà mai scendere sotto una luminosita`minima o salire oltre una massima). Attualmente il mainloop cicla in modo asincrono in circa 1.25ms, però variabili a seconda delle operazioni che ci sono da fare (aggiornare l'RTC ecc):

Code: [Select]
void loop(){
    leggiRTC();                     // lettura ora corrente da RTC
    blinkPunti();                   // lampeggio punti 1 Hz

    if (click(MIN_PULS, &minPulsData)){     // se premuto puls.minuti
        avanzaMinuto();                     // regola minuti
        impostaRTC();
    }

    if (click(HOUR_PULS, &hourPulsData)){   // se premuto puls.ore
        avanzaOra();                        // regola ora
        impostaRTC();
    }

    visualizza();                   // aggiorna display
}

La lettura dell'RTC porta via circa 600µs, la scrittura degli shift register anche (e siamo a 1.2ms). Si potrebbe creare un ciclo base più lento gestito con micros(), ad esempio di 16000µs che farebbe lampeggiare il display a 62.5Hz. Si potrebbe accendere il display per un certo tempo (chiamiamolo LUMDELAY), effettuare le operazioni rimanenti, il tutto entro lo scadere dei 16ms in modo da non avere tremolii. Qualche variazione di luminosità massima si potrebbe avere durante la regolazione dell'ora.

In sostanza si può aggiungere una funzione per spegnere tutti i segmenti:

Code: [Select]
void off_disp(){
    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
    digitalWrite(LATCH_PIN, HIGH);
}

Poi aggiungere una variabile tempo tra le definizioni delle variabili globali:

Code: [Select]
uint32_t tempoLoop = micros();
Una costante LUMDELAY compresa tra 650 e 14700 (rispettivamente luminosità minima 4% e massima 91%):

Code: [Select]
#define LUMDELAY 1200
E modificare il mainloop per ciclare ogni 16ms:

Code: [Select]
void loop(){
    if (micros() - tempoLoop < 16000) return;
    tempoLoop += 16000;

    visualizza();                   // accensione display
    while (micros() - tempoLoop < LUMDELAY);
    off_disp();                     // spegne display

    leggiRTC();                     // lettura ora corrente da RTC
    blinkPunti();                   // lampeggio punti 1 Hz

    if (click(MIN_PULS, &minPulsData)){     // se premuto puls.minuti
        avanzaMinuto();                     // regola minuti
        impostaRTC();
    }

    if (click(HOUR_PULS, &hourPulsData)){   // se premuto puls.ore
        avanzaOra();                        // regola ora
        impostaRTC();
    }
}

Se con diversi valori di LUMDELAY si ottengono le diverse luminosità stabili si può vedere di far variare LUMDELAY in base a qualcosa di esterno (potenziometro / fotoresistenza ecc).

Nota: siccome finora non si parlava di display accesi ne in multiplex, ne in PWM, ma solo di corrente continua, problematiche relative a rapidi impulsi di corrente non erano contemplate... ma adesso i giringiri delle masse o la mancanza di condensatori di bypass sulle alimentazioni degli integrati *potrebbero* farsi sentire (in presenza di impulsi ogni filo, anche di massa, diventa una bobina e un'antenna), quindi va testato.


L'ulteriore soluzione per regolare la luminosità senza usare il PWM (e quindi tornando nella comoda e tranquilla corrente continua) è quella di alimentare gli anodi attraverso un riduttore di tensione regolabile.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 13, 2017, 09:33 pm
L'ulteriore soluzione per regolare la luminosità senza usare il PWM (e quindi tornando nella comoda e tranquilla corrente continua) è quella di alimentare gli anodi attraverso un riduttore di tensione regolabile.
Ecco... forse questa soluzione mi sembra la più semplice... vorrei evitare di stravolgere il tutto adesso che sto giungendo alla conclusione :D

Domanda: un riduttore di tensione regolabile non è la stessa cosa di un potenziometro? o comunque molto simile? :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 13, 2017, 09:46 pm
p.s.: ho notato che l'alimentatore ha un piccolo regolatore... in effetti la luminosità diminuisce ma non abbastanza :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Feb 13, 2017, 10:25 pm
p.s.: ho notato che l'alimentatore ha un piccolo regolatore... in effetti la luminosità diminuisce ma non abbastanza :)
quello regola la tensione di uscita da 12 a 14,5 V non giocarci troppo.....
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Feb 13, 2017, 10:29 pm
Quote
Ci sono voluti quasi centocinquanta post per abbandonare l'idea del multiplex e adesso nessuno si ricorda più che questo progetto *non* funziona in multiplex :smiley-lol:
ahahahahahahah noooo scusami, io onestamente non ho più seguito la parte circuitale, visto che era saldamente in mano tua e di Etem, quindi non ne avevo idea, infatti ogni tanto suggerisco qualcosa di generale, salvo smentite schematiche, come in questo caso  :smiley-sweat:  :smiley-sweat:
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 14, 2017, 09:36 am
Si, se non usi l'enable, puoi anche costruire un regolatore di tensione da mettere sugli anodi, ma non so se ci sono gia prodotti commerciali che regolano "high-side" pilotabili da arduino ...

Comunque, la prova con il pin enable la puoi fare facilmente ... nel tuo schema i pin sono gia collegati tutti insieme e verso massa ... scollegali dalla massa e metti una R da 10K (sempre verso massa) ... poi, se non vuoi ribaltare lo sketch per fare una prova al volo, fai un circuitino elementare di oscillatore in configurazione duty-cycle variabile, e colleghi l'uscita ai pin enable ... cosi vedi subito se la cosa e' fattibile oppure se ti causa qualche problema ... il circuito lo puoi realizzare in diversi modi su uno spazio libero della breadboard, te ne allego un paio ...

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=199045)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 14, 2017, 10:56 am
Riguardando i circuiti che ti avevo allegato, mi e' venuta un'idea un po folle, ma che potrebbe persino funzionare ... persino :P

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=199052)

La fotoresistenza cambia il periodo in cui l'uscita del circuito rimane alta (e quindi i display spenti), piu c'e' luce e meno rimangono spenti ... e' da provare, magari giocando un po con i valori in modo da trovare la combinazione migliore, ma se funziona e' indipendente dallo sketch, che quindi non dovresti modificare ... ;)

Inoltre i componenti sono talmente pochi che ti ci dovrebbero stare nello spazio che hai gia sulla millefori ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 14, 2017, 05:19 pm
Si, se non usi l'enable, puoi anche costruire un regolatore di tensione da mettere sugli anodi, ma non so se ci sono gia prodotti commerciali che regolano "high-side" pilotabili da arduino ...
Questo (https://www.amazon.it/Alimentazione-Regolatore-Tensione-Regolabili-Step-down/dp/B00UH5PIR8/ref=sr_1_13?s=electronics&ie=UTF8&qid=1487088588&sr=1-13&keywords=regolatore+di+tensione+regolabile) potrebbe andare?

Tra l'altro ho pensato: ma se io attacco alle stripled 9v anzichè 12v non ottengo lo stesso risultato?

Riguardando i circuiti che ti avevo allegato, mi e' venuta un'idea un po folle, ma che potrebbe persino funzionare ... persino :P

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=199052)

La fotoresistenza cambia il periodo in cui l'uscita del circuito rimane alta (e quindi i display spenti), piu c'e' luce e meno rimangono spenti ... e' da provare, magari giocando un po con i valori in modo da trovare la combinazione migliore, ma se funziona e' indipendente dallo sketch, che quindi non dovresti modificare ... ;)

Inoltre i componenti sono talmente pochi che ti ci dovrebbero stare nello spazio che hai gia sulla millefori ...
Provo a studiare anche questa ;)... capissi bene a quali componenti corrispondono i simboli :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Feb 14, 2017, 05:25 pm
Mah, mi pare che ti vai ad incasinare la vita, se disponi di una tensione a 9Va questo punto un banalissimo interruttore costituito da un transistor, un relé a una via e due posizioni (o due mosfet N e P) e da una fotoresistenza e  commuti le due tensioni sulle sole strip, anche in questo caso senza toccare il software.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 14, 2017, 06:01 pm
Se gli bastano due livelli, si ... ma dovrebbe comunque realizzare un circuito che gli legge la fotoresistenza e gli commuta il rele', con un po di isteresi per evitare di trasformarlo in un cicalino (anche se dovrebbero bastare un paio di transistor ed una manciata di componenti, per farlo) ... ed in fondo non ci sarebbe neppure bisogno di una seconda alimentazione a 9V, basterebbero 3 o 4 diodi al silicio in serie, chiusi dal mosfet o dal contatto del rele' ...

> ghezzia:

... capissi bene a quali componenti corrispondono i simboli :D
Ehm ... faro' finta di non aver capito, anche perche' ci sono scritti sullo schema :D ... un CD4093, una fotoresistenza standard, un paio di resistenze e di diodi 1N4148, un condensatore da 10n (valore da provare per trovare la frequenza media che ti va meglio, comunque) ... niente di speciale ...

Nel caso decidessi di usare quel sistema (ma prima provalo sulla breadboard, per controllare che funzioni come ti serve e trovare il miglior valore del condensatore), se permetti ti consiglierei di montare poi il tutto sul millefori in questo modo, cosi ottimizzi un po i ponticelli e lo spazio ;) (ho tenuto la tua disposizione di assemblaggio, solo ottimizzato un po il tutto ed aggiunto qualche condensatore di filtro da 100n, che male non gli fa mai, anzi)

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=199167)

... le tracce in blu sono i fili saldati sotto, sui pad, quelle in rosso i ponticelli di filo sopra, ho usato dei pad verdi per segnare le connessioni fra sopra e sotto perche' eagle non mi fa disegnare "pallini" sulla board ... e rimane anche un po di spazio per mettere un pezzetto di alluminio sotto il regolatore ed usarlo come dissipatore ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 14, 2017, 10:11 pm
(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=199167)

Vedo dallo schema che è rimasta la resistenza e il condensatore da 100n (che sarebbe la lenticchia 104 giusto?) che portano dal pin reset dell'Atmega a GND, ma come avevo già sperimentato, questa soluzione mi da dei continui reset dell'orologio... sbaglio qualcosa?

(ma prima provalo sulla breadboard, per controllare che funzioni come ti serve e trovare il miglior valore del condensatore)
proverò sulla breadboard per testare il tutto... vi farò sapere :)

grazie ancora ;)

P.s. la foto resistenza va bene qualsiasi?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Feb 14, 2017, 11:22 pm
Senza nulla togliere alla soluzione hardware, visto che è rientrato in campo il PWM e il controllo del pin enable degli shift register, ricordiamo che il PWM può essere generato anche con il pin digital 11 senza bisogno di alcun componente (basta una analogWrite(11, valore) ). Per leggere la fotoresistenza (http://www.pighixxx.com/test/portfolio-items/connect-a-photoresistor/?portfolioID=610) basta un partitore di tensione collegato ad un ingresso analogico, ad esempio A0 (valore = analogRead(0) ).

Usando l' "Arduino buono" ci si fa dire che valori vengono letti a varie luminosità ambientali, in modo da usarli nell'orologio per scegliere che valori dare al PWM (0=spento 255=acceso al massimo come adesso).

In alternativa un semplice potenziometro e si regola a mano da 0 a 100% con una sola riga aggiunta nel loop principale:

Code: [Select]
analogWrite(11, analogRead(0) >> 2);
Se poi si vuole un controllo più fine della luminosità, si può anche applicare la formula esponenziale di questo post (http://forum.arduino.cc/index.php?topic=445149.msg3063423#msg3063423).


Il comportamento del reset invece mi fa ipotizzare un errore di cablaggio... tale per cui il condensatore invece di stabilizzare la tensione sul pin innietta invece segnali spurii. Oppure uno sbavo di stagno tra piazzole adiacenti. Oppure qualche pista di massa... non collegata a massa che fa da antenna ricevente.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 15, 2017, 08:54 am
... il PWM può essere generato anche con il pin digital 11 senza bisogno di alcun componente ...
Infatti era parte del mio primo suggerimento, in modo implicito ... questa soluzione hardware alternativa invece e' per fare il tutto senza modificare lo sketch, perche' mi pareva che avesse detto di non volerlo toccare ora che funzionava ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 15, 2017, 08:58 am
Vedo dallo schema che è rimasta la resistenza e il condensatore da 100n (che sarebbe la lenticchia 104 giusto?) che portano dal pin reset dell'Atmega a GND, ma come avevo già sperimentato, questa soluzione mi da dei continui reset dell'orologio... sbaglio qualcosa?
...
Ecco, questo e' strano, non e' che come dice anche Claudio c'e' qualche ponticello o manca qualche connessione ? ... o magari che li hai invertiti, condensatore al positivo e resistenza a massa ? ... o anche che la resistenza non e' collegata al vcc ma ad un'altro pin per sbaglio ?

Per la fotoresistenza usane una qualsiasi da 5mm o piu, basta che la metti in un punto in cui non venga influenzata dalla luminosita' dei display ... il modello non e' critico, anche perche' tutto il circuito e' da ottimizzare in base ai componenti che trovi ... puoi anche sostituire la R da 100K con un trimmer da 220K o simile, per avere un minimo di possibilita' di modificare anche la parte del periodo di accensione, se vuoi ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 15, 2017, 10:02 am
In alternativa un semplice potenziometro e si regola a mano da 0 a 100% con una sola riga aggiunta nel loop principale

Ecco, questa mi sembra la soluzione più rapida... sicuramente non "tecnologicamente la più avanzata" però più semplice si :)

Il potenziometro dovrei metterlo direttamente sugli anodi?
Infatti era parte del mio primo suggerimento, in modo implicito ... questa soluzione hardware alternativa invece e' per fare il tutto senza modificare lo sketch, perche' mi pareva che avesse detto di non volerlo toccare ora che funzionava ...
Si infatti è una soluzione che sto cercando di provare ad inserire nel prototipo, devo solo comprare i componenti che mi mancano e poi provo anche questa ;).

L'idea di riscrivere il codice mi farebbe slittare un pochino l'inizio dei lavori per la produzione definitiva perchè dovrei ricaricare lo sketch sulla UNO bypassando temporaneamente lo stand alone per poi una volta testato il tutto ripassare l'Atmega sullo stand alone e ri testare nuovamente il tutto... proverò
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Feb 15, 2017, 10:09 am
Infatti era parte del mio primo suggerimento, in modo implicito ... questa soluzione hardware alternativa invece e' per fare il tutto senza modificare lo sketch, perche' mi pareva che avesse detto di non volerlo toccare ora che funzionava ...
Veramente questa cosa l'avevo tirata fuori io, ma mi avete mangiato crudo perché il multiplexer non c'era più, ora riappare per miracolo.... la mia idea era quella del banale partitore con una fotoresistenza da collegare ad un ingresso analogico e poi mappare sul pwm, così non ci sarebbe bisogno nemmeno di regolarlo a mano anche perché, passati i primi momenti poi uno si sco...ccia e non lo va a toccare più, invece l'automatismo rimane.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 15, 2017, 10:19 am
> Michele: si, se lo fa da sketch, puo fare entrambe le cose ... o usare una fotoresistenza per generare il PWM che andra' poi agli enable (se vuole piu regolazioni o una regolazione graduale), che usare la lettura per pilotarci un mosfet che chiude 3 o 4 diodi in serie ai positivi comuni (se gli bastano due livelli, tipo giorno e notte ... esagerando, pure tre livelli, con due mosfet uno che chiude due diodi ed uno che li chiude tutti e 4 ... primitivo ma funzionante)

Credo che il problema maggiore sia trovarne in canale P in TO220 o simili packages, con RdsOn abbastanza bassa, ma ci dovrebbe essere qualcosa ... fammi guardare ...

EDIT: c'e' pochissimo di decente in TO220 a canale P, per i carichi di potenza ... SUP75P03-07 della Vishay ... oppure IRF4905 ... e poco altro ... non servono logic-level, perche' tanto vanno pilotati con un transistor in open-collector per disaccoppiarli, ma mi sarei aspettato di trovare un po piu di prodotti ... si vede che sono troppo abituato a lavorare con i canale N, dove si trova ancora parecchia roba ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 15, 2017, 11:54 am
passati i primi momenti poi uno si sco...ccia e non lo va a toccare più
In relazione a questo in effetti sto pensando che quasi quasi è meglio semplicemente renderlo meno luminoso punto e basta... senza particolari automatismi che lo rendono più o meno luminoso a seconda delle condizioni ambientali.

cosa potrei usare una resistenza sull'anodo comune? semplicemente ridurre il voltaggio? altre idee semplici?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Feb 15, 2017, 12:02 pm
Ridurre la tensione è il sistema più semplice ed indolore.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 15, 2017, 12:10 pm
Se anche con il trimmer al minimo non si abbassa a sufficenza, prova con i diodi in serie al positivo (mi raccomando, diodi da almeno 3A) ... provi con 1, poi con 2 o 3, vedi tu quando arrivi ad un livello che giudichi buono ... inoltre se usi i diodi, poi in seguito se lo vorrai potrai sempre aggiungere un semplice circuitino, anche solo hardware, che te li cortocircuita con un mosfet pilotato da una fotoresistenza, in modo da fargli cambiare la luminosita' lo stesso, senza fare alcuna modifica ne allo sketch ne al circuito ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 15, 2017, 12:12 pm
Quindi se alimentassi il tutto con una batteria a 9v dite che potrebbe andare?
questo mi eviterebbe anche di dover incassare il trasformatore e inoltre di dover avere a disposizione la 220 vicina... ma forse la batteria non ha abbastanza amperaggio, giusto? Se non ricordo male avevamo definito in 2A la corrente necessaria per reggere il tutto
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Feb 15, 2017, 12:18 pm
La batteria no, quattro diodi da 2-3A in serie abbattono di circa 2,4V, oppure un regolatore 7809 (con i soliti condensatori), ma bisogna vedere quanto assorbe il ramo 12V, senza considerare quello da 5V. O meglio ancora sarebbe un modulino step-down regolabile, 4-5 € dappertutto, da mettere subito all'uscita del 12V e risolvi tutto.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 15, 2017, 12:42 pm
O meglio ancora sarebbe un modulino step-down regolabile, 4-5 € dappertutto, da mettere subito all'uscita del 12V e risolvi tutto.
questo (https://www.amazon.it/eBoot-Regolabile-Buck-Converter-Pezzi/dp/B01MQGMOKI/ref=sr_1_1?ie=UTF8&qid=1487158827&sr=8-1-spons&keywords=dc+dc+converter+step+down&psc=1) potrebbe andare bene?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Feb 15, 2017, 01:24 pm
sì, col trimmerino ti regoli la tensione a quanto ti serve "visivamente" e poi non devi fare altro; se anche hai a valle di questo la parte a 5V lineare, tanto meglio perché dovrà dissipare meno potenza, ed i 2A complessivi di assorbimento che dichiari sono tranquillamente gestiti da questo modulino.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 17, 2017, 09:37 pm
Arrivato lo step-down regolabile...
in effetti funziona tutto.

Nel frattempo ho messo sulla linea dei 12v (qualcosa meno con lo step-down ;) ) anche i due led centrali dei due punti... Ho notato una leggera riduzione della luminosità delle stripled ogni qual volta si accendono i due led centrali. ciò accade solo quando la tensione dello step-down non è al massimo...
è normale?
C'è qualcosa che posso fare?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: brunello22 on Feb 17, 2017, 09:41 pm
che resistenza hai usato in serie ai due led ?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 18, 2017, 07:23 am
Dovrebbe essere da 150 ohm
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 18, 2017, 11:10 am
Mettila da 470 ... perche' mi sa che con 150 ci stai facendo passare dentro circa 60mA ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 18, 2017, 05:37 pm
ho provato con una da 330 (avevo solo quella) e in effetti non rilevo più il problema, pensi debba comunque procurarne una più grande? la prossima misura che ho in casa è da 1k...

Nel frattempo sono riuscito a collegare anche il PIN reset con resistenza da 10k e lenticchia 104 :)... in effetti sbagliavo il collegamento e mettevo in corto due PIN dell'atmega.

Ora ridisegno il tutto inserendo anche lo step-down e poi inizio a saldare ;)... era ora!! qualcuno di voi penserà :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 18, 2017, 05:55 pm
330, una trentina di mA, un po tanto per dei led da 5mm, ma se rimangono accesi meta' del tempo, magari regge ... altrimenti mettine semplicemente due da 1K in parallelo ed ottieni 500 ohm ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Feb 18, 2017, 06:24 pm
altrimenti mettine semplicemente due da 1K in parallelo ed ottieni 500 ohm ;)
gli conviene :D io metterei quella da 1k sinceramente, tanto già si vedrebbe bene
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 18, 2017, 06:55 pm
Be', potrebbe anche volerci mettere dei led "leggermente" (https://it.aliexpress.com/item/100W-22V-3000mA-Bright-Red-620nm-Square-Base-SMD-LED-Grow-Plant-Light-Parts/2054389194.html)piu luminosi ...  :D :D :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 18, 2017, 07:10 pm
ecco!! non esageriamo :)
comunque ho messo 1k che passa la paura :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 18, 2017, 07:22 pm
Guardate (http://www.ghezzi.info/images/Pictures/File-18-02-17-19-14-45.jpeg) che spettacolo :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Feb 18, 2017, 09:07 pm
Be', potrebbe anche volerci mettere dei led "leggermente" (https://it.aliexpress.com/item/100W-22V-3000mA-Bright-Red-620nm-Square-Base-SMD-LED-Grow-Plant-Light-Parts/2054389194.html)piu luminosi ...  :D :D :D
ahhaha
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Feb 18, 2017, 09:07 pm
Guardate (http://www.ghezzi.info/images/Pictures/File-18-02-17-19-14-45.jpeg) che spettacolo :D
Quasi meglio delle gambe di una donna :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 19, 2017, 08:26 am
Diciamo che dipende da quale donna :D :D :D...
Chiedo scusa a tutte le donne per il commento sessista ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 19, 2017, 11:41 am
Non e' un commento "sessista", e' un commento "estetico" :D

(anche perche' ormai con 'sta balla del sessismo, ci marciano in troppi, e soprattutto in troppe :P ... oppure qualcuno ancora si illude che le donne, di commenti ed apprezzamenti "sessisti" nei confronti degli uomini, non ne facciano ? ... ne fanno, ne fanno, e la maggior parte dei "maschietti" neppure si immagina di che genere :P :D :D :D)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Feb 19, 2017, 12:33 pm
Non e' un commento "sessista", e' un commento "estetico" :D

(anche perche' ormai con 'sta balla del sessismo, ci marciano in troppi, e soprattutto in troppe :P ... oppure qualcuno ancora si illude che le donne, di commenti ed apprezzamenti "sessisti" nei confronti degli uomini, non ne facciano ? ... ne fanno, ne fanno, e la maggior parte dei "maschietti" neppure si immagina di che genere :P :D :D :D)
A volte se lo immagina e lo VEDE pure :D

Comunque è vero dipende da quale donna e quale uomo (per le donne)
Mi spiego: se lo fa un complimento uno bello non è affatto sessista  :smiley-mr-green: :smiley-mr-green:

Fine OT :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 19, 2017, 03:36 pm
Comunque tornando in tema:
Da quando ho inserito il collegamento sul pin reset si è verificato un paio di volte un arresto dell'orologio... si fissava su un orario che non era quello corrente e rimaneva fisso su quell'ora. Escluderei un problema dell'RCT perche una volta tolta la corrente e riattaccata, l'orologio ha ripreso mostrandomi l'orario corretto (senza toccare i pulsanti di dettaglio intendo).
Pensate possa essere ancora qualche problema col pin reset?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 19, 2017, 03:50 pm
Mah ... il reset, appunto "resetta" arduino, che riparte come se lo riaccendessi ... quindi se fosse quello il problema, dovrebbe ripartirti come quando stacchi l'alimentazione ... il fatto che ti si blocchi e' strano, sembra piu come se il quarzo smettesse di oscillare o la MCU andasse in freeze ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Feb 19, 2017, 03:58 pm
Mah ... il reset, appunto "resetta" arduino, che riparte come se lo riaccendessi ... quindi se fosse quello il problema, dovrebbe ripartirti come quando stacchi l'alimentazione ... il fatto che ti si blocchi e' strano, sembra piu come se il quarzo smettesse di oscillare o la MCU andasse in freeze ...
Una volta a me capitava, ed era un problema di sincronizzazione dato da collegamenti fatti un po' male dell'RTC  ::)


Ma sul bus I2C quante cose hai collegato? Ci sono r pull up?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 19, 2017, 06:26 pm
Ma sul bus I2C quante cose hai collegato? Ci sono r pull up?
Cosa intendi? scusa l'ignoranza ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Feb 19, 2017, 06:59 pm
Cosa intendi? scusa l'ignoranza ;)
L RTC utilizza il bus I2C sbaglio? Intendo se hai collegato più dispositivi su quel bus e magari se hai usato pull up sulle linee ( anche se non credo)
Che RTC hai che non ricordo i post dietro? :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: nid69ita on Feb 19, 2017, 07:01 pm
Guardate (http://www.ghezzi.info/images/Pictures/File-18-02-17-19-14-45.jpeg) che spettacolo :D
Mò ti compri una stampante 3D e ti fai questi:
- farsi i mega sevent-segment in casa: http://www.thingiverse.com/thing:2111536
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 19, 2017, 09:10 pm
L RTC utilizza il bus I2C sbaglio? Intendo se hai collegato più dispositivi su quel bus e magari se hai usato pull up sulle linee ( anche se non credo)
Che RTC hai che non ricordo i post dietro? :D
Non credo ci sia collegato qualcosa in più oltre all'atmega... questo (http://www.ghezzi.info/images/Documents/SchemaDraw05.pdf) è lo schema che attualmente è sul prototipo; ho aggiunto solo un condensatore da 100nF tra il PIN reset e il GND dell'Atmega
comunque gli RTC sono questi (https://www.amazon.it/gp/product/B00XXEKDSY/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1)... vi dice qualcosa in relazione ai problemi riscontrati?

Mò ti compri una stampante 3D e ti fai questi:
- farsi i mega sevent-segment in casa: http://www.thingiverse.com/thing:2111536
Fighiiiii questi!! in effetti non li avevo ancora visti, in verità avevo momentaneamente accantonato l'idea della stampa 3D per virare verso un banalissimo compensato intagliato (a laser possibilmente) nel quale avrei incastonato le stripled, ma questi mi piacciono proprio :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: nid69ita on Feb 19, 2017, 11:06 pm
Si, anche secondo me han fatto un bel lavoro. Certo a stampare tutti i pezzi non ci vuole poco tempo.
Stimato 3h per ogni cifra, 20 minuti per ogni segmento
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 20, 2017, 02:33 pm
Bisogna anche vedere se poi gli ci stanno dentro i pezzi di strip ;)

Giusto come idea per l'estetica ... una volta che avrai fatto il pannello con gli intagli, se lo vernici di nero opaco, e vernici con lo stesso nero anche le parti interne delle strip ed i nastri delle strip stesse (stando attento a non verniciare i singoli led, ovviamente), e alla fine ci metti davanti una lastra di vetro o plexiglass opalino, dovrebbe uscirne una cosa mica male, con tutto il fondo nero, inclusi i segmenti non illuminati ... :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 20, 2017, 08:41 pm
Bisogna anche vedere se poi gli ci stanno dentro i pezzi di strip ;)
Stando alle foto dovrebbero starci alla perfezione, sembrano proprio i segmenti di cui ho bisogno ;)

Giusto come idea per l'estetica ... una volta che avrai fatto il pannello con gli intagli, se lo vernici di nero opaco, e vernici con lo stesso nero anche le parti interne delle strip ed i nastri delle strip stesse (stando attento a non verniciare i singoli led, ovviamente), e alla fine ci metti davanti una lastra di vetro o plexiglass opalino, dovrebbe uscirne una cosa mica male, con tutto il fondo nero, inclusi i segmenti non illuminati ... :D
Come si può verniciare anche le strip? io per il legno avrei usato della vernice spray... però potrei mascherare i singoli led :).
Non c'è pericolo che si veda solo frontalmente?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: brunello22 on Feb 20, 2017, 09:07 pm
Quote
Stando alle foto dovrebbero starci alla perfezione,.........
Quei segmenti sono lunghi la metà dei tuoi, 2.5 cm
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 20, 2017, 10:00 pm
Quei segmenti sono lunghi la metà dei tuoi, 2.5 cm

Io leggo questo: "Dimensions are 190mmx100mmx10mm."
Poi guardando le foto vedo"incastonati" in ogni segmento delle stripled da 9 led esattamente come le mie ;)... poi comunque immagino non sia difficile "scalare" le dimensioni eventualmente. Giusto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Feb 20, 2017, 11:22 pm
Non credo ci sia collegato qualcosa in più oltre all'atmega... questo (http://www.ghezzi.info/images/Documents/SchemaDraw05.pdf) è lo schema che attualmente è sul prototipo; ho aggiunto solo un condensatore da 100nF tra il PIN reset e il GND dell'Atmega
comunque gli RTC sono
Non so quale possa essere il problema, che batteria usi nell'RTC? Poi ne hai collegato solo uno no?
Ma il condensatore tra il pin di reset e GND lo hai messo come autoreset?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 20, 2017, 11:29 pm
Ma il condensatore tra il pin di reset e GND lo hai messo come autoreset?
Non so se è stato messo come autoreset... io l'ho messo e basta :).
Comunque il problema non me lo ha più ridato. Forse si trattava di un contatto "ballerino" come già ipotizzato; tenete presente che per il momento siamo ancora su un prototipo montato su una breadboard.

L'unico aspetto che ho notato che potrebbe riguardare l'RTC è che non è proprio precisissimo a volte "guadagna" qualche secondo a volte li perde... ora provo a mettere un RTC nuovo per vedere se cambia qualcosa
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Feb 20, 2017, 11:38 pm
Non so se è stato messo come autoreset... io l'ho messo e basta :).
Comunque il problema non me lo ha più ridato. Forse si trattava di un contatto "ballerino" come già ipotizzato; tenete presente che per il momento siamo ancora su un prototipo montato su una breadboard.

L'unico aspetto che ho notato che potrebbe riguardare l'RTC è che non è proprio precisissimo a volte "guadagna" qualche secondo a volte li perde... ora provo a mettere un RTC nuovo per vedere se cambia qualcosa
Di solito parlavano nel forum internazionale dell'auto reset con condensatore e GND, ma in realtà sarebbe condensatore e 5V. Ne aveva parlato Astro proprio QUI (https://forum.arduino.cc/index.php?topic=64405.0) molto tempo fa :)

Comunque allora visto che mi dici della bread board, allora ti posso dire che quello che è successo diciamo che è "normale", può capitare. A me per esempio è capitato per via delle piste in rame sul pcb troppo sporche :) (erano sporchissime in realtà :P praticamente era un PCB prototipo e ci avevo fatto delle prove e lì era venuto un casino :D )

Comunque stranissimo ti perda secondi... ogni quanto? Il mio saranno 8 mesi che funziona 24h/24h e nemmeno un secondo ha perso :) (Ho lo stesso DS3231)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Feb 21, 2017, 12:40 am
Di solito parlavano nel forum internazionale dell'auto reset con condensatore e GND, ma in realtà sarebbe condensatore e 5V. Ne aveva parlato Astro proprio QUI (https://forum.arduino.cc/index.php?topic=64405.0) molto tempo fa :)

quella era una questione diversa, legata alla programmazione, il condensatore era da 10µF, ,emtre quello da 100nF era in serie al segnale DTR che controlla il reset, com'è nella scheda Arduino. La questione nacque quando io scrissi la mia Guida on-line proponendo come soluzione di un certo problema l'uso di un C da 10µF tra RESET e massa, mentre lui dimostrò, DSO alla mano, che era decisamente preferibile porlo in parallelo alla 10K, e cioè tra +5V e RESET. Ma la cosa era riferita all'uso di Arduino come programmatore di un micro esterno e NON per l'uso base di Arduino.

La questione è questa, la R da 10K tra reset e +5V serve per mantenere su HIGH il pin ed evitare RESET indesiderati; il suggerimento, dato da ETEM, mi pare, francamente a me giunge nuovo, cioè mettere un C da 100nF tra RESET e GND con il significato di dar un impulso GND ad ogni accensione e garantire un RESET, ma questo avviene sempre e comunque anche SENZA questo condensatore, come dimostrano le board Arduino, in cui un C da 100nF è posto in serie al segnale che invia il comando di reset quando serve.
Il mio timore è che il C carico possa per qualche ragione scaricarsi nel micro attraverso il pin RESET ed arrivare ad una condizione di semicarica tale da inchiodare il micro prima che avvenga un reset vero e proprio.

Tutte le board Arduino si resettano all'accensione e NON hanno questo C verso massa, quindi io lo toglierei all'istante, almeno in mancanza di un test serio come quelli fatti da Astro in quelle prove. Infatti se provi a mettere tra reset e massa un C da 10µF (e non da 100nF) vedrai che Arduino non si resetta o addirittura non parte.

Se ripristinando la sola R da 10k verso +5V ed eliminando il C da 100nF verso massa, senza pervedere quello originale in serie, perché tanto lui non usa il pin reset hardware, la problematica compare ancora, il difetto è da ricercare altrove. Se non ci sono le pull-up su SDA-SCL vanno messe comunque, che io sappia, a prescindere che esistano uno o più add-on sui segnali, il valore, se non ricordo male è da 2,2Kohm, fino a max 4,7kohm, dipende dalla lunghezza dei segnali; in mancanza credo proprio che in un momento di picco di assorbimento del circuito, questi segnali possano andare in "tilt" creando guai.

Buonanotte.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Feb 21, 2017, 01:39 am
Grazie per le info Michele ;) pensavo gli serviva per programmare ipoteticamente qualcosa, ma ho confuso  :smiley-confuse:  Comunque le r pull su quei moduli linkati da lui mi pare le abbiano nel pcb ecco perché chiedevo cosa c'era attaccato sul bus I2C

domani ci guardo
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 21, 2017, 10:13 am
...
Come si può verniciare anche le strip? ...
A mano, ovviamente ... il resto lo vernici spray, per le strip prendi un pennellino e passi dappertutto TRANNE ovviamente che sui led ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 21, 2017, 12:42 pm
La questione è questa, la R da 10K tra reset e +5V serve per mantenere su HIGH il pin ed evitare RESET indesiderati; il suggerimento, dato da ETEM, mi pare, francamente a me giunge nuovo, cioè mettere un C da 100nF tra RESET e GND con il significato di dar un impulso GND ad ogni accensione e garantire un RESET, ma questo avviene sempre e comunque anche SENZA questo condensatore, come dimostrano le board Arduino, in cui un C da 100nF è posto in serie al segnale che invia il comando di reset quando serve.
Il mio timore è che il C carico possa per qualche ragione scaricarsi nel micro attraverso il pin RESET ed arrivare ad una condizione di semicarica tale da inchiodare il micro prima che avvenga un reset vero e proprio.

Tutte le board Arduino si resettano all'accensione e NON hanno questo C verso massa, quindi io lo toglierei all'istante, almeno in mancanza di un test serio come quelli fatti da Astro in quelle prove. Infatti se provi a mettere tra reset e massa un C da 10µF (e non da 100nF) vedrai che Arduino non si resetta o addirittura non parte.

Se ripristinando la sola R da 10k verso +5V ed eliminando il C da 100nF verso massa, senza pervedere quello originale in serie, perché tanto lui non usa il pin reset hardware, la problematica compare ancora, il difetto è da ricercare altrove. Se non ci sono le pull-up su SDA-SCL vanno messe comunque, che io sappia, a prescindere che esistano uno o più add-on sui segnali, il valore, se non ricordo male è da 2,2Kohm, fino a max 4,7kohm, dipende dalla lunghezza dei segnali; in mancanza credo proprio che in un momento di picco di assorbimento del circuito, questi segnali possano andare in "tilt" creando guai.
In effetti ho provato questa mattina a sperimentare la sola resistenza da 10k tra il PIN Reset e il +5 (togliendo il condensatore tra reset e GND) purtroppo mi "freezza" l'orologio sull'ora in cui lo collego. Una volta staccata e riattaccata la corrente riparte dall'ora corretta ma rimanendo fermo su quella  :smiley-roll-sweat:

Ho rimesso il condensatore e tutto ri funziona regolarmente. pensi che si debba provare anche con le pull-up su SDA-SCL? le aggiungo direttamente vicino al micro?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 21, 2017, 02:34 pm
Non sono riuscito a reperire da nessuna parte lo schema di quella @#*%&£# schedina (:P), ma ci vedo sopra due reti resistive da 4K7 anche se non si capisce a vista dove sono connesse tutte, perche' un po di piste passano sotto il portabatteria) ... potresti provare con un tester se fra i pin SDA - SCL ed il VCC leggi una resistenza di circa 4K7, il che vorrebbe dire che ci sono gia ... (ovviamente prova togliendolo dalla breadboard ;))
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Feb 21, 2017, 06:58 pm
Non sono riuscito a reperire da nessuna parte lo schema di quella @#*%&£# schedina (:P), ma ci vedo sopra due reti resistive da 4K7 anche se non si capisce a vista dove sono connesse tutte, perche' un po di piste passano sotto il portabatteria) ... potresti provare con un tester se fra i pin SDA - SCL ed il VCC leggi una resistenza di circa 4K7, il che vorrebbe dire che ci sono gia ... (ovviamente prova togliendolo dalla breadboard ;))
Hai fatto quello che dovevo fare io, grazie  :smiley-roll-sweat:  :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 21, 2017, 10:38 pm
potresti provare con un tester se fra i pin SDA - SCL ed il VCC leggi una resistenza di circa 4K7, il che vorrebbe dire che ci sono gia ... (ovviamente prova togliendolo dalla breadboard ;))
Ho provato con un tester su un RTC (Quello che ho sostituito dal prototipo) la misura che rilevo (con tester dettato sulla scala dei 200k) è 464/465 mettendo i puntali a cavallo tra VCC e SDA o SCL...

Mi sembra di capire che queste resistenze ci siano, corretto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 22, 2017, 10:00 am
Ma il tuo tester funziona ? ... se lo metti su portata 20K (non 200K), dovrebbe darti 4.6 / 4.7 (o simile, dipende dalle tolleranze)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 22, 2017, 09:47 pm
Ma il tuo tester funziona ? ... se lo metti su portata 20K (non 200K), dovrebbe darti 4.6 / 4.7 (o simile, dipende dalle tolleranze)
Si si in effetti su 20k da esattamente 2.65 ... ergo siamo coperti con le resistenze... :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Feb 22, 2017, 11:46 pm
Si si in effetti su 20k da esattamente 2.65 ... ergo siamo coperti con le resistenze... :)
Apposto :D mi ricordavo bene allora
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 24, 2017, 09:58 am
comunque anche il nuovo RTC non è precisissimo...
ha guadagnato circa 3 secondi da quando l'ho inserito nel prototipo. Forse 5 gg fa.

Possibile che sia per via del fatto che più volte (almeno 5 o 6) l'ho staccato e riattaccato per utilizzare il tester?

Inoltre ho proprio staccato più volte anche l'alimentazione per fare i vari test sul PIN reset...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Feb 24, 2017, 10:51 am
Se ha la batteria, dovrebbe tenere l orario attivo
Io ho staccato l RTC anche per 24 ore
Che batteria usi?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 24, 2017, 11:29 am
Che batteria usi?
E' sicuramente un "pastiglione" di quelli ricaricabili. era dentro alla confezione presa su amazon.

Comunque il mio dubbio è che i continui "stacca attacca" potessero in qualche modo far saltare dei secondi e/o guadagnarli... se così fosse mi spiego queste imprecisioni ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Feb 24, 2017, 11:40 am
CR2032? Sicuro sia carica a sufficienza ?
In realtà c'è da fare il discorso che si è fatto cento volte tra usare una LIR ricabile o una CR
Però alla fine se non stacchi l'alimentazione per tempi prolungati, la CR va bene
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 24, 2017, 11:43 am
... se così fosse mi spiego queste imprecisioni ;)
Mah ... teoricamente no ... in fondo, l'unico scopo di un RTC e' proprio quello di mantenere l'orario corretto anche se salta l'alimentazione, dato che ha al suo interno quarzo, oscillatore e catena di divisori, il tutto alimentato dalla propria batteria ... quindi, almeno in teoria, anche staccandolo e riattaccandolo il suo orario interno dovrebbe rimanere preciso ...

La batteria dell'RTC quanti volt segna ? (con l'RTC scollegato dalla breadboard)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Feb 24, 2017, 11:44 am
Mah ... teoricamente no ... in fondo, l'unico scopo di un RTC e' proprio quello di mantenere l'orario corretto anche se salta l'alimentazione, dato che ha al suo interno quarzo, oscillatore e catena di divisori, il tutto alimentato dalla propria batteria ... quindi, almeno in teoria, anche staccandolo e riattaccandolo il suo orario interno dovrebbe rimanere preciso ...

La batteria dell'RTC quanti volt segna ? (con l'RTC scollegato dalla breadboard)
Esatto, per questo chiedevo se era carica ;)
Anche perché perdere qualche secondo nell'arco di mesi, magari ci può stare, ma perderli dopo che stacchi l'alimentazione mi pare difficile, se la batteria è carica ovviamente
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 24, 2017, 11:48 am
La batteria dell'RTC quanti volt segna ? (con l'RTC scollegato dalla breadboard)
Stasera provo e vi dico; ma la devo togliere la batteria dll'RCT?

tra l'altro pensavo... perchè una batteria ricaricabile? dite che l'RTC è in grado di ricaricarla?

Inoltre: in effetti le imprecisioni le avevo anche con l'RTC precedente sul quale però c'era montata questa stessa batteria... che sia lei la cusa dei miei mali :D?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Feb 24, 2017, 11:51 am
Non so che attendibilita' possano avere i vari siti, ma buona parte di quelli che ho trovato su cui parlavano del DS3231, parlavano di una precisione media di un secondo al mese circa ...

La batteria lasciala sull'RTC, staccalo semplicemente dalla breadboard, perche' ci vedo sopra un diodo che sembra collegato alla stessa pista della batteria, quindi misurare con il modulo alimentato falserebbe la lettura (fra l'altro se il diodo e' collegato come sembra, la schedina e' predisposta per una ricaricabile, non per una litio standard)

Bisogna comunque ricordarsi che lo scopo principale di un RTC e' il mantenimento dell'orario in assenza di alimentazione, e che per quanto possa essere preciso, potra' sempre presentare una qualche imprecisione, per quanto bassa ... se si vuole il massimo della precisione, bisogna provvedere un qualche sistema per controllarla periodicamente ... ad esempio, anche qui sul forum si era parlato di usare un ricevitore DCF77 per un'orologio, tempo fa ... questo potrebbe essere ad esempio un futuro upgrade, dopo che il tutto sara' completato ... intendo, la possibilita' di aggiungerci un ricevitore DCF77, con cui fare controlli ad intervalli di qualche giorno, o settimanali, per "risincronizzare" il modulo RTC con l'orologio campione via radio ... ma in futuro, comunque ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Feb 24, 2017, 11:55 am
A volte pare che abbiano un piccolo circuito di ricarica. Però poi dipende dal tipo di basetta che hanno progettato. Una LIR 3.6V fornisce anche troppo voltaggio (anche se con un altro Diodo sulla basetta dovresti risolvere) e magari viene anche sovraccaricata su quella basetta,  però in teoria è meglio metterci una LIR sulla maggior parte delle basette che ho visto, pare siano progettate per quelle. Però alla fine tra LIR e CR tutte e due possono avere difetti :D Comunque non è l'RTC che la ricarica, ma la tensione principale di alimentazione.
La batteria scarica potrebbe essere il problema comunque!
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 24, 2017, 12:00 pm
Non so che attendibilita' possano avere i vari siti, ma buona parte di quelli che ho trovato su cui parlavano del DS3231, parlavano di una precisione media di un secondo al mese circa ...
In effetti qui ne ha guadagnati 3 in 5/6 gg... forse un pò tanti.

(fra l'altro se il diodo e' collegato come sembra, la schedina e' predisposta per una ricaricabile, non per una litio standard)
Ti confermo che è ricaricabile, di quello sono sicuro perchè ne ho aperte altre due da mettere su un giochino di mia figlia ;)... che tra l'altro pensavo: come potrei ricaricarle in autonomia?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 24, 2017, 12:01 pm
però in teoria è meglio metterci una LIR sulla maggior parte delle basette che ho visto, pare siano progettate per quelle.
Che non è quella ricaricabile, giusto? quindi dici di provare con una NON ricaricabile?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Feb 24, 2017, 12:03 pm
LIR è quella ricaricabile ;) Io sinceramente sempre usato una CR2032 e mai problemi :D Poi magari anche con una LIR (premesse quelle cose dette sopra) dovrebbe andare bene
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Feb 24, 2017, 08:15 pm
Non è che si sta confondendo il voluto azzeramento dei secondi ad ogni pressione dei pulsanti, con un presunto, ma inesistente, malfunzionamento dell'RTC?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 24, 2017, 11:23 pm
Non è che si sta confondendo il voluto azzeramento dei secondi ad ogni pressione dei pulsanti, con un presunto, ma inesistente, malfunzionamento dell'RTC?
No No! i pulsanti non li tocco più da quando ho cambiato l'RTC il cui cambio ovviamente ha fatto azzerare completamente l'orologio. Al momento della sincronizzazione l'ho sincronizzato esattamente con lo smartwatch... dubito uno smartwatch possa perdere o guadagnare secondi ;).

LIR è quella ricaricabile ;) Io sinceramente sempre usato una CR2032 e mai problemi :D Poi magari anche con una LIR (premesse quelle cose dette sopra) dovrebbe andare bene
Confermo che la batteria è una LIR 2032 da 3,6V... la misurazione dei Volt mi da tuttavia 4,08. Possibile???

In relazione ai secondi guadagnati continuo a pensare sia un problema di "stacca attacca" perché mi sono accorto che ora che ho staccato l'alimentazione per misurare i volt della batteria, quando l'ho riattaccato ha "perso" 1 secondo. Cioè: prima era avanti di 5 secondi ora di 4... Almeno così mi pare :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Feb 27, 2017, 11:05 am
Ora sono all'lestero per una settimana... ho cronometrato l'anticipo attuale 5''... rimane tutto acceso e al mio rientro vi so dire se aumenta o diminuisce :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 05, 2017, 09:10 pm
Rieccomi! rientrato dopo una settimana e l'orologio ha anticipato di altri 6''... in totale siamo a 11".
Secondo voi a cosa è dovuto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Mar 06, 2017, 03:01 pm
Mah ... da quello che si legge in giro, la precisione di quel chip dovrebbe aggirarsi sul secondo a settimana ... ma tu lo usi in lettura continua per aggiornarci il display ? ... oppure solo per quando va via la tensione ed al ripristino devi reimpostare l'ora ? ... non e' che in lettura continua la precisione ne risente ? (lo so che non dovrebbe, ma non mi viene in mente altro, a parte un modulo difettoso)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: gpb01 on Mar 06, 2017, 03:26 pm
Mi intrometto solo un istante ...
... ho letto i post precedenti ed ho visto che hai acquistato QUESTO (https://www.amazon.it/gp/product/B00XXEKDSY/ref=oh_aui_detailpage_o04_s00) set di RTC ovvero 5 pezzi di una schedina che :

1. contiene un DS3231SN
2. contiene un AT24C32N
3. componentistica varia

... ad un prezzo di 2.18€ per schedina.

Ti prego di notare che, il solo DS3231SN (http://www.mouser.it/search/ProductDetail.aspx?R=0virtualkey0virtualkeyDS3231SN), anche in grossi quantitativi (oltre 1000 pz.) viene, presso i rivenditori ufficiali, più di 5€ ... ti dice nulla ? ? ?

Quelle sono schedine cinesi tipicamente fatte con IC di scarto (ovvero che, anche se funzionano, NON rispettano tutte le specifiche) e che quindi presentano i problemi più svariati tra cui ... la scarsa precisione che invece è garantita nei componenti ufficiali.

Guglielmo
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Mar 06, 2017, 05:12 pm
Sì, ha ragione Guglielmo.... In effetti mi pare strano come prezzo
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: gpb01 on Mar 06, 2017, 05:22 pm
... In effetti mi pare strano come prezzo
no, non è strano, su Aliexpress ho preso le stesse schedine per molto meno (0.90 US$ QUI (https://www.aliexpress.com/item/DS3231-AT24C32-IIC-Module-Precision-Clock-Module/32375200913.html)) ma ... sono ben conscio del loro valore e NON mi sognerei mai di usarle per dei progetti seri, le uso durante i "corsi" per far fare gli esercizi sul I2C ... così se le rompono ... il danno è minimo :D :D :D

Sono schede fatte con i lotti di IC che dovrebbero andare distrutti perché non passano le verifiche, ma ... invece di distruggerli ... qualcuno li usa per queste cose low-cost ;)

Guglielmo
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Mar 06, 2017, 05:40 pm
Se ne ha presi 5, magari puo provarli tutti ... con un po di (_!_) magari se ne trova uno che sbaglia di meno ... :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: As_Needed on Mar 06, 2017, 06:48 pm
no, non è strano, su Aliexpress ho preso le stesse schedine per molto meno (0.90 US$ QUI (https://www.aliexpress.com/item/DS3231-AT24C32-IIC-Module-Precision-Clock-Module/32375200913.html)) ma ... sono ben coscio del loro valore e NON mi sognerei mai di usarle per dei progetti seri, le uso durante i "corsi" per far fare gli esercizi sul I2C ... così se le rompono ... il danno è minimo :D :D :D

Sono schede fatte con i lotti di IC che dovrebbero andare distrutti perché non passano le verifiche, ma ... invece di distruggerli ... qualcuno li usa per queste cose low-cost ;)

Guglielmo
Ah ecco, aliex press :D Comunque mi riferivo al mio dire "strano" con il fatto che dubito fortemente sia roba di qualità con quel prezzo

Anche Ete ha ragione, io ne ho trovato una volta uno di test che non era male, pagato sui 3 euro circa
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 06, 2017, 09:58 pm
In effetti questo è il secondo che provo... ora ho montato il terzo, vediamo se cambia qualcosa.
Il fatto che la batteria fosse a oltre 4 volt può centrare qualcosa?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 09, 2017, 09:31 pm
ho provato anche il terzo... sembra sempre che vada in anticipo :(
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Mar 09, 2017, 10:07 pm
Ma questi RTC hanno un quarzo esterno?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 09, 2017, 11:03 pm
Non so se gli RTC hanno un quarzo esterno... nello schema che vedete qui  (http://www.ghezzi.info/images/Documents/Schema-definitivo_Vert.pdf) che ho ricreato perché gli ingombri di quello orizzontale non mi permettevano di assemblare il tutto, è previsto un quarzo "dedicato" allo stand alone, non so se questo possa comportare "errori" nel calcolo del tempo nell'RTC...

Lo schema rivisto comunque vi convince?

Nel frattempo ho stampato questa (http://www.ghezzi.info/images/Documents/File-09-03-17-22-53-53.jpeg) cifra :) che bellezza ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Mar 10, 2017, 09:29 am
Il chip DS3231 secondo il datasheet ha un suo quarzo interno, che per giunta dovrebbe essere termostabile ... quarzi esterni non dovrebbe averne ... avrai il quarzo della MCU, nient'altro ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 10, 2017, 10:00 am
avrai il quarzo della MCU, nient'altro ...
Confermo ho solo il quarzo della MCU (dello stand alone per intenderci).

Sullo schema dovrebbe vedersi.

Cosa ne dite? i collegamenti sono fatti correttamente?

Ho deciso di assemblare il tutto a prescindere dall'imprecisione dell'RTC... al massimo lo inserisco in modalità "sostituibile" così nel caso trovassi qualcosa di più preciso lo sostituisco e basta ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Mar 10, 2017, 04:39 pm
Sì, certamente è il classico effetto della cineseria, quindi magari a lavoro finito, visto che "merita", comprane uno decente sul mercato locale. Se ci fosse stato un quarzo esterno si poteva tentare di intervenire sul clock mediante un piccolo condensatore.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: brunello22 on Mar 10, 2017, 04:56 pm
Oppure investi 3/4 euro e doti l'orologio di connessione WiFi ( se hai il WiFi in casa ).
Cosi' leggi l'ora in NTP e ci sincronizzi l'orologio.... ( potresti pure non usare l'RTC, volendo )

Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 10, 2017, 07:19 pm
Oppure investi 3/4 euro e doti l'orologio di connessione WiFi ( se hai il WiFi in casa ).
Cosi' leggi l'ora in NTP e ci sincronizzi l'orologio.... ( potresti pure non usare l'RTC, volendo )


Si anche questa era una soluzione pensata, solo che credo bisogna cambiare anche lo sketch a questo punto. Questo comporterebbe riprogrammare lo stand alone, rifare i vari test e ripartire...
mi sa che finisco così :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 14, 2017, 09:40 am
Ciao Ragazzi,
sto cercando di assemblare la millefiori, ma ho qualche difficoltà nel creare le tracce lunghe di stagno.
Nello specifico faccio fatica ad collegare i fori, sopratutto laddove ne devo mettere insieme più di 2 o 3 di fila.

Avete suggerimenti in tal senso? Lo stagno va solo dove c'è il metallo :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Mar 14, 2017, 10:00 am
Si usa la trecciola stagnata ... o per dirla in modo piu semplice, prendi del filo flessibile AWG24, 26 o 28 o simile, di quello con molti fili dentro, lo speli con cura (arrotolandolo un po mentre lo speli in modo che i fili interni siano avvolti fra loro e non se ne vadano in giro), lo stagni, e poi lo usi per "tirare le piste" sul lato rame ... e volendo, se non si incrociano, anche quelle sul lato componenti ... immagina di lavorare "a ricamo" con ago e filo ... parti da un punto, tiri e pieghi il filo e lo stagni ogni 4 o 5 piazzuole o agli angoli (la stagnatura finale la puoi fare al termine, per comodita'), poi se devi passare sopra lo infili nel foro, scendi dall'altro dove devi proseguire, e cosi via ... se fatto con cura viene pure un bel lavoro ... ;)

EDIT: in punti dove si incrociano piu fili, con uno che deve salre, per comodita' e' piu semplice prima fare tutta la traccia inferiore NON stagnando i fori dove dovra' passare il filo che va sopra, e poi aggiungere quest'ultimo alla fine ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 14, 2017, 10:54 pm
grazie Etem!
In effetti così è molto meglio ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 23, 2017, 11:29 pm
Pensavate di esservi liberati di me vero??? :)
E invece rieccomi.
Sto quasi finendo il circuito sulla millefiori (eh! vabbè c'ho i miei tempi), nel frattempo ho pensato che i due punti centrali con un solo led per uno probabilmente non rendono come dovrebbero.... allora vi chiedo se ne aggiungessi un paio, dovrei metterli ancora in serie agli altri due? immagino di si. Ma la resistenza che ora è unica da 1k andrebbe cambiata? se si da quanto la metto?

tenete presente che probabilmente metterò davanti a tutta la struttura del plexiglass bianco opalino in modo che si veda solo la luce delle strip senza far percepire i vari puntini delle stesse, per questo ho pensato che due punti messi li nel mezzo (come cantava ligabue ;) ) avrebbero perso un pochino di senso...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Mar 24, 2017, 09:26 am
Puoi usare due led da 10mm (http://www.ebay.com/itm/10MM-Highlight-LEDs-Red-Blue-Green-White-Yellow-Lamp-Emitting-Diode-Pin-26mm-/252689310604), o due led comunque piu luminosi di quelli da 5mm come i kingbright, o se ti avanza un pezzetto di strip tagliata a led singoli o coppie (ma bisognerebbe cambiare le resistenze a bordo), o piu semplicemente due led piranha (http://www.ebay.com/itm/10-pcs-RED-Flat-Top-Piranha-Led-5000mcd-Super-Flux-/381469102619), o simili ... oppure metti 4 led normali per punto vicini, tutti in parallelo (ma assicurati che siano dello stesso lotto di produzione, altrimenti non e' bene collegare i led in parallelo direttamente ... come alternativa, ogni led con la sua resistenza da 100 ohm, 4 in parallelo per un punto, in serie al secondo gruppo di 4 in parallelo del secondo punto, e poi variando il valore della resistenza sullo stampato regoli la luminosita' complessiva in modo che sia simile a quella dei segmenti)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 25, 2017, 06:12 pm
e poi variando il valore della resistenza sullo stampato regoli la luminosita' complessiva in modo che sia simile a quella dei segmenti)
Ma per resistenza dello stampato intendi le resistenze dei singoli led che ho messo in parallelo?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 26, 2017, 11:23 pm
Scusate l'ignoranza, ma 4 LED in parallelo (con le relative resistenze) uniti in serie ad altri 4 LED ancora in parallelo, si collegano come da file che vi allego? Grazie in anticipo ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Mar 27, 2017, 02:23 pm
No, fai 4 rami con due led in serie.
Calcolo resistenza per ogni ramo:

[ Vin - (2 x Vled) ] / Iled

Calcoli la potenza:

Rled x Iled^2

Prendi resistenze a strato metallico, così sono precise e non hai troppi sbalzi tra ramo e ramo.

Oppure fai 4 rami con due led in serie, riunisci tutto e metti un'unica resistenza calcolata con:

[ Vin - (2 x Vled) ] / 4 x Iled

Calcoli la potenza:

Rled2 x ( 4 x Iled )^2

Che dovrebbe essere meglio perché dovresti ripartire la corrente in modo migliore, usi meno componenti e dovrebbe essere più compatto.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 27, 2017, 05:53 pm
Apperò!! Ricki... credo di aver capito solo un paio di parole di quanto suggerito da te :)...
Del resto come tutti sanno in questo thread io sono proprio una capretta ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Mar 27, 2017, 06:22 pm
Anzi, scusami ma ti ho detto una cagata. Metti 4 resistenze, non una sola. Pensandoci bene, se un ramo assorbe per qualsiasi motivo più corrente, diventa più luminoso. Con una resistenza per ramo controlli meglio la corrente ed hai un'equalizzazione.

Figurati, io sono più capra sul lato software!
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Mar 28, 2017, 09:31 am
Puoi tranquillamente usare 4 gruppi di due led in serie piu resistenza con i valori che stai gia usando adesso, in fondo ottieni comunque il quadruplo della visibilita' ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Mar 28, 2017, 10:12 am
Apperò!! Ricki... credo di aver capito solo un paio di parole di quanto suggerito da te :)...
Del resto come tutti sanno in questo thread io sono proprio una capretta ;)
Comunque Vin è la tensione di alimentazione, Vled è la tensione di polarizzazione della giunzione del LED, praticamente hai una caduta di tensione, che dipende dal colore del LED e dal tipo del LED, Iled è la corrente che vuoi far passare per un LED e anche questa dipende dal tipo di LED e dai suoi datasheet. Diciamo che per un LED rosso normale puoi tenere come valori Vled = 1.5 v e Iled = 6 - 10 mA = 0.006 - 0.01 A. Quando fai la divisione ricordati di non far casini con zeri dopo la virgola, se metti tutto in A anziché mA non sbagli mai e ti viene il risultato in Ohm. Chiaramente meno corrente dai al LED e più dura, ma sui 10 mA hai una buona luminosità e una buona durata.

Se hai i LED in serie si sommano le cadute di tensione dei LED ma la corrente resta la stessa.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 28, 2017, 09:16 pm
Puoi tranquillamente usare 4 gruppi di due led in serie piu resistenza con i valori che stai gia usando adesso, in fondo ottieni comunque il quadruplo della visibilita' ;)
OK,
quindi mi confermi che lo schema di cui sopra va bene?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Mar 29, 2017, 09:19 am
Solo come consiglio, se li metti sul millefori ...

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=206026)

Cosi ti rimane anche piu semplice il cablaggio ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 29, 2017, 11:02 am
Solo come consiglio, se li metti sul millefori ...

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=206026)

Cosi ti rimane anche piu semplice il cablaggio ;)
Si in effetti stavo cercando di capire come metterli sulla millefiori...
Ti chiedo solo una cosa, ma le resistenze sono solo 4 a fronte di 8 led?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Mar 29, 2017, 01:11 pm
Anche con due led in serie avevi una sola resistenza ... qui sono semplicemente quattro serie di due led, ognuna con la propria resistenza, collegate in parallelo ... non cambia nulla, a parte il fatto che avrai i punti composti da 4 led invece che da uno, quindi 4 volte piu visibili ...

Collegare la resistenza all'uscita del driver, sullo stampato, oppure in mezzo ai due led, e' indifferente, sempre in serie sono (ovviamente in questo caso togli la resistenza che avevi sulla scheda dei driver)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 29, 2017, 03:05 pm
Anche con due led in serie avevi una sola resistenza ...
Ops!! hai ragione ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 29, 2017, 11:40 pm
Solo come consiglio, se li metti sul millefori ...

(http://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=206026)

Cosi ti rimane anche piu semplice il cablaggio ;)
Eccomi! ho provato ad inserire 4 led nel prototipo ma purtroppo crea scompiglio... lampeggia anche tutto l'orologio in alternanza ai led... ho messo delle resistenze da 150 ohm anziché da 100 perché avevo solo quelle in casa.

Avete suggerimenti diversi?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Mar 30, 2017, 08:39 am
Che LED sono? Semplici LED rossi?

L'alimentazione è separata, quella delle strisce? Oppure utilizzi un modulo per alimentare tutto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Mar 30, 2017, 10:31 am
Che lampeggi tutto l'orologio, vorrebbe dire che l'alimentatore delle strisce non riesce a fornire abbastanza corrente ... i punti sono alimentati a 12V anche loro ? ... se si, le resistenze dovrebbero essere come minimo da 680 ohm, fino ad 1K (saranno un po meno luminosi con 1K)

da quanto e' l'alimentatore ? (tensione e corrente)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 30, 2017, 12:49 pm
Ciao,
si i punti sono collegati direttamente ai 12v insieme alle strip... tutto il resto del circuito a 5v grazie ad uno stabilizzatore.
Oltre a questo segnalo che ho inserito un piccolo riduttore di corrente (https://www.amazon.it/gp/product/B01MQGMOKI/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1) per diminuire leggermente la luminosità delle strip.

L'alimentatore è 12v e 2A.

Magari stasera provo con resistenze da 1k...

Se ne mettessi solo 3 cambierebbe qualcosa?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Mar 30, 2017, 07:27 pm
Mah guarda, due led rossi con una resistenza da 150 Ohm consumano 60 mA, per 4 rami sono 240 mA. Non so quanto consumino le strisce LED, ma non sono pochi. Metti resistenze da 1 K Ohm che non sbagli.

Perché riduttore di corrente? Semmai abbassi la tensione. E comunque sarebbe meglio farlo in PWM il controllo della luminosità, anche considerato che a te interessava metterci una fotoresistenza per illuminare più o meno le strisce in base alla luce. A quel punto puoi gestire anche la luminosità con Arduino.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 30, 2017, 09:42 pm
Mah guarda, due led rossi con una resistenza da 150 Ohm consumano 60 mA, per 4 rami sono 240 mA. Non so quanto consumino le strisce LED, ma non sono pochi. Metti resistenze da 1 K Ohm che non sbagli.
Niente, anche con 1k lampeggiano ancora le cifre (anche se molto meno)

Perché riduttore di corrente? Semmai abbassi la tensione. E comunque sarebbe meglio farlo in PWM il controllo della luminosità, anche considerato che a te interessava metterci una fotoresistenza per illuminare più o meno le strisce in base alla luce. A quel punto puoi gestire anche la luminosità con Arduino.
No no la fotoresistenza è stata abolita perché sarebbe stato complicato riprogrammare il tutto... tieni presente che arduino è stato riprodotto con uno stand alone e per questo complicato da togliere e mettere per la programmazione dello stesso.

Ora provo con una resistenza maggiore giusto per capire
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 30, 2017, 09:49 pm
HO provato anche con 10k... lampeggia solo una cifra... mi viene un dubbio, ma non è che le resistenze vanno messe a valle o a monte delle due strisce di led?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Mar 31, 2017, 08:24 am
Prima o dopo i LED non cambia, la resistenza deve soltanto limitare la corrente che passa attraverso il ramo.

Per quanto riguarda lo stand alone cerca di prevedere per sviluppi futuri la possibilità di connettere uno di quei modulini esterni che converte il segnale seriale TTL che programma il micro in una porta USB, così da connetterlo facilmente al PC.

Io ho letto qualche post in giro per il topic e mi sembrava volessi fare così, cioè sistemarci una fotoresistenza. In tal caso credo che avresti potuto pilotare in PWM direttamente l' "enable" degli integrati di "potenza" che usi per accendere o spegnere le cifre, in maniera tale, a seconda del duty cycle, da aver la possibilità di fare un dimmer con un potenziometro letto dal micro oppure appunto una fotoresistenza.

Sono soltanto idee su come affinare il tuo orologio o su sviluppi futuri.

Perché usi la millefori? A questo punto non ti conviene farti una scheda tua e trovare qualcuno che te la realizzi?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 31, 2017, 09:04 am
Prima o dopo i LED non cambia, la resistenza deve soltanto limitare la corrente che passa attraverso il ramo.
Ecco... allora mi sa che rinuncio ad avere 4 LED ;)

Io ho letto qualche post in giro per il topic e mi sembrava volessi fare così, cioè sistemarci una fotoresistenza.
Si si è una cosa che è stata presa in considerazione ma poi ci ho rinunciato... complica troppo le cose.


In tal caso credo che avresti potuto pilotare in PWM direttamente l' "enable" degli integrati di "potenza" che usi per accendere o spegnere le cifre, in maniera tale, a seconda del duty cycle, da aver la possibilità di fare un dimmer con un potenziometro letto dal micro oppure appunto una fotoresistenza.

Sono soltanto idee su come affinare il tuo orologio o su sviluppi futuri.
Sono idee e suggerimenti sicuramente apprezzati, ma sai com'è? sto vedendo il traguardo ora e vorrei dopo quasi 6 mesi portare a terra qualcosa di funzionante :D


Perché usi la millefori? A questo punto non ti conviene farti una scheda tua e trovare qualcuno che te la realizzi?
Mah! non saprei a chi rivolgermi, poi credo inizi a costare un pochino di più
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Mar 31, 2017, 09:20 am
A quel punto mi sa che e' l'alimentatore ad avere dei problemi ... oppure il convertitore che hai messo per abbassare la luminosita' ...

Fai una prova e togli il convertitore, e vedi se con 1K lampeggiano ancora ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Mar 31, 2017, 12:10 pm
Ma no macché rinunciare ai LED, ci sono dei piccoli problemi ma risolvibili. Piuttosto hai uno schema elettrico completo e aggiornato? Sai quanto consumano le strisce LED per ogni segmento?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Mar 31, 2017, 02:11 pm
... quanto consumano le strisce LED per ogni segmento?
... ecco, in effetti sarebbe da controllare ... suppongo tu abbia preso le strip con i 2835 di cui si parlava nelle prime pagine, ma quali esattamente ? ... e riesci a leggere il valore delle resistenze che ci sono saldate sopra ? ... inoltre, quanti led ci sono per ogni segmento ?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Mar 31, 2017, 03:45 pm
A me sembrano 9 LED, cioè 3 sezioni per ogni segmento.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Mar 31, 2017, 04:34 pm
Mi chiedevo quali esattamente fossero e che valore avesse la resistenza per poterci calcolare la corrente per segmento ... ad esempio, so che sono rossi e vedo i 9 led per segmento, ma i 2835 li hanno prodotti, tralasciando i superflux bianchi, con chip da 50, 100 e 200 mA per led ... dubito che siano quelli da 200mA per led perche' sono ancora abbastanza una novita', quindi potrebbero essere quelli da 50 o da 100 mA ... tre serie di tre in parallelo per segmento, sempre che il costruttore abbia usato le resistenze di valore corretto (per quello volevo sapere se riusciva a leggere il valore) possono quindi essere 150 oppure 300 mA per segmento ... nel primo caso per mandare in crisi l'alimentatore ci vogliono almeno 12 o 13 segmenti accesi insieme, nel secondo caso ne bastano 6 per arrivare quasi al limite dei 2A, dopo i quali l'alimentatore inizia a "sedersi" ... se poi il fabbricante ha usato resistenze di valori diversi da quelli corretti, per poter fare un calcolo serve sapere quale valore hanno le resistenze e quale era la tensione a vuoto che esce dal riduttore ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 31, 2017, 05:55 pm
Ma no macché rinunciare ai LED, ci sono dei piccoli problemi ma risolvibili. Piuttosto hai uno schema elettrico completo e aggiornato? Sai quanto consumano le strisce LED per ogni segmento?
Allego lo schema completo... nel disegno manca solo un collegamento tra il PIN 1 e il GND superiore (quello che entra nel PIN 22) inframezzato da un condensatore a lenticchia 104.

suppongo tu abbia preso le strip con i 2835 di cui si parlava nelle prime pagine, ma quali esattamente ? ... e riesci a leggere il valore delle resistenze che ci sono saldate sopra ? ... inoltre, quanti led ci sono per ogni segmento ?
Confermo che le stripled sono le 2835 (http://www.ebay.it/itm/381412211043?_trksid=p2060353.m1438.l2649&var=650608434832&ssPageName=STRK%3AMEBIDX%3AIT), e che ci sono 9 LED per ogni segmento.

Stasera controllo con una lente se riesco a vedere i valori delle resistenze e poi vi dico...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Mar 31, 2017, 08:49 pm
se le resistenze sono i rettangoli piccoli neri :) allora c'è scritto sopra 271... possibile?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Apr 01, 2017, 09:08 am
si, 270 ohm (27 + numero di zeri = 1)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Apr 01, 2017, 09:17 am
circa 1.5V di caduta per ogni led rosso, quindi 12-4.5=7.5V ... su 270 ohm, 7.5/270=28mA circa per serie ... una media di 85mA per segmento, quindi ... che fanno dai 170mA del numero 1 ai 600mA del numero 8 per ogni display ...

L'alimentatore da 2A potrebbe anche essere sufficente, ma appena appena, sarebbe molto meglio usarne uno da 3 o meglio ancora 4A, a 12V ...

Hai provato a vedere se togliendo il regolatore che hai messo per abbassare la luminosita', il lampeggio delle cifre cambia o sparisce ?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Apr 01, 2017, 03:16 pm
L'alimentatore da 2A potrebbe anche essere sufficente, ma appena appena, sarebbe molto meglio usarne uno da 3 o meglio ancora 4A, a 12V ...
un'altro?? era così bello quello che ho comprato :)

Hai provato a vedere se togliendo il regolatore che hai messo per abbassare la luminosita', il lampeggio delle cifre cambia o sparisce ?
Rimane comunque... seppur in modo molto più lieve. è più un piccolo cambio di luminosità.

Tra l'altro ho notato che seppur in modo impercettibile quando si accendono gli 8 LED (dei punti centrali) si accendono pochissimo anche altri due segmenti della cifra delle ore... Mah! il mistero si infittisce :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Apr 02, 2017, 06:59 pm
nel frattempo, con mia somma gioia, ho collegato il circuito che ho creato sulla millefiori e tutto sembra funzionare...
c'è solo un piccolo sfarfallio dei segmenti accesi che prima (sul prototipo) non c'era.

Differenze rispetto al prototipo fatto sulle breadboard:



pensate che possa essere cambiato qualcosa? oppure che possa esserci qualche collegamento non corretto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Apr 03, 2017, 09:12 am
Avresti proprio uno schema elettrico? Quello che hai inserito è lo schema delle connessioni, non so neanche che integrati usi.

Per quanto riguarda il problema, potrebbero essere molteplici cose. Hai controllato le saldature?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Apr 03, 2017, 05:26 pm
Avresti proprio uno schema elettrico? Quello che hai inserito è lo schema delle connessioni, non so neanche che integrati usi.

Per quanto riguarda il problema, potrebbero essere molteplici cose. Hai controllato le saldature?
Purtroppo lo schema è stato costruito nel tempo grazie al supporto della community :) non sono in possesso di uno schema definitivo se questo con i collegamenti che mi ha permesso confrontandolo con il prototipo di creare la millefiori.
Comunque l'atmega è l'integrato che comanda il tutto, al quale ho connesso per le 4 cifre 4 shift register (https://www.amazon.it/gp/product/B00QH6FFXS/ref=oh_aui_detailpage_o02_s00?ie=UTF8&psc=1) le cui uscite vanno in 4 ULN2803 (https://www.amazon.it/gp/product/B00U4X0IFA/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1) le cui uscite vanno ai vari segmenti dell'orologio...

P.S. nel frattempo una ad una si sono spente tutte le cifre... però col tester ho provato a creare dei ponti tra i pin degli ULN e i segmenti e si accendono tutti regolarmente... cos'è successo ancora??? :smiley-mad:
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Apr 03, 2017, 07:48 pm
Che vuol dire creare un ponte con il tester? Comunque bisogna capire se hai collegato gli ingressi o le uscite degli ULN, nel primo caso vuol dire che sono bruciati gli ULN e quindi a breve brucerai ciò che c'è a monte, nel secondo sembrerebbero interrotti tutti i contatti, ma mi sembra strano, e comunque prendi tutto con le pinze perché non ho guardato lo schema dei collegamenti e non so come stiano realmente le cose.

Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Apr 03, 2017, 11:15 pm
Cioè mi spiego meglio: col tester volevo provare a vedere se collegando il pin di uscita degli ULN con il cavo che va al segmento, il tester suonasse (pensavo di verificare che i collegamenti delle 2 cifre spente non fossero per qualche motivo "saltati"). Ho notato che appena toccavo i due elementi il segmento di riferimento si accendeva. Per curiosità ho fatto la stessa prova toccando i pin di ingresso degli ULN e i vari segmenti si accendevano ancora...
Penso (spero) sia più un problema di collegamenti dal momento che le cifre delle ore funzionano regolarmente. Ma se così fosse come posso trovare il guasto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Apr 04, 2017, 08:23 am
Rifacendo i collegamenti, se sono saldati può essere che tu abbia effettuato le cosiddette saldature fredde; essendo il collegamento diretto tra pin ULN e pin del segmento, il tester nella modalità "diodo" oppure "ohm" messo in parallelo (è ciò che tu dovresti aver fatto) non dovrebbe avere alcuna influenza, quindi è come se il filo del collegamento fosse interrotto o non collegato. Misura col tester tra pin di uscita dell'ULN e capo iniziale del filo di collegamento e poi tra capo finale del filo di collegamento e pin del segmento; almeno in uno dei due casi NON dovresti trovare la continuità e ti basterà ripristinarla per risolvere.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Apr 04, 2017, 02:20 pm
Ma scusa, le cifre fatte con i segmenti le utilizzi come se fosse una cifra ad anodo comune.
Usi gli shift register secondo la tecnica di multiplexing oppure tu scrivi il numero e si accendono tutte le cifre nello stesso istante?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Apr 04, 2017, 02:29 pm
No, lui usa 4 shift, che pilotano i segmenti attraverso 4 ULN ... le cifre sono accese tutte insieme, niente multiplexing, e gli shift dovrebbero venire aggiornati solo quando modifichi qualcosa (quindi ogni mezzo secondo, se fa lampeggiare i punti centrali ad 1Hz, perche' anche quelli sono pilotati da un'uscita degli shift)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Apr 04, 2017, 04:18 pm
No, lui usa 4 shift, che pilotano i segmenti attraverso 4 ULN ... le cifre sono accese tutte insieme, niente multiplexing, e gli shift dovrebbero venire aggiornati solo quando modifichi qualcosa (quindi ogni mezzo secondo, se fa lampeggiare i punti centrali ad 1Hz, perche' anche quelli sono pilotati da un'uscita degli shift)
Si esatto :)

messo in parallelo (è ciò che tu dovresti aver fatto) non dovrebbe avere alcuna influenza
Se mettere un capo del tester su un PIN di entrata e uno sul PIN in uscita significa metterli in parallelo allora SI, gli ho messi in parallelo (mi sembrava più in serie devo essere sincero ;) )

Misura col tester tra pin di uscita dell'ULN e capo iniziale del filo di collegamento e poi tra capo finale del filo di collegamento e pin del segmento; almeno in uno dei due casi NON dovresti trovare la continuità e ti basterà ripristinarla per risolvere.
Stasera verifico meglio e vi dico...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Apr 04, 2017, 04:21 pm
le cifre fatte con i segmenti le utilizzi come se fosse una cifra ad anodo comune.
Si esatto !
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Apr 04, 2017, 07:55 pm
Si esatto :)
Se mettere un capo del tester su un PIN di entrata e uno sul PIN in uscita significa metterli in parallelo allora SI, gli ho messi in parallelo (mi sembrava più in serie devo essere sincero ;) )
Stasera verifico meglio e vi dico...
io non ho scritto questo, se colleghi il tester tra ingresso e uscita dell'ULN praticamente lo bypassi, io ho detto tra uscita dell'ULN e ingresso del segmento
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Apr 04, 2017, 10:08 pm
io non ho scritto questo, se colleghi il tester tra ingresso e uscita dell'ULN praticamente lo bypassi, io ho detto tra uscita dell'ULN e ingresso del segmento
Ecco in effetti non avevo capito bene ;).

Ora ho provato a fare come dici e ho verificato che se collego il tester all'uscita dell'ULN e poi al segmento, esiste continuità... ossia c'è effettivamente collegamento tra i due punti (ho provato su tutti i segmenti).

La cosa strana è che se collego (sempre col tester) l'ingresso degli ULN con l'uscita piuttosto che con il segmento direttamente, si accende il segmento selezionato...

La cosa ancora più strana è che se collego qualsiasi ingresso degli ULN (ossia ingresso A, B, C, D, E, F, G) si accende comunque il segmento al quale collego l'altro capo del tester...

Il tester è sulla posizione hFE (con la quale potevo verificare che ci fosse continuità tra i collegamenti.

Può essere che siano veramente bruciati gli ULN?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Apr 04, 2017, 10:27 pm
Forse ho trovato il guasto:
ho provato a sostituire gli ULN e il problema rimaneva...

dopo ho provato a sostituire gli shift e come per magia si sono riaccese le cifre dei minuti.... :)

rimane comunque il problema dello sfarfallio delle 3 cifre più a destra...

a cosa può essere dovuto?

Nel prototipo non lo faceva, la cifra delle decine d'ora non lo fa tutt'ora ma le altre tre si  >:(
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Apr 05, 2017, 01:18 pm
Si ma se non fai multiplexing, all'ora 23:58 hai il più alto numero di segmenti acceso, cioè 22 segmenti.
Calcolando una media di 85 mA a segmento sono 1.87 A nel caso di 22 segmenti. Hai altri 130 mA rimanenti.
Secondo me, come si era già detto prima è una questione di alimentazione. Ma perché gli shift register fanno capricci?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Apr 05, 2017, 01:20 pm
Ragazzi stanotte è successa una cosa inquietante...
Alle 4.54 circa è esplosa la batteria tampone dell RTC. Quando dico esplosa non esagero. ho sentito un rumore sordo e poi come una moneta che cascava... stamattina ho trovato i pezzi per casa :)
Effetto della cinesata?
Oppure qualche collegamento sbagliato???
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Apr 05, 2017, 02:25 pm
Era una LIR ricaricabile ? ... se si, allora potrebbe (condizionale obbligatorio) essere dovuto al fatto che non c'e' alcun controllo di carica su quei cosi, solo un diodo in serie ... se era una CR non ricaricabile, allora e' normale ...

Puoi comunque eliminare il diodo ed usare una normale CR2032, o qualsiasi altro formato ci stia nel portabatteria ... tanto anche senza alcuna ricarica, dovrebbe andare avanti un paio di anni, prima di scedere sotto i 2.3V della soglia minima di utilizzo ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Apr 05, 2017, 03:13 pm
Sì infatti, con quello che consuma, in oltre c'è da considerare che questo progetto non finirà mai quindi ghezzia ci terrà costantemente le mani sopra, per cui batteria più, batteria meno..... :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Apr 05, 2017, 03:33 pm
... e' quello "sbarbellano" che non mi convince ...

Intendi che crescono e calano di luminosita' quando i punti si accendono e spengono, o che cambiano non sincronizzati con i punti ?

Comunque se riesci a procurarti una decina di diodi tipo 1N4007 o simili, prova a fare un test ... collegali a tre per volta in serie, e metti le tre serie in parallelo, poi mettili sul positivo dei 12V che va ai segmenti ed ai punti (si, anche i punti dovrebbero essere colegati al comune dei display, non al +12 della schedina come nel tuo disegno), al posto del riduttore di tensione switching ... e vedi se anche cosi le cifre cambiano di luminosita' ...

E' comunque strano che ti si siano bruciati gli shift, se non c'e' alcun corto fra la logica ed i 12V ...



> Michele: vedo che ti senti ottimista ... :D

(comunque, probabilmente poi vorra' aggiungere la sveglia, ed anche il cambio di luminosita' indipendente dal 328, e magari qualche altra cosa tipo la macchinetta del caffe', quindi forse hai ragione ... :D :D :D)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Apr 05, 2017, 04:09 pm
> Michele: vedo che ti senti ottimista ... :D

(comunque, probabilmente poi vorra' aggiungere la sveglia, ed anche il cambio di luminosita' indipendente dal 328, e magari qualche altra cosa tipo la macchinetta del caffe', quindi forse hai ragione ... :D :D :D)
Non mi riferisco all'implementazione di nuove funzioni, ma proprio al funzionamento definitivo del progetto attuale. Ora non vorrei che ghezzia si offendesse perché mi dispiacerebbe, però al primo post leggo:
25 October 2016, 22:38:33; se dopo oltre 5 mesi ancora leggo quello che scrive mentre fa i test ne deduco una cosa poco rassicurante: in tutto questo tempo il nostro amico ha realizzato questo bel progetto esclusivamente sotto dettatura perché, contrariamente agli usi di questo Forum, alcuni santi come Te, Claudio e qualcun altro hanno deciso che ghezzia andava aiutato con "pappa pronta"; lui è stato bravissimo a saper sfruttare l'immenso aiuto che ha ricevuto però non ha dedicato tempo a studiare, imparare e comprendere non solo ciò che stava realizzando, ma anche un minimo di basi per poter fare una ricerca guasti. D'altra parte è anche vero che è uno che parte spesso e va all'Estero, almeno così si legge nei suoi post, quindi il tempo non gli sarà amico. Comunque sia, a torto o a ragione, uno che realizza da solo un progetto in genere poi è in grado di scovare rapidamente eventuali problemi. Ecco perché, ripeto, tempo che questo progetto non finirà mai. :smiley-confuse:
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Apr 05, 2017, 06:42 pm
Quote from: Etemenanki
... e' quello "sbarbellano" che non mi convince ...
La mia sfera di plastica opacizzata dice che sul circuito definitivo c'è qualche corto sui segnali di controllo degli ultimi tre shift register... se addirittura non gli manca la massa.

Quote from: Michele Menniti
contrariamente agli usi di questo Forum, alcuni santi come Te, Claudio e qualcun altro hanno deciso che ghezzia andava aiutato con "pappa pronta"
Per quanto riguarda i santi... io avevo comunque un mio "tornaconto sperimentale" personale da cui ho imparato parecchie cosette, per cui l'ho considerato uno scambio reciproco, per il resto i consigli su cosa studiare e come procedere (se uno volesse) sono stati dati, più di quello non si può :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Apr 05, 2017, 07:44 pm
Ok, comunque chiarisco e ribadisco che la mia non è una polemica né una critica, ho solo voluto dire che risolvere i problemi di un circuito che non si "conosce" è molto complicato, specialmente se non si ha un minimo di competenze sull'uso della strumentazione e di conoscenze del funzionamento dei componenti.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Apr 05, 2017, 10:24 pm
Ok, comunque chiarisco e ribadisco che la mia non è una polemica né una critica, ho solo voluto dire che risolvere i problemi di un circuito che non si "conosce" è molto complicato, specialmente se non si ha un minimo di competenze sull'uso della strumentazione e di conoscenze del funzionamento dei componenti.
Caro Michele non posso che concordare con te: risolvere problemi senza conoscere è molto difficile... Ho 48 anni e un hobby; Un lavoro (che realmente mi fa stare tanto all'estero) e una famiglia con 2 bambini. In più non ho mai studiato elettronica.

Pensavo che forum.arduino.cc potesse semplificarmi la vita nella costruzione di un orologio da parete che prevedesse l'utilizzo di un ...Arduino... E così è stato in effetti !!! :)

Fortunatamente ho trovato persone che "divertendosi" (almeno credo) sono riuscite a farmi imparare molte cose, oltre che appassionare maggiormente alla materia. Sai com'è? ci sono professori che trasferiscono solo dei contenuti (che si possono comunque ricevere semplicemente guardando un tutorial su YouTube), altri che invece cercano di farti appassionare... senza polemiche e senza critiche ovviamente.

Ora tornando al Nostro orologio (che a dispetto del pensiero di qualcuno finirà ;) ):

Ma perché gli shift register fanno capricci?
Chi può dirlo? dopo avere sostituito i due shift i minuti hanno ripreso a funzionare (dopo averlo riattaccato senza batteria a seguito "dell'esplosione", e quindi impostato sull'orario corretto).

Era una LIR ricaricabile ?
Si esattamente quella

Intendi che crescono e calano di luminosita' quando i punti si accendono e spengono, o che cambiano non sincronizzati con i punti ?
No, intendo che solo le ultime 3 cifre è come se vibrassero, tieni presente che i punti centrali non li ho ancora collegati sulla millefiori... stavo aspettando di capire se lasciare solo due LED (uno per punto) oppure metterne 4 per punto come si stava discutendo alla fine.

...comunque se sul prototipo (breadboard) quando inserivo i 4 led per punto c'era proprio un calo di tensione sulle strip a fronte dell'accensione dei LED dei punti, ora (sulla millefiori senza LED relativi ai punti centrali) c'è proprio uno sfarfallio delle ultime 3 cifre (e solo di quelle)

Vi torna adesso?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Apr 06, 2017, 09:08 am
No, che non torna ... lo sfarfallio sarebbe possibile aspettarselo se gli shift venissero aggiornati a quella frequenza, ma da quanto si capisce fin'ora, tu li aggiorni solo una volta ogni mezzo secondo, in corrispondenza dell'accensione e dello spegnimento dei punti (anche se ancora non li hai collegati) ... giusto ? ... in quel caso, se dipendesse dall'aggiornamento degli shift, lo sfarfallio avrebbe una frequenza di mezzo secondo ... continua a sembrarmi un problema di alimentazione insufficente ...

Hai fatto la prova con i diodi ?

Hai la possibilita' di collegare al 12V un'alimentatore da almeno 3 o 4 A per prova, invece di quello da 2 ?

Hai anche fatto qualche prova con il tester su continuita' per vedere se c'e' qualche corto da qualche parte ? (senza alimentazione e senza gli integrati negli zoccoli, ovviamente) ?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Apr 06, 2017, 10:24 am
Hai fatto la prova con i diodi ?

Non ancora, stasera se trovo i diodi provo... altrimenti li compro su amazon e domani vi dico.

Hai la possibilita' di collegare al 12V un'alimentatore da almeno 3 o 4 A per prova, invece di quello da 2 ?
Non ce l'ho a casa, dovrei comprarne uno nuovo, lo farò nel caso non si riesca a risolvere in altro modo

Hai anche fatto qualche prova con il tester su continuita' per vedere se c'e' qualche corto da qualche parte ? (senza alimentazione e senza gli integrati negli zoccoli, ovviamente) ?
Questa prova l'avevo fatta prima di mettere "in produzione" la millefiori, e mi pareva che tutto funzionasse correttamente, magari riprovo ancora per verificare meglio...

Faccio una domanda: ma non è che lo sfarfallio (che è veramente quasi impercettibile tanto che è veloce) è dato proprio dal fatto che non ho ancora inserito i punti centrali?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Apr 06, 2017, 11:03 am
La cosa dovrebbe essere impossibile, specie proprio perche' non li hai inseriti ... e poi, comunque, se dipendesse da quelli sarebbe maggiore quando sono inseriti (ma sempre sincronizzata con la loro accensione, non come sfarfallio veloce) ...

Dubbio, non e' che gli shift li aggiorni piu volte al secondo, invece che solo ogni mezzo secondo ? ... hai lo sketch completo da postare, tanto per cercare di capirci qualcosa ?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Apr 06, 2017, 03:00 pm
Ecco lo sketch che dovrebbe essere quello definitivo:

Code: [Select]

#include <Wire.h>
#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4
#define MIN_PULS  5
#define HOUR_PULS 6
//-----------------------------------------------------------------------------
// Variabili di lavoro globali (28 byte)
//-----------------------------------------------------------------------------
typedef struct {
    uint32_t time;
    byte     stat;
} button_t;

button_t minPulsData = {millis(), 0};   // dati pulsante minuti
button_t hourPulsData = {millis(), 0};  // dati pulsante ora
uint32_t tempoPunti = millis();         // tempi di partenza
byte     point = 1;                     // variabile per lampeggio punti
byte     error = false;                 // true se errore lettura RTC
byte     minuti = 0;                    // minuti correnti
byte     ore = 0;                       // ore correnti
byte     tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                        0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
//-----------------------------------------------------------------------------
// Rileva click su tasti con debounch 60 ms e autorepeat dopo 1 s
//-----------------------------------------------------------------------------
bool click(byte pin, ::button_t* data){
    uint32_t elapsed = millis() - data->time;
    bool press = digitalRead(pin);
    switch (data->stat)
    {
        case 0:                             // attesa pressione
            if (press){                     // se premuto
                data->stat = 1;             // passa ad antirimbalzo
                data->time = millis();
            }
            return false;


        case 1:                             // antirimbalzo pressione
            if (!press){                    // se non premuto
                data->stat = 0;             // ritorna ad attesa
                return false;
            }
            if (elapsed > 60){              // primo click
                data->stat = 2;
                data->time = millis();
                return true;
            }
            return false;


        case 2:                             // attesa inizio autorepeat
            if (!press){                    // se non premuto
                data->stat = 3;
                data->time = millis();
                return false;
            }
            if (elapsed > 1000){            // inizio autorepeat dopo 1 s
                data->stat = 4;
                data->time = millis();
                return true;                // primo autoclick
            }
            return false;


        case 3:                             // antirimbalzo rilascio
            if (press){                     // se premuto
                data->stat = 2;
                data->time = millis();
                return false;
            }
            if (elapsed > 60)               // rilasciato
                data->stat = 0;             // torna ad attesa
            return false;


        case 4:                             // autorepeat
            if (!press){                    // se non premuto
                data->stat = 5;
                data->time = millis();
                return false;
            }
            if (elapsed > 100){             // successivi click ogni 100 ms
                data->time = millis();
                return true;
            }
            return false;


        case 5:                             // antirimbalzo rilascio
            if (press){                     // se premuto
                data->stat = 4;
                data->time = millis();
                return false;
            }
            if (elapsed >= 60)              // rilasciato
                data->stat = 0;             // torna ad attesa
            return false;
    }
}

//-----------------------------------------------------------------------------
byte binBCD(byte n){
    return ((n / 10) << 4) | (n % 10);
}
//-----------------------------------------------------------------------------
void impostaRTC(){
    Wire.beginTransmission(0x68);   // <--- indirizzo RTC su bus i2c
    Wire.write(0);                  // <--- punta al registro 0
    Wire.write(0);                  // <--- azzera secondi RTC
    Wire.write(binBCD(minuti));     // <--- imposta minuti RTC
    Wire.write(binBCD(ore));        // <--- imposta ore RTC
    Wire.endTransmission();
}
//-----------------------------------------------------------------------------
void avanzaOra(){
    ore = (ore + 1) % 24;
}
//-----------------------------------------------------------------------------
void avanzaMinuto(){
    if (++minuti == 60){
        minuti = 0;
        avanzaOra();
    }
}
//-----------------------------------------------------------------------------
void blinkPunti(){
    if (millis() - tempoPunti >= 500){
        tempoPunti += 500;
        point ^= 1;
    }
}
//-----------------------------------------------------------------------------
byte BCDbin(byte n){
    return ((n >> 4) * 10) + (n & 0x0F);
}
//-----------------------------------------------------------------------------
void leggiRTC(){
    Wire.beginTransmission(0x68);   // <--- indirizzo RTC su bus i2c
    Wire.write(1);                  // <--- punta al registro 1
    if (Wire.endTransmission()){    // <--- errore di connessione
        error = true;
        return;
    }
    Wire.requestFrom(0x68, 2);      // <--- due registri da leggere
    if (Wire.available() != 2){
        error = true;               // <--- errore di ricezione
        return;
    }
    minuti = BCDbin(Wire.read());
    ore = BCDbin(Wire.read());
    error = false;
}
//-----------------------------------------------------------------------------
// Scrittura su display con blanking primo zero e lampeggio se errore
//-----------------------------------------------------------------------------
void visualizza(){
    digitalWrite(LATCH_PIN, LOW);
    if (error && !point){
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
    }else{
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[minuti%10]);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[minuti/10]);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[ore%10]|point);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, (ore/10) ? tabella[ore/10] : 0);
    }
    digitalWrite(LATCH_PIN, HIGH);
}
//-----------------------------------------------------------------------------
// Impostazione sistema
//-----------------------------------------------------------------------------
void setup(){
    Wire.begin();                   // inizializza bus i2c
    pinMode(MIN_PULS,  INPUT);
    pinMode(HOUR_PULS, INPUT);
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN,  OUTPUT);
    digitalWrite(CLOCK_PIN, LOW);
    visualizza();                   // prima scrittura su display
}
//-----------------------------------------------------------------------------
// Ciclo principale eseguito circa 800 volte al secondo
//-----------------------------------------------------------------------------
void loop(){
    leggiRTC();                     // lettura ora corrente da RTC
    blinkPunti();                   // lampeggio punti 1 Hz

    if (click(MIN_PULS, &minPulsData)){     // se premuto puls.minuti
        avanzaMinuto();                     // regola minuti
        impostaRTC();
    }

    if (click(HOUR_PULS, &hourPulsData)){   // se premuto puls.ore
        avanzaOra();                        // regola ora
        impostaRTC();
    }

    visualizza();                   // aggiorna display
}


Noti qualcosa di strano? Di sicuro c'è che sul prototipo tutto funzionava senza nessun tipo di "sfarfallio" quindi non credo sia un problema dovuto allo sketch... comincio a pensare seriamente all'alimentatore... ma è nuovo :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Apr 06, 2017, 03:31 pm
Uhm ... come sai non sono un programmatore, ma a me da l'impressione che gli shift li continua ad aggiornare ad ogni ciclo del loop, e non solo ogni mezzo secondo per accendere e spegnere i punti ... intendo quel continuo richiamo della funzione visualizza()

Inoltre, potrei sbagliarmi, ma metti il latch basso. poi mandi i dati allo shift, poi rimetti il latch alto ... in teoria il latch dovrebbe servire proprio ad evitare gli sfarfallii attivandolo solo alla fine di tutti gli shiftout ... cioe'. prima mando tutti gli shiftout agli shift (i display non cambiano perche' il latch mantiene le uscite nell'ultimo stato), e solo alla fine do' un singolo impulso al latch, che cambia tutte le uscite insieme, in modo che non ci sia lo sfarfallio ...

Per vedere se puo dipendere da quello, fai una prova, aggiungi un piccolo delay all'interno di quell'if (anche solo 50mS), prima di rimettere il latch alto ... se lo sfarfallio aumenta, allora il problema principale e' quello ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: pippettiello on Apr 06, 2017, 04:04 pm
Uhm ... come sai non sono un programmatore, ma a me da l'impressione che gli shift li continua ad aggiornare ad ogni ciclo del loop, e non solo ogni mezzo secondo per accendere e spegnere i punti ... intendo quel continuo richiamo della funzione visualizza()
Si, assolutamente. Inoltre anche l'RTC viene letto "inutilmente" ad ogni ciclo.

Non ho idea di quante volte al secondo venga eseguita la loop, ma penso centinaia.
In teoria l'aggiornamento degli shift non dovrebbe dare problemi, ma in presenza di qualche disturbo potrebbe esserci qualche bit "ballerino" che provoca lo sfarfallio.

Per vedere se puo dipendere da quello, fai una prova, aggiungi un piccolo delay all'interno di quell'if (anche solo 50mS), prima di rimettere il latch alto ... se lo sfarfallio aumenta, allora il problema principale e' quello ...
Questo mi pare un ottimo suggerimento! :-)

Prima accennavo alla lettura "inutile" dell'RTC perché ricordo vagamente qualcosa riguardo ad un possibile problema di sincronizzazione... tipo che alle 10:59 se leggo prima i minuti e poi le ore rischio di leggere 11:59... ma solo per un istante. Questo potrebbe spiegare lo sfarfallio. Inoltre tener l'RTC perennemente occupato in trasmissione dati non potrebbe dare problemi?
Ma forse sto dicendo una castroneria. devo ripescare il datasheet.

P.S. È la prima volta che intervengo in questo thread, ne approfitto quindi per fare i miei complimenti a Ghezzia per l'ottimo lavoro! (detto da uno che appena le cose iniziano a funzionare molla tutto e passa ad altro...)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Apr 06, 2017, 04:28 pm
Be', se lo sfarfallio lo vede, e' probabile che in realta' i cicli possano essere anche molti meno ... l'occhio umano ha una latenza a circa 25Hz massimo, quindi da li in su lo sfarfallio non dovrebbe neppure esssere visibile, se non al massimo spostando velocemente gli occhi (un po come per un led lampeggiante, se molto veloce lo vedi acceso fisso, ma se lo muovi o muovi lo sguardo e' come se vedessi una serie di trattini)

Se avesse un'oscilloscopio sarebbe possibile controllare, basterebbe vedere la frequenza del segnale sui pin di latch ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Apr 06, 2017, 06:49 pm
Quel codice è servito per tirare fuori qualcosa di minimamente funzionante su breadboard, non per essere una versione perfetta e definitiva... anzi la speranza era che Ghezzia prendendo spunto provasse a scrivere una sua versione una volta che l'hardware fosse finalmente a posto (invece a quanto sento scoppiano batterie, si bruciano integrati ecc, non so, ma non mi sembrano segnali rassicuranti  :) ).

Secondo, se su breadboard andava bene, allora adesso ci sono di nuovo problemi di collegamenti (come alla fine si è scoperto tutte le altre volte)... solo che trovare un inghippo su una millefori è molto più complicato.

Vero, il mainloop lavora a qualche centinaio di Hz, ma fossero anche migliaia gli shift register non devono "perdere colpi", e non c'è multiplexing, quindi se qualcosa sfarfalla sono bit errati o segnali di controllo errati (a livello hardware, non software, altrimenti sarebbero andati male anche su breadboard).

Sul fatto di leggere l'RTC ad ogni ciclo anche questo era sperimentale/provvisorio, "per vedere se intanto si vedeva qualcosa". Quel codice serviva per testare l'hardware, essere studiato a fondo, e magari migliorato, prima di essere usato in modo definitivo. Tra l'altro, usando i pin enable degli shift register come suggerito da Etem, per regolare la luminosità bastava aggiungere *una* riga (come spiegato in questo post (http://forum.arduino.cc/index.php?topic=431577.msg3132477#msg3132477)).

Il discorso latch basso/alto è semplicemente "copiato" dagli esempi di utilizzo dei 74595. Nel datasheet è specificato solo che il fronte di salita è il momento in cui i dati sono portati sulle uscite, in tutti gli altri casi (livello alto, basso, fronte di discesa) è ininfluente.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Apr 06, 2017, 06:59 pm
... Nel datasheet è specificato solo che il fronte di salita è il momento in cui i dati sono portati sulle uscite, in tutti gli altri casi (livello alto, basso, fronte di discesa) è ininfluente.
Si, ma e' sempre meglio lasciarlo a zero quando non lo si usa ... in pratica, come cicli di lavoro corretti, prima trasferisci tutto ai registri, poi fai due digitalwrite consecutive, high e low, solo alla fine ...

Sul resto, non sono un programmatore, ma mi sa che hai ragione, servirebbe scrivere qualcosa di piu ottimizzato ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Apr 06, 2017, 07:48 pm
Quote from: Etemenanki
Si, ma e' sempre meglio lasciarlo a zero quando non lo si usa ... in pratica, come cicli di lavoro corretti, prima trasferisci tutto ai registri, poi fai due digitalwrite consecutive, high e low, solo alla fine ...
Ci sono dispositivi in cui il "nostro latch" è un "enable", e va appunto portato basso all'inizio della comunicazione delimitandola e racchiudendola completamente. Per semplici shift register sono d'accordo sull'impulsino finale, ma non avendo dei 74595 da provare non potevo essere sicuro di non aggiungere ulteriori incertezze, per cui ho optato per seguire gli esempi "canonici" (https://www.arduino.cc/en/Reference/ShiftOut).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Apr 06, 2017, 10:20 pm
(invece a quanto sento scoppiano batterie, si bruciano integrati ecc, non so, ma non mi sembrano segnali rassicuranti  :) ).
In effetti non sono rassicuranti per nulla :)


Secondo, se su breadboard andava bene, allora adesso ci sono di nuovo problemi di collegamenti (come alla fine si è scoperto tutte le altre volte)... solo che trovare un inghippo su una millefori è molto più complicato.
Darei quasi per scontato che si tratta dei collegamenti....

Ho fatto la prova con i diodi suggerita da etem ma lo sfarfallio continuava... una volta tolti i diodi ho provato a toccare la millefori in qualche punto e i display si accendevano e si spegnevano con dei semplici tocchi di dita  :o  :o  :o

Addirittura ho notato che sono sufficienti delle piccole vibrazioni della superficie sulla quale è appoggiato l'orologio (solo a digitare sul pc che è appoggiato sulla stessa superficie) per fare accendere, spegnere lampeggiare o sfarfallare le tre cifre finali...
Deduco sia proprio un problema di collegamenti :(
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Apr 07, 2017, 08:01 am
Quasi sicuramente manca qualche collegamento a massa, come già diceva qualcuno nei giorni scorsi, non ricordo chi, inoltre se non hai acquisito la necessaria manualità col saldatore probabilmente ci saranno saldature "fredde", quelle in cui lo stagno non si è fuso correttamente e quindi non fa contatto o lo fa molto male.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Apr 07, 2017, 10:53 am
Ingressi aperti ... riesci a fare una o due foto (con la risoluzione maggiore che puoi ed a fuoco) del retro della millefori ?

Un'altra cosa che potrebbe essere successa (ma immagino tu l'abbia gia controllata), e' che usando degli zoccoli, uno dei pin si sia piegato sotto uno degli integrati nell'inserirlo, restando "volante" ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Apr 07, 2017, 03:04 pm
Ingressi aperti ... riesci a fare una o due foto (con la risoluzione maggiore che puoi ed a fuoco) del retro della millefori ?
Ecco la Foto (http://ghezzi.info/images/Documents/Foto-07-04-17-12-31-40.jpg) Spero sia sufficientemente chiara :)

Un'altra cosa che potrebbe essere successa (ma immagino tu l'abbia gia controllata), e' che usando degli zoccoli, uno dei pin si sia piegato sotto uno degli integrati nell'inserirlo, restando "volante" ...
Ecco, questo è un controllo che non ho ancora fatto ma farò subito stasera... poi vidico

inoltre se non hai acquisito la necessaria manualità col saldatore
Che è sicuramente il mio caso :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: menniti on Apr 07, 2017, 04:33 pm
Che è sicuramente il mio caso :)
Allora, in genere si vedono ad occhio le saldature fredde; mentre quelle di buona qualità sono lisce, lucide e riflettenti, quelle fredde appaiono come impastate, ruvide ed opache; in questo caso l'ideale sarebbe tirare via lo stagno vecchio fondendolo col saldatore e usando un aspirastagno e poi rifacendo la saldatura.
Altra cosa da guardare è se attorno al filo saldato si è formato una sorta di cratere, anche in quel caso facile che ci sia un falso contatto.
Nella foto personalmente vedo dei punti con molto stagno e vicinissimi tra loro, potrebbero essere in cortocircuito, così come sembra che ci sia un filo (nella zona di destra) che sembra solo appoggiato sulla pista principale e non è saldato, ma è difficile capire se è davvero così.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: claudio_f on Apr 07, 2017, 07:22 pm
Verificare bene la connessione a massa dei pin di abilitazione uscite degli shift register:

(http://stor.altervista.org/p.php?p=ghe002.jpg)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Apr 08, 2017, 09:52 am
Scusa se lo dico, ma, cosi in generale, rifare un po tutte le saldature meglio ... ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Apr 08, 2017, 10:22 am
Ecco! È quello che immaginavo di dover fare.... :D.
Nel frattempo ho controllato se i piedini degli integrati fossero in qualche modo piegati sotto al contatto anziché inseriti correttamente nello zoccolino e vi confermo che sembra tutto a posto...
Stasera verifico meglio anche le saldature suggerite da Claudio_F e poi ricomincio da capo ;).
Let's keep in touch
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Apr 08, 2017, 03:29 pm
Oltre al discorso saldature, pulisci bene dalla pasta, spesso succedono corti anche per quel motivo lì.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Apr 18, 2017, 10:51 pm
Rieccomi ragazzi!
le feste e altri impegni lavorativi mi hanno tenuto lontano dal progetto.
Stasera ho provato a ricontrollare e rifare le saldature come suggerito da Claudio_F.... purtroppo il tremolio rimane.
La cosa che mi insospettisce particolarmente è che sempre e solo le ultime 3 cifre tremano... la prima è bella accesa e "contenta"... :)
cosa dite rifaccio tutto???
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Sep 25, 2017, 10:55 am
Rieccomi ragazzi.... dopo lunga assenza dal forum ho deciso di rimettere mano al lavoro fin qui svolto.

breve riassunto:

Sulle ali dell'entusiasmo "elettronico" che era arrivato in me, circa un anno fa ho deciso di costruire un orologio formato da 4 display 7 segmenti creati con delle stripled. Arduino dalle uscite comanda 4 shift register collegati ad altri 4 ULN che danno gli impulsi ai segmenti dei display.

In fase di prototipo tutto sembrava funzionare regolarmente (a parte un leggero sfarfallio delle cifre)

Ora che ho provato ad assemblare il tutto, NON funziona più niente... sto dando la colpa alle mie saldature poco professionali fatte su una millefori e per questo avrei pensato di far stampare il circuito da qualcuno che lo sa fare :).

Ho provato a creare il circuito su easyeda.com; qualcuno di voi lo conosce? se faccio l'auto instradamento delle tracce posso ritenerlo attendibile? oppure è meglio tracciarle io secondo la mia logica?

Questo (https://easyeda.com/normal/SchemaDef-12a5b911a02342be9970a22b07f0bd67) lo schema già condiviso a suo tempo ricreato su questo tool

Questo (https://easyeda.com/normal/PCB_verticale_linee_Auto-3ac15ece491649b0ba85b2547f61b425) invece lo schema con gli auto instradamenti.

Se volete posso anche condividere tutto il progetto...

P.S.: dite la verità! vi ero mancato un pochino vero? :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Sep 25, 2017, 05:32 pm
Io mi trovo molto bene con Sprint Layout 6, soprattutto per creare i componenti nuovi, ma devo passare a KiCAD e ad Eagle perché sono i CAD di elettronica standard da usare, sia per gli schemi elettrici sia per i PCB. Una volta che hai creato il PCB, e credo sia abbastanza semplice da fare se non ricordo male il progetto su mille fori, lo puoi far stampare in Cina.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Sep 25, 2017, 05:56 pm
...
P.S.: dite la verità! vi ero mancato un pochino vero? :D
Stavamo aspettando che tornassi per farti la festa ... cioe', volevo dire, per festeggiare ... :D ;)

Scherzi a parte, avevi poi risolto il problema del flickering ?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Sep 25, 2017, 07:11 pm
hahahah!! grande Etem ;).
E' bello risentirvi....
in verità lo sfarfallio non se ne era mai andato, però mi sono detto: "proviamo a montare il tutto e vediamo cosa succede".... una volta montato il tutto NON funziona più niente :)

Per questo ho pensato fosse colpa delle mie saldature maldestre.

Tra l'altro ora che ho inserito tutte le strip nel case che ho tagliato con la laser cut sto provando a ricreare il circuito su una breadboard in modo da ritestare anche tutti i componenti.... vi faccio sapere.

Per il circuito così come l'ho fatto secondo voi funziona?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Sep 25, 2017, 08:38 pm
Hai pulito con diluente nitro e un vecchio spazzolino? Comunque l'unico metodo per assicurarsi il corretto funzionamento è prendere un tester e cercare la continuità e soprattutto la non continuità tra piste vicine.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Sep 25, 2017, 10:00 pm
In verità la pulizia con la nitro non l'ho provata... però ho controllato tutte le piste col tester e mi sembravano corrette.... ma visto il risultato dubito lo fossero.

Tra l'altro ora ho ricreato sulla breadboard tutto il circuito e comunque NON funziona. si accendono tutte le strip in contemporanea a parte la B, la C e la G della cifra delle decine d'ora.

ora riprovo a ripartire da capo e vi dico
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Sep 26, 2017, 11:12 am
intanto che rifaccio i vari test di funzionamento dei componenti ho ordinato questo (https://easyeda.com/normal/PCB_orizzontale_Auto-b8c7c2ab3890402785f90f2ad3a9d4f7) circuito dalla cina...
l'ho fatto con l'autorouting del sito, spero non abbia fatto casino. Voi cosa dite? regge? :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Sep 26, 2017, 05:55 pm
Nello schema che vedo al post #591 (http://forum.arduino.cc/index.php?topic=431577.msg3424500#msg3424500) noto alcune cose:

- MR di U7 e Vcc di U8 non sono collegati ai 5V.
- Le linee GND e +12V che salgono vicino al condensatore di ingresso C1 non hanno il pallino di giunzione (non so come viene interpretata questa mancanza dall'autorouting)
- I LED sono girati al contrario

Per il resto le piste di massa dei soli ULN2803 dovrebbero essere più grosse delle altre e separate da esse, dovrebbero congiungersi solo nei pressi del negativo di C1.

C1 dovrebbe essere da 100µF e C7 da 10.


In ogni caso non doveva esserci nessun tremolio delle cifre già in partenza (è uno dei vantaggi di non usare il multiplex).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Sep 27, 2017, 10:34 am
Grande Claudio_FF grazie delle dritte:

- MR di U7 e Vcc di U8 non sono collegati ai 5V.
Effettivamente non lo erano adesso ho aggiornato lo schema (https://easyeda.com/normal/SchemaDef-12a5b911a02342be9970a22b07f0bd67) portando una linea dal c4 facendola proseguire alla linea di giunzione di MR e Vcc di U7/8.

- Le linee GND e +12V che salgono vicino al condensatore di ingresso C1 non hanno il pallino di giunzione (non so come viene interpretata questa mancanza dall'autorouting)
In questo caso credo che l'autorouting lo abbia interpretato correttamente come vedi dal PCB (https://easyeda.com/normal/PCB_orizzontale_Auto_update-e5abd1c54ccb40998d607a48d14871a4) che ho ricreato in orizzontale per salvare spazio rispetto a quello di prima

Per il resto le piste di massa dei soli ULN2803 dovrebbero essere più grosse delle altre e separate da esse, dovrebbero congiungersi solo nei pressi del negativo di C1.
Pensi che così (https://easyeda.com/normal/PCB_orizzontale_Auto_update-e5abd1c54ccb40998d607a48d14871a4) sia meglio?

In ogni caso non doveva esserci nessun tremolio delle cifre già in partenza (è uno dei vantaggi di non usare il multiplex).
Son daccordo però ho reputato lo sfarfallio (che era solo su 3 cifre e non su tutto l'orologio) un problema di collegamenti maldestri dal momento che aumentava e/o diminuiva appena toccavo la scheda da me creata.... diciamo che il prototipo non era un lavoro ben fatto (infatti poi si è spento del tutto) ed è per questo che ho optato per ordinare il circuito stampato online :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Sep 27, 2017, 07:00 pm
Quote from: ghezzia
ho aggiornato lo schema portando una linea dal c4 facendola proseguire alla linea di giunzione di MR e Vcc di U7/8
Bastava aggiungere la connessione alla linea che già saliva m è uguale.

Quote
Pensi che così sia meglio
Si, li passa il grosso della corrente.

Quote
ho reputato lo sfarfallio (che era solo su 3 cifre e non su tutto l'orologio) un problema di collegamenti maldestri dal momento che aumentava e/o diminuiva appena toccavo la scheda da me creata
senz'altro una pista comune a quei tre elementi che non era saldata correttamente e "flottava" captando l'universo.

Quote
ed è per questo che ho optato per ordinare il circuito stampato online :)
Dopo i primissimi stampati a pennarello e percloruro ferrico (arghh, 35 anni fa) ho lavorato sempre con millefori (tutti pezzi unici, non "produzioni" in serie). Adesso che potrei non mi sono ancora deciso ad imparare qualche CAD adatto per un service on line  :smiley-lol:
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Sep 27, 2017, 10:13 pm
Si, li passa il grosso della corrente.
Bene! ho mandato in produzione anche questo PCB... quando arriverà vi farò sapere
Dopo i primissimi stampati a pennarello e percloruro ferrico (arghh, 35 anni fa) ho lavorato sempre con millefori (tutti pezzi unici, non "produzioni" in serie). Adesso che potrei non mi sono ancora deciso ad imparare qualche CAD adatto per un service on line  :smiley-lol:
Io ho trovato questo easyeda per caso e devo dire che sembra quasi a prova di stupido come me :)

Disegni lo schema inserendo i componenti che già sono censiti, crei il PCB e poi hai due alternative: 1) crei tu le tracce tra i vari componenti; 2) fai fare l'auto routing... che è quello che ho prediletto dal momento che rischiavo di fare ulteriore casino :)
I costi non sembrano neanche proibitivi: 5 circuiti stampati costano 20$ spese di spedizione escluse.... l'unico problema è che ne devi acquistare minimo 5, però considerando gli errori che commetterò nel saldare gli elementi ho come l'impressione che mi serviranno :D

intanto proseguo con i test dei vari componenti :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Sep 29, 2017, 09:45 am
Buongiorno a tutti,
nei vari test che sto facendo vorrei ricreare sulla breadboard il circuito e collegarlo direttamente alle stripled mantenendo la UNO come "core" anzichè ricreare anch'essa sul circuito. Questo mi permette di caricare i vari sketch in modo rapido e vedere se collegati alle strip tutto funziona regolarmente.

Visto che la UNO è alimentata dall'USB (o almeno io la sto alimentando in questo modo) e visto che le strip funzionano con i 12v, come mi consigliate di connettere il trasformatore che ho (12v 2 A) che alimenta tutto il circuito?

Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: gpb01 on Sep 29, 2017, 09:56 am
Se guardi QUI (http://www.pighixxx.com/test/portfolio-items/led-strip/) vedi come si collegano/pilotano quelle RGB ... se la tua è ad un solo colore, implementi solo 1/3 :D

Guglielmo
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Sep 29, 2017, 10:46 am
Grazie del suggerimento guglielmo.
però il mio dubbio era sulle modalità di collegamento del trasformatore alla board arduino UNO.

Mi spiego meglio attualmente tutto il mio circuito è alimentato da questo trasformatore che ha 12v siccome l'orologio è comandato da una board UNO, non posso alimentarla con quello, ma con quello devo alimentare le strip... ergo dovrei in qualche modo portare i 12v dopo che hanno alimentato le stripled all'interno della UNO...

è questo pezzo che mi manca :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Sep 29, 2017, 11:03 am
...come mi consigliate di connettere il trasformatore che ho (12v 2 A) che alimenta tutto il circuito?
Potresti creare una specie di shield con sopra i driver per i led e la parte alimentazione, magari in modo da infilarci sopra la uno "capovolta" per comodita', ed alimentare il tutto tramite il pin VIN con un regolatore da 8V ... parte della dissipazione la fa la scheda shield, cosi il regolatore di arduino scalda di meno ...

EDIT: pero' non con quel programma di autoroute, serve poter disegnare piani di massa decenti per la dissipazione, usa Eagle ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: gpb01 on Sep 29, 2017, 11:08 am
Ovvero tu vuoi usare un'unico alimentatore a 12V per entrambe le cose, le strip LED ed Arduino ... se ho ben capito ...

Arduino UNO, se non ha eccessivi carichi, può essere alimentato direttamente a 12V tramite il suo Jack, quindi, tu puoi sdoppiare il filo che esce dall'alimentatore e mandare una coppia +/- per alimentare i LED ed un altra coppia +/- per alimentare Arduno.  

Se invece ad Arduino sono attaccati dei carichi che assobono parecchio (es. 150/200 mA), allora è meglio abbassare i 12V suddetti, magari con uno step-down, a 7V ... così sei sicuro che il regolatore non scalda troppo.

Spero di aver capito la tua domanda e di averti risposto ... ::)

Guglielmo

Edit: Etem, che mi ha preceduto, forse ti ha dato la soluzione più pulita.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Sep 29, 2017, 01:00 pm
Potresti creare una specie di shield con sopra i driver per i led e la parte alimentazione, magari in modo da infilarci sopra la uno "capovolta" per comodita', ed alimentare il tutto tramite il pin VIN con un regolatore da 8V ... parte della dissipazione la fa la scheda shield, cosi il regolatore di arduino scalda di meno ...

Grazie Etem! Mi sembra però un tantino complicato... a me serve solo per fare dei test

Arduino UNO, se non ha eccessivi carichi, può essere alimentato direttamente a 12V tramite il suo Jack, quindi, tu puoi sdoppiare il filo che esce dall'alimentatore e mandare una coppia +/- per alimentare i LED ed un altra coppia +/- per alimentare Arduno. 

Se invece ad Arduino sono attaccati dei carichi che assobono parecchio (es. 150/200 mA), allora è meglio abbassare i 12V suddetti, magari con uno step-down, a 7V ... così sei sicuro che il regolatore non scalda troppo.

E' esattamente quello che intendevo, grazie Guglielmo, Se Arduino regge i 12 volt tramite jack vado subito a procurarmi un jack ;).

In merito al carico credo di non aver problemi dal momento che ogni test che farò durerà solo pochi secondi... giusto il tempo di verificare che i componenti funzionino
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Sep 29, 2017, 02:07 pm
Giusto per prudenza, disaccoppia i due rami dei 12V che vanno ad arduino ed alla sezione di potenza con due diodi (quello della sezione di potenza, che regga abbastanza corrente da poter alimentare i relativi carichi, ovviamente), e mettici un paio di condensatori per ramo dopo i diodi ... in questo modo, qualsiasi disturbo o caduta causata dal ramo di potenza influira' il meno possibile sulla parte logica ... ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Sep 29, 2017, 03:02 pm
Giusto per prudenza, disaccoppia i due rami dei 12V che vanno ad arduino ed alla sezione di potenza con due diodi (quello della sezione di potenza, che regga abbastanza corrente da poter alimentare i relativi carichi, ovviamente), e mettici un paio di condensatori per ramo dopo i diodi ... in questo modo, qualsiasi disturbo o caduta causata dal ramo di potenza influira' il meno possibile sulla parte logica ... ;)
mmmm etem.... mi puoi aiutare con un disegnino? :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Sep 29, 2017, 04:24 pm
(https://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=227817)

... fatto al volo con il paint, lo so che fa schifo, ma sto ancora reinstallando tutto sul disco nuovo e non ho ancora Eagle funzionante da nessuna parte qui in negozio ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Sep 29, 2017, 04:45 pm
(https://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=227817)

... fatto al volo con il paint, lo so che fa schifo, ma sto ancora reinstallando tutto sul disco nuovo e non ho ancora Eagle funzionante da nessuna parte qui in negozio ...
Wow Etem che manina... ;)
Solo alcuni chiarimenti:
per "carico" cosa intendi?
i condensatori van bene le lenticchie 22?
I diodi invece quali metto?

Grazie ancora :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Sep 29, 2017, 05:22 pm
Carico e' la parte che assorbe di piu, cioe' i positivi delle strip (o i positivi dei led che userai come segmenti per i test, con le loro resistenze ovviamente) ... in questo modo l'alimentazione della parte che assorbe piu corrente rimane disaccoppiata da quella della logica ... come condensatori, che li ho disegnato singoli, usa 100u 25V piu 100n  in parallelo per il ramo arduino, e 470u 25V piu 100n in parallelo per il ramo led ...

Come diodi per i test puoi usare dei banali 1N4004 o simili, se usi dei led singoli per i test, mentre se usi le strip, dovrai scegliere un diodo per il ramo led che regga senza problemi la corrente di tutte le strip accese (oppure 5 o 6 1N4004 in parallelo)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Sep 29, 2017, 06:53 pm
Domanda: la massa del carico che passa per gli ULN va separata e filtrata in qualche modo? Lui non pilota in multiplex ma se lo facesse sarebbe da filtrare e se si come?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Sep 29, 2017, 07:46 pm
No, la massa no ... abbondare con il piano di massa si, ma deve rimanere unica ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Sep 30, 2017, 02:07 am
Multiplex comunque, non PWM. Ho scritto una stupidaggine.

Piano di massa per raffreddare il regolatore o per altri motivi?

Comunque non scarterei la scelta di mettere un ATMega328 standalone con uno strip per collegare un modulo TTL / USB per programmare all'occorrenza il micro. Metti un 7805 per la parte "logica" ed è finita lì. I 12 volt arrivano dal trasformatore, dividi il positivo come ti ha detto Etem e dovresti essere a posto, anziché "buttare" una UNO così. Ho capito che non costa molto, ma per un progetto definitivo che sai che funziona dal punto di vista software magari poi facendo così riesci a riusarla che male non fa.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Sep 30, 2017, 10:43 am
Piani di massa ovunque sia possibile ... si possono usare anche per raffreddarci il regolatore dei 5V (in molti dei miei stampati lo faccio), ma principalmente per "schermare" tutto il possibile e ridurre al massimo la possibilita' di captare, o anche generare, disturbi ...

Al momento non posso farlo perche' non ho ancora finito di ripristinare tutto, se avessi Eagle potrei disegnargli uno stampato in relativamente poco tempo, ma almeno fino alla settimana prossima non posso ...

E si, se usa uno standalone, portare fuori i pin dell'ICSP non ci vuole molto, cosi potrebbe riprogrammarlo al volo lasciandolo sulla scheda, invece di togliere e mettere o di usare l'arduino completo ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Sep 30, 2017, 12:31 pm
Quote from: ghezzia
vorrei ricreare sulla breadboard il circuito e collegarlo direttamente alle stripled mantenendo la UNO come "core" anzichè ricreare anch'essa sul circuito. [.....] Visto che la UNO è alimentata dall'USB e visto che le strip funzionano con i 12v, come mi consigliate di connettere il trasformatore
Se per le prove vuoi usare la UNO alimentata da USB (e alimentare anche il resto della logica dai 5V USB) allora basta collegare i +12V agli anodi delle strip-led, il meno ai GND degli UNL, e il GND degli ULN al GND della logica/Arduino

Se invece il tutto deve funzionare anche con USB scollegata, allora ok le altre soluzioni proposte..

Comunque anche la versione standalone si può riprogrammare con l'IDE usando uno di questi adattatori USB<->seriale (PIXNOR-FT232RL-adattatore-seriale-Arduino (https://www.amazon.it/PIXNOR-FT232RL-adattatore-seriale-Arduino/dp/B013QRUA6W)).

Quote
Disegni lo schema inserendo i componenti che già sono censiti, crei il PCB e poi hai due alternative: 1) crei tu le tracce tra i vari componenti; 2) fai fare l'auto routing...
Lo sto provando, ma di fare autorouting non ne vuole sapere... da sempre network error.


Quote from: Etemenanki
EDIT: pero' non con quel programma di autoroute, serve poter disegnare piani di massa decenti per la dissipazione, usa Eagle ...
Si possono fare anche con quello, zone solide, slot, dimensioni piste e clearance, importa i progetti eagle ed esporta in gerber. Mi intriga per il fatto di non dover installare niente e non avere limiti di dimensioni/componenti. Ma l'autorouting on line non funzia  :smiley-confuse:

(http://stor.altervista.org/p.php?p=easyeda001.png)

Invece se lo schema viene suddiviso in più fogli fa casino con i nomi dei componenti, che aggiunge con numero progressivo relativo ad ogni foglio, ma poi la R1 del foglio 1 è in conflitto con la R1 del secondo ecc.

Quote
Piani di massa ovunque sia possibile ... si possono usare anche per raffreddarci il regolatore dei 5V
Per questo gli basta poco, spostare la pista 12V in basso, fare il buco per il 7805, e lasciare il piano di massa sopra e sotto, così:

(http://stor.altervista.org/p.php?p=easyeda005.png)

(http://stor.altervista.org/p.php?p=easyeda006.png)

E a proposito, ma il service che tecnica produttiva usa? Nel senso cosa cambia nel processo produttivo tra lasciare il rame e asportarlo quasi completamente?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Sep 30, 2017, 12:36 pm
Mai usate le "zone solide" (poligoni) per i piani di massa ... perche' li fanno dove vogliono loro, invece che dove voglio io ... piste, piste, e poi ancora piste :D

Del resto, mai usato neppure l'autoroute :P
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Sep 30, 2017, 07:02 pm
anziché "buttare" una UNO così. Ho capito che non costa molto, ma per un progetto definitivo che sai che funziona dal punto di vista software magari poi facendo così riesci a riusarla che male non fa.
no no non si butta niente :)
la stand alone nel prodotto finito era ovviamente contemplato, adesso sto usando la UNO solo per alcuni test sui componenti...

Se per le prove vuoi usare la UNO alimentata da USB (e alimentare anche il resto della logica dai 5V USB) allora basta collegare i +12V agli anodi delle strip-led, il meno ai GND degli UNL, e il GND degli ULN al GND della logica/Arduino
Questo passaggio non mi è chiarissimo, io ho provato collegando direttamente i +12v agli anodi, ma poi appunto non capivo dove collegare il GND, mi stai dicendo che lo devo collegare alla pista che collega tutti i GND degli ULN e poi gli il GND degli ULN a loro volta al GND di ingresso della UNO?

Lo sto provando, ma di fare autorouting non ne vuole sapere... da sempre network error.
In effetti è qualche giorno che da network error anche a me, però insistendo alla fine lo fa... ci ho provato 4 o 5 volte
Per questo gli basta poco, spostare la pista 12V in basso, fare il buco per il 7805, e lasciare il piano di massa sopra e sotto, così:

(http://stor.altervista.org/p.php?p=easyeda005.png)

(http://stor.altervista.org/p.php?p=easyeda006.png)
In effetti a tutti questi Piani di massa, zone solide etc. etc. non erano stati proprio contemplati  :smiley-confuse: ormai ho mandato in produzione ben 2 tipi ergo me li terrò così... vediamo come funzionano.

E a proposito, ma il service che tecnica produttiva usa? Nel senso cosa cambia nel processo produttivo tra lasciare il rame e asportarlo quasi completamente?
Questo non te lo so dire proprio... pensavo che il rame lo asportassero tutto...

ora provo col jack a fare i test
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Sep 30, 2017, 07:10 pm
...
E a proposito, ma il service che tecnica produttiva usa? Nel senso cosa cambia nel processo produttivo tra lasciare il rame e asportarlo quasi completamente?
Per loro, non cambia nulla ... dopo la metallizzazione elettrolitica e la deposizione del resist, in genere quasi tutti corrodono la parte da asportare con sostanze chimiche, ma considerando i volumi che fanno di solito non gli cambia molto doverne corrodere un po di piu o un po di meno ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Oct 02, 2017, 05:48 pm
Quote from: ghezzia
ormai ho mandato in produzione ben 2 tipi ergo me li terrò così... vediamo come funzionano
Comunque nel frattempo ho rimaneggiato lo schema aggiungendo le cose dette nel corso dei mesi, connettore FTDI per riprogrammazione, modifica linea di reset e alimentazione, resistenze di pull-up sul bus i2c, antirimbalzo hardware sui pulsanti, condensatori sulle alimentazioni degli shift register.

SCHEMA (https://easyeda.com/normal/Schema-217ff10dcfa94e1d905b5acb25bca1de)

Come vedi per i punti comuni (GND 5V 12V) non si disegnano le piste, bastano gli appositi simboli e vengono già considerati connessi.

Sui terminali non usati invece va apposta la apposita X che indica di non usarli (e quindi non compaiono più errori nella netlist a sinistra).

L'autoroute continua a non funzionare pertanto ho fatto uno sbroglio a mano per prendere confidenza con il CAD online.

PCB (https://easyeda.com/normal/PCB001_develop-47107657a2d44b21b75068775006d04f)

Sulla sinistra ci sono le piste lasagna per la corrente dei display. Ogni display è collegato con un cavetto a otto poli ad uno dei connettori, i 12V si collegano solo al connettore in basso a sinistra.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 02, 2017, 05:59 pm
Bene ... ora ti basta aggiungere un jumper a saldare fra le linee OE ed un pin (nel caso volesse aggiungere il lampeggio di tutto il display), ed almeno un'uscita per pilotare la sirena da 150db (nel caso volesse aggiungere la funzione sveglia), e sei a posto ... :D

EDIT: ma la scelta di metterlo in verticale in quel modo, era per montarlo in mezzo ai due gruppi di cifre ?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 02, 2017, 09:37 pm
Comunque nel frattempo ho rimaneggiato lo schema aggiungendo le cose dette nel corso dei mesi, connettore FTDI per riprogrammazione, modifica linea di reset e alimentazione, resistenze di pull-up sul bus i2c, antirimbalzo hardware sui pulsanti, condensatori sulle alimentazioni degli shift register.

SCHEMA (https://easyeda.com/normal/Schema-217ff10dcfa94e1d905b5acb25bca1de)

Come vedi per i punti comuni (GND 5V 12V) non si disegnano le piste, bastano gli appositi simboli e vengono già considerati connessi.

Sui terminali non usati invece va apposta la apposita X che indica di non usarli (e quindi non compaiono più errori nella netlist a sinistra).

L'autoroute continua a non funzionare pertanto ho fatto uno sbroglio a mano per prendere confidenza con il CAD online.

PCB (https://easyeda.com/normal/PCB001_develop-47107657a2d44b21b75068775006d04f)

Sulla sinistra ci sono le piste lasagna per la corrente dei display. Ogni display è collegato con un cavetto a otto poli ad uno dei connettori, i 12V si collegano solo al connettore in basso a sinistra.
WOW Claudio!! che lavorone. grazie assai.... intanto è sicuramente molto più "elegante" del mio oltre che, ovviamente più completo ;).

Magari mando in produzione anche questo, riesci a condividermi il file .zip gerber che chiedo loro di metterlo nell'ordine?

Solo una domandina:
Io avrei connesso ad un unico anodo tutte le strip di tutte le cifre... per questo prendevo i +12 direttamente a monte di tutto il circuito. Mi stai dicendo che ora posso prenderlo solo dal connettore in masso a sx (che sta comunque a monte di tutto). Se così è perchè inserire il +12 anche per ogni cifra a valle degli ULN?

EDIT: ma la scelta di metterlo in verticale in quel modo, era per montarlo in mezzo ai due gruppi di cifre ?
Esatto, io l'ho pensato così in modo da inserirlo tra i due gruppi... in verità alla fine di tutto, probabilmente lo sistemerò dove sarà più comodo lui :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Oct 02, 2017, 11:28 pm
Quote from: ghezzia
Magari mando in produzione anche questo, riesci a condividermi il file .zip gerber che chiedo loro di metterlo nell'ordine?
È un progetto pubblico come il tuo, mi cerchi con lo stesso nome di questo forum e puoi salvarti tutto.


Quote
Mi stai dicendo che ora posso prenderlo solo dal connettore in masso a sx
No, è una alternativa in più per avere meno filamenti in giro. Si entra con l'alimentatore in quel connettore, e ogni display si collega con uno spezzone di cavo ethernet al suo connettore, da cui prende anche i 12V per gli anodi dei segmenti. Ma nulla vieta di fare come hai fatto finora.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 03, 2017, 10:33 am
mi cerchi con lo stesso nome di questo forum e puoi salvarti tutto.

Nel campo ricerca non ti trovo... c'è un altro modo per cercare?

ogni display si collega con uno spezzone di cavo ethernet al suo connettore, da cui prende anche i 12V per gli anodi dei segmenti. Ma nulla vieta di fare come hai fatto finora.
Mi incuriosisce questa soluzione... ma non ho ben capito come intendi connettere (cavo ethernet?) gli anodi dei display...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 03, 2017, 11:00 am
Nel frattempo sono riuscito a ripristinare Eagle ed ho recuperato il file della versione che mi ero divertito ad improvvisare tempo fa ... a me era uscita cosi ... ha un paio di opzioni in piu rispetto alla tua, ma nulla di speciale, ci sono un paio di jumper a saldare per poter collegare anche i reset e gli enable degli shift (nel caso qualcuno volesse gestirlo con uno sketch diverso che usa anche i reset il primo, e se si volesse introdurre il lampeggio dei segmenti il secondo, come sveglia), un paio di connettorini su due uscite extra per poterci pilotare buzzer, mp3 player, trombe da treno o da allarme tornado, eccetera :D sempre come sveglia ... alimentazioni per i segmenti portate sui connettori, disaccoppiate e filtrate a parte, piano di dissipazione doppio per il regolatore con vias termiche ... roba che metto "in automatico", senza neanche pensarci ...

... giusto come idea ... ;)

(https://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=228312)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Oct 03, 2017, 12:23 pm
Quote from: ghezzia
Nel campo ricerca non ti trovo... c'è un altro modo per cercare?
Siamo nelle risorse. E comunque guarda il tuo nome nel percorso del browser...


Quote
ma non ho ben capito come intendi connettere (cavo ethernet?) gli anodi dei display...
Il 12V agli anodi e gli altri fili ai catodi. Ho detto ethernet per esempio perché ha otto fili.


Piuttosto ci sto ancora lavorando... non so quali siano le dimensioni standard dei pad, dei fori, delle piste ecc ecc. Ho l'impressione che a grandezza naturale vengano fuori dei pad minuscoli,  ogni componente ha fori di dimensioni diverse ecc. Potrei aver commesso clamorosi errori da principiante.


Per dire... il pad e il foro standard di una millefori di quanti mil sono?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 03, 2017, 02:06 pm
Le forature dei normali millefori sono al 99% da 0.8mm, il diametro dei pad invece varia da produttore a produttore secondo quello che gli girava a chi ha disegnato la scheda (seriamente, ne avro' trovate di almeno 5 diametri differenti) ... di solito se sono doppiafaccia con fori metallizzati sono piu piccoli, se non hanno le metallizzazioni o sono singola faccia sono un po piu larghe, se sono in bachelite ancora piu larghe, dai 40mil ai 66mil ho trovato di tutto ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 03, 2017, 02:49 pm
Siamo nelle risorse. E comunque guarda il tuo nome nel percorso del browser...
Ecco! ho trovato tutto, Grazie ! :)

Il 12V agli anodi e gli altri fili ai catodi. Ho detto ethernet per esempio perché ha otto fili.
Ah OK non capivo perchè ethernet ora mi è chiaro...
In merito agli anodi quindi potrei collegare l'ottavo filo al + 12 che vedo sulla sx di ogni ULN, giusto? quindi 1 anodo per ogni cifra, giusto?

... giusto come idea ... ;)
Grazie dell'idea Etem, ormai credo comunque che cercherò di farmi andare bene le schede che ho ordinato... vediamo se regge :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 04, 2017, 04:18 pm
Ciao ancora,
nel frattempo sto ritestando tutti i componenti collegandoli alle varie cifre delle stripled come suggerito e utilizzando lo script nel post #194..... ehehe andiamo indietro nel tempo :D

Pensate che, aggiungendo l'alimentazione esterna a 12v uno schema come questo (https://easyeda.com/normal/ArduinoStrip-f732bf3e94be499f84ab12eb960a133e) possa funzionare?

P.S. sto utilizzando la scheda arduino esterna e relativo jack di alimentazione che collegherò al trasformatore...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 04, 2017, 06:12 pm
Come ho gia detto, personalmente usando le strip io disaccoppierei con dei diodi le due alimentazioni a 12V, aggiungendo anche dei condensatori extra sul ramo delle strip ... giusto per evitare qualsiasi disturbo che possa essere causato da cadute di tensione o commutazioni ... ovviamente il diodo che alimenta le strip dovrebbe reggere la corrente di tutte le strip accese insieme, quindi o un diodo da 5A, oppure 5 o 6 1N400x in parallelo ... e sul lato che va all'arduino ne metterei anche 2 o 3 in serie, tanto per ridurre la dissipazione del regolatore a bordo ... ma questo e' quello che farei io :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Oct 04, 2017, 09:31 pm
Quote from: ghezzia
Pensate che, aggiungendo l'alimentazione esterna a 12v uno schema come questo (https://easyeda.com/normal/ArduinoStrip-f732bf3e94be499f84ab12eb960a133e) possa funzionare?
Se non sbaglio nello schema l'ordine dei segmenti è invertito rispetto agli ultimi 631 post :smiley-mr-green:

A parte questo schematicamente è ok, ma non mi piace il ritorno della corrente dai GND degli ULN che passa tutta attraverso le piste di Arduino.

I GND degli ULN andrebbero diretti al GND dell'alimentatore (o comunque da dove prelevi anche i 12V per gli anodi), senza attraversare tutta la scheda (comunque per una cifra non succede nulla).

Quote from: Etemenanki
Le forature dei normali millefori sono al 99% da 0.8mm, il diametro dei pad invece varia da produttore a produttore
Ok, ho scoperto che quelle che ho io hanno i fori da 1mm (o 1,0 qualcosa). Ho normalizzato tutti i fori a 1mm, i pad a 75mil, i pad degli integrati ovali a 64x100mil.

Immagino che le forature vadano a misure metriche, quindi 0.9, 1mm, 1.1mm, mentre le piste in teoria si potrebbero scegliere "al mil". Poi ci sono le tolleranze sulle forature (±0.08mm?) e sulla risoluzione fotografica, per cui non si scende sotto i 6 mil.


E poi ho copiato i via termici... anche se in questo caso è irrilevante, dovrà dissipare si e no 100..200mW.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 04, 2017, 10:46 pm
Se non sbaglio nello schema l'ordine dei segmenti è invertito rispetto agli ultimi 631 post :smiley-mr-green:
Si in effetti abbiamo invertito il tutto per essere più comodi nel sistemare tutto sulla PCB :D. Credo per i test comunque non cambi nulla...

I GND degli ULN andrebbero diretti al GND dell'alimentatore (o comunque da dove prelevi anche i 12V per gli anodi), senza attraversare tutta la scheda (comunque per una cifra non succede nulla).
Pensi che così (https://easyeda.com/normal/ArduinoStrip-f732bf3e94be499f84ab12eb960a133e) sia meglio? Tieni presente che i test proseguiranno anche con 2 e poi 4 cifre ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Oct 04, 2017, 11:17 pm
Ecco, così il gnd è ok.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 05, 2017, 06:01 pm
Mi sono portato avanti col lavoro... per i test con due cifre pensate questo schema (https://easyeda.com/normal/ArduinoStrip_x2-29aba8809d5c4cfcb6f4d485067ed084) possa andare bene?
Nel senso, non mi sono perso nulla vero?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Oct 05, 2017, 07:23 pm
Lo schema va bene.

Rimane il fatto che l'ordine dei segmenti è invertito rispetto agli ultimi 635 post.

E in più adesso abbiamo anche saltato dell'uscita Q1 dei registri.

Funziona, ma ti devi ricalcolare la tabella dei bit da trasmettere, perché quella usata finora (post #201) prevede:
-  segmento 'a' sul bit 7
-  segmento 'g' sul bit 1
-  non usato bit 0
-  trasmissione LSBFIRST.

Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 06, 2017, 10:48 am
Scusa io stavo utilizzando questo codice per i test per fare il conteggio da 0 a 99 con due cifre del display...

Code: [Select]

#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4
//---------------------------------------------------------------------
byte temp;
byte unita;
byte decine;
byte tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                    0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
//---------------------------------------------------------------------
void setup(){
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN, OUTPUT);
    digitalWrite(CLOCK_PIN, LOW);
    unita = 0;
    decine = 0;
}
//---------------------------------------------------------------------
void loop(){
    if (decine != 0)
        temp = tabella[decine];
    else
        temp = 0;  // soppressione primo zero

    digitalWrite(LATCH_PIN, LOW);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[unita]);
    shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, temp);
    digitalWrite(LATCH_PIN, HIGH);

    unita = unita + 1;
    if (unita == 10)
    {
        unita = 0;
        decine = decine + 1;
        if (decine == 10)
            decine = 0;
    }

    delay(1000);
}


Rimane il fatto che l'ordine dei segmenti è invertito rispetto agli ultimi 635 post.

E in più adesso abbiamo anche saltato dell'uscita Q1 dei registri.

Funziona, ma ti devi ricalcolare la tabella dei bit da trasmettere, perché quella usata finora (post #201) prevede:
-  segmento 'a' sul bit 7
-  segmento 'g' sul bit 1
-  non usato bit 0
-  trasmissione LSBFIRST.

Mi stai dicendo che è sufficiente invertire l'ordine dei segmenti?

Tra l'altro non essendoci il DP nelle cifre, se non avanza il Q1 avanza il Q7, o mi sbaglio?

ieri sono riuscito a collegare due cifre secondo lo schema visto e utilizzando il suddetto codice e in effetti la sequenza accendeva dei segmenti che non centravano nulla con le cifre del conteggio 0-99.

Nel w.e. proverò sicuramente a collegare 4 cifre (sempre con la UNO esterna) vediamo se riesco a farlo funzionare :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Oct 06, 2017, 02:54 pm
Quote from: ghezzia
Mi stai dicendo che è sufficiente invertire l'ordine dei segmenti?
Tra l'altro non essendoci il DP nelle cifre, se non avanza il Q1 avanza il Q7, o mi sbaglio?
Data: 7 novembre 2016
Post: #72
Oggetto: tabellina conversione valori -> codici display
(con trasmissione LSBFIRST e collegamento dei segmenti alle uscite Q7:Q0 come riportato in tabella)
Code: [Select]

           Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
           A  B  C  D  E  F  G  
--------------------------------------------
  0        1  1  1  1  1  1  0  0     0xFC
  1        0  1  1  0  0  0  0  0     0x60
  2        1  1  0  1  1  0  1  0     0xDA
  3        1  1  1  1  0  0  1  0     0xF2
  4        0  1  1  0  0  1  1  0     0x66
  5        1  0  1  1  0  1  1  0     0xB6
  6        1  0  1  1  1  1  1  0     0xBE
  7        1  1  1  0  0  0  0  0     0xE0
  8        1  1  1  1  1  1  1  0     0xFE
  9        1  1  1  1  0  1  1  0     0xF6


Adesso hai effettuato questo collegmento:
Code: [Select]

           Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
           G     F  E  D  C  B  A
--------------------------------------------
  0        ?  0  ?  ?  ?  ?  ?  ?    0X??
  1        ?  0  ?  ?  ?  ?  ?  ?    0X??
  2        ?  0  ?  ?  ?  ?  ?  ?    0X??
  3        ?  0  ?  ?  ?  ?  ?  ?    0X??
  4        ?  0  ?  ?  ?  ?  ?  ?    0X??
  5        ?  0  ?  ?  ?  ?  ?  ?    0X??
  6        ?  0  ?  ?  ?  ?  ?  ?    0X??
  7        ?  0  ?  ?  ?  ?  ?  ?    0X??
  8        ?  0  ?  ?  ?  ?  ?  ?    0X??
  9        ?  0  ?  ?  ?  ?  ?  ?    0X??

Quindi la tabella va riscritta

OR
i collegamenti vanno rimessi come in origine

OR
si tengono i segmenti così come si accendono e si esibisce agli amici un orologio pittoresco

OR
si tiene la tabella così come è ma si inverte l'ordine di trasmissione dei bit usando la modalità MSBFIRST, in questo caso siamo quasi giusti, c'è sempre il segmento G fuori posto:
Code: [Select]

           Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
           A  B  C  D  E  F     G  
--------------------------------------------
  0        1  1  1  1  1  1  0  0     0xFC



STOP RUN
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 06, 2017, 02:58 pm
Non so perche', ma mi sa che il punto due e' quello preferibile ... :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 06, 2017, 04:20 pm
Non so perche', ma mi sa che il punto due e' quello preferibile ... :D
No ragazzi gli amici hanno già avuto modo di vedere e apprezzare le mie doti artistiche in tal senso :D...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 06, 2017, 04:42 pm
OR
i collegamenti vanno rimessi come in origine
Aspetta, mi sono accorto che il link ti riporta uno schema che ho già aggiornato da tempo...
in verità il progetto è stato aggiornato come da allegato. Non so perchè il link che condivido riporta alla vecchia versione.

pensi che col vecchio codice ora possa funzionare?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 09, 2017, 09:45 am
OK!
Sembra funzionare tutto, segmenti componenti e sketch dei vari test... Stasera proverò a fare un'ultima prova attaccando tutti i 4 display per vedere che funzioni tutto contemporaneamente...

Poi aggiungerò RTC e pulsanti.
volessi aggiungere anche il componente USB per programmare lo stand alone direttamente nel circuito, immagino che lo sketch finale dell'orologio NON cambi, giusto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 09, 2017, 10:27 pm
Eccoci! Euiva euiva  ;D  :D  8)
con questo codice ho ricollegato il tutto (sulla breadboard) e tutto sembra funzionare.
Code: [Select]


#include <Wire.h>
#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4
#define MIN_PULS  5
#define HOUR_PULS 6
//-----------------------------------------------------------------------------
// Variabili di lavoro globali (28 byte)
//-----------------------------------------------------------------------------
typedef struct {
    uint32_t time;
    byte     stat;
} button_t;

button_t minPulsData = {millis(), 0};   // dati pulsante minuti
button_t hourPulsData = {millis(), 0};  // dati pulsante ora
uint32_t tempoPunti = millis();         // tempi di partenza
byte     point = 1;                     // variabile per lampeggio punti
byte     error = false;                 // true se errore lettura RTC
byte     minuti = 0;                    // minuti correnti
byte     ore = 0;                       // ore correnti
byte     tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                        0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
//-----------------------------------------------------------------------------
// Rileva click su tasti con debounch 60 ms e autorepeat dopo 1 s
//-----------------------------------------------------------------------------
bool click(byte pin, ::button_t* data){
    uint32_t elapsed = millis() - data->time;
    bool press = digitalRead(pin);
    switch (data->stat)
    {
        case 0:                             // attesa pressione
            if (press){                     // se premuto
                data->stat = 1;             // passa ad antirimbalzo
                data->time = millis();
            }
            return false;


        case 1:                             // antirimbalzo pressione
            if (!press){                    // se non premuto
                data->stat = 0;             // ritorna ad attesa
                return false;
            }
            if (elapsed > 60){              // primo click
                data->stat = 2;
                data->time = millis();
                return true;
            }
            return false;


        case 2:                             // attesa inizio autorepeat
            if (!press){                    // se non premuto
                data->stat = 3;
                data->time = millis();
                return false;
            }
            if (elapsed > 1000){            // inizio autorepeat dopo 1 s
                data->stat = 4;
                data->time = millis();
                return true;                // primo autoclick
            }
            return false;


        case 3:                             // antirimbalzo rilascio
            if (press){                     // se premuto
                data->stat = 2;
                data->time = millis();
                return false;
            }
            if (elapsed > 60)               // rilasciato
                data->stat = 0;             // torna ad attesa
            return false;


        case 4:                             // autorepeat
            if (!press){                    // se non premuto
                data->stat = 5;
                data->time = millis();
                return false;
            }
            if (elapsed > 100){             // successivi click ogni 100 ms
                data->time = millis();
                return true;
            }
            return false;


        case 5:                             // antirimbalzo rilascio
            if (press){                     // se premuto
                data->stat = 4;
                data->time = millis();
                return false;
            }
            if (elapsed >= 60)              // rilasciato
                data->stat = 0;             // torna ad attesa
            return false;
    }
}

//-----------------------------------------------------------------------------
byte binBCD(byte n){
    return ((n / 10) << 4) | (n % 10);
}
//-----------------------------------------------------------------------------
void impostaRTC(){
    Wire.beginTransmission(0x68);   // <--- indirizzo RTC su bus i2c
    Wire.write(0);                  // <--- punta al registro 0
    Wire.write(0);                  // <--- azzera secondi RTC
    Wire.write(binBCD(minuti));     // <--- imposta minuti RTC
    Wire.write(binBCD(ore));        // <--- imposta ore RTC
    Wire.endTransmission();
}
//-----------------------------------------------------------------------------
void avanzaOra(){
    ore = (ore + 1) % 24;
}
//-----------------------------------------------------------------------------
void avanzaMinuto(){
    if (++minuti == 60){
        minuti = 0;
        avanzaOra();
    }
}
//-----------------------------------------------------------------------------
void blinkPunti(){
    if (millis() - tempoPunti >= 500){
        tempoPunti += 500;
        point ^= 1;
    }
}
//-----------------------------------------------------------------------------
byte BCDbin(byte n){
    return ((n >> 4) * 10) + (n & 0x0F);
}
//-----------------------------------------------------------------------------
void leggiRTC(){
    Wire.beginTransmission(0x68);   // <--- indirizzo RTC su bus i2c
    Wire.write(1);                  // <--- punta al registro 1
    if (Wire.endTransmission()){    // <--- errore di connessione
        error = true;
        return;
    }
    Wire.requestFrom(0x68, 2);      // <--- due registri da leggere
    if (Wire.available() != 2){
        error = true;               // <--- errore di ricezione
        return;
    }
    minuti = BCDbin(Wire.read());
    ore = BCDbin(Wire.read());
    error = false;
}
//-----------------------------------------------------------------------------
// Scrittura su display con blanking primo zero e lampeggio se errore
//-----------------------------------------------------------------------------
void visualizza(){
    digitalWrite(LATCH_PIN, LOW);
    if (error && !point){
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
    }else{
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[minuti%10]);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[minuti/10]);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[ore%10]|point);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, (ore/10) ? tabella[ore/10] : 0);
    }
    digitalWrite(LATCH_PIN, HIGH);
}
//-----------------------------------------------------------------------------
// Impostazione sistema
//-----------------------------------------------------------------------------
void setup(){
    Wire.begin();                   // inizializza bus i2c
    pinMode(MIN_PULS,  INPUT);
    pinMode(HOUR_PULS, INPUT);
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN,  OUTPUT);
    digitalWrite(CLOCK_PIN, LOW);
    visualizza();                   // prima scrittura su display
}
//-----------------------------------------------------------------------------
// Ciclo principale eseguito circa 800 volte al secondo
//-----------------------------------------------------------------------------
void loop(){
    leggiRTC();                     // lettura ora corrente da RTC
    blinkPunti();                   // lampeggio punti 1 Hz

    if (click(MIN_PULS, &minPulsData)){     // se premuto puls.minuti
        avanzaMinuto();                     // regola minuti
        impostaRTC();
    }

    if (click(HOUR_PULS, &hourPulsData)){   // se premuto puls.ore
        avanzaOra();                        // regola ora
        impostaRTC();
    }

    visualizza();                   // aggiorna display
}

Ore, minuti, pulsanti (minuti e ore); anche l'rtc tiene l'ora. L'arduino continua ad essere esterno... ma confido che seguendo i collegamenti indicati non avrò problemi.

L'unico piccolo neo è che i due punti centrali (due semplici LED), sono molto meno luminosi rispetto alle strip quindi si perdono un pochino (ma direi che, a questo punto, è un male necessario).

Ecco la foto.

Non mi rimane che aspettare la scheda comprata dalla cina e vedere se riesco anche a saldare il tutto.

Incrociamo le dita :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 10, 2017, 09:55 am
...
L'unico piccolo neo è che i due punti centrali (due semplici LED), sono molto meno luminosi rispetto alle strip quindi si perdono un pochino ...
... che e' poi il motivo per cui nello schema che avevo modificato avevo messo 4 led per punto :P

Comunque, nulla ti vieta, se ti e' avanzato un pezzettino di strip, di tagliare fuori due led della strip e fissarli dietro al pannello incollati a qualcosa, con i fili (e le opportune resistenze) verso il resto del circuito, per averli piu o meno luminosi come gli altri ... ;)

Oppure, volendo esagerare, di farti un paio di piccoli PCB monofaccia per saldarceli sopra ... roba tipo questa (https://www.artekit.eu/products/breakout-boards/bbadapters/5050-led-breakout-board/), ma casalinga ... pero' potrebbero anche bastare due ritagli di millefori, dato che i pin dello stesso lato vanno comunque saldati insieme ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 10, 2017, 10:10 am
... che e' poi il motivo per cui nello schema che avevo modificato avevo messo 4 led per punto :P
Si in effetti avevo preso in considerazione questa ipotesi, però 4 led mi occupavano troppo spazio ;).
Comunque anche con 4 led credo che rimanga il problema che il colore è sostanzialmente diverso...

Comunque, nulla ti vieta, se ti e' avanzato un pezzettino di strip, di tagliare fuori due led della strip e fissarli dietro al pannello incollati a qualcosa, con i fili (e le opportune resistenze) verso il resto del circuito, per averli piu o meno luminosi come gli altri ... ;)
Mi piace di più questa ipotesi, solo che le strip che ho (mi è avanzato qualche metro) se non sbaglio hanno il taglio ogni 3 led e non ogni led...
Inoltre sono collegati tra loro in parallelo (ogni led ha già una resistenza) come li "innesco" al circuito? GND verso l'ULN e + 12v direttamente all'ingresso? non cambia nulla anche se sono in parallelo, giusto?

P.S. ora che sto vedendo la luce del tunnel vorrei aggiungere mille cose a questo orologio... Sicuramente la possibilità che quando non c'è nessuno in casa si possano in qualche modo spegnere i led (energy saving ;) )... Avete idee semplici da poter inserire a questo punto del progetto senza stravolgerlo?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Oct 10, 2017, 10:23 am
Tu tagli fuori un LED e togli la gomma waterproof, grattando anche le piste per saldarci sopra i cavetti da portare dietro. Credo si riferisse a questo.

Ogni spezzone sono 3 LED in serie con una resistenza se non ricordo male. Leggi il valore della resistenza.
Sai che ogni LED rosso ha una caduta di tensione di 1.8 V immagino, quindi moltiplichi per 3, sottrai questo valore ai 12 volt entranti e dividi per la resistenza trovandoti la corrente passante limitata. I due LED dei punti li metti in serie, 12 V meno la caduta di tensione di soli due LED tutto quanto diviso la corrente che ti sei trovato prima e trovi la resistenza da applicare per avere più o meno la stessa luminosità.

A questo punto i due LED li tratti come fossero delle strip, per cui 12 V e massa separata.

Non ho sotto mano il tuo schema elettrico per dirti che modifiche devi fare.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Oct 10, 2017, 10:27 am
Per altre idee, dipende da cosa vorresti fare tu e da quanti pin ti sono rimasti liberi.

Comunque se vuoi il modulo TTL / USB per caricare i firmware aggiornati non devi cambiare lo sketch. Però mi viene il dubbio che l'alimentazione USB e l'alimentazione data dall'LM7805 possano andare in conflitto e debbano essere divise, questo non lo so e dovrebbe risponderti qualcuno come Etem.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 10, 2017, 10:35 am
Si, esatto ... ogni pezzo che puoi tagliare sono tre led in serie, con la propria resistenza ... ed i tre chip all'interno di ogni led 5050 sono in parallelo fra loro ... quindi basta che li tagli (o dissaldi e risaldi su un PCB o millefori) uno ad uno, e poi calcoli la resistenza per fargli passare circa 50mA su una caduta di circa 1.8V, o meglio su una caduta di 3.6V, dato che nel tuo caso sarebbero due in serie (si potrebbe arrivare a 60mA ma e' sempre meglio rimanere leggermente sotto)

Dissaldarli e' abbastanza semplice, dato che lo stampato e' flesibile, basta piegarlo leggermente mentre scaldi (velocemente) i tre pin da un lato ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 10, 2017, 10:56 am
Per altre idee, dipende da cosa vorresti fare tu e da quanti pin ti sono rimasti liberi.
Un'idea è quella di cui sopra: spegnere solo i led nel momento che non c'è nessuno a casa, oppure quando spegnamo le luci per evitare che di notte illumini effetto stadio tutta la cucina... Meno male non dorme nessuno in cucina :D.

Comunque se vuoi il modulo TTL / USB per caricare i firmware aggiornati non devi cambiare lo sketch. Però mi viene il dubbio che l'alimentazione USB e l'alimentazione data dall'LM7805 possano andare in conflitto e debbano essere divise, questo non lo so e dovrebbe risponderti qualcuno come Etem.
per questa eventualità non è sufficiente staccarlo dalla spina ogni volta che voglio collegarlo all'USB per programmarlo? (tra l'altro non credo lo farò mail ;) )

Si, esatto ... ogni pezzo che puoi tagliare sono tre led in serie, con la propria resistenza ... ed i tre chip all'interno di ogni led 5050 sono in parallelo fra loro ... quindi basta che li tagli (o dissaldi e risaldi su un PCB o millefori) uno ad uno, e poi calcoli la resistenza per fargli passare circa 50mA su una caduta di circa 1.8V, o meglio su una caduta di 3.6V, dato che nel tuo caso sarebbero due in serie (si potrebbe arrivare a 60mA ma e' sempre meglio rimanere leggermente sotto)

Dissaldarli e' abbastanza semplice, dato che lo stampato e' flesibile, basta piegarlo leggermente mentre scaldi (velocemente) i tre pin da un lato ...
quindi comunque mi stai dicendo di metterne due di led e non tre per ogni punto, corretto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 10, 2017, 10:57 am
p.s. qualcuno di voi mi sa dire che "consumo energetico" potrebbe avere?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 10, 2017, 11:42 am
...
quindi comunque mi stai dicendo di metterne due di led e non tre per ogni punto, corretto?
No, uno ... ogni led tipo 5050, come quelli delle strip, ha al suo interno tre chip, che nelle strip sono collegati in parallelo (in pratica, ogni pezzo che puoi tagliare, e' come se forssero tre gruppi di tre led in parallelo, collegati in serie fra loro) ... usando un solo led, e' come se ne usassi tre normali, con il vantaggio pero' di avere lo stesso tipo di led delle strip, quindi stesso colore e luminosita' ...

Se invece la cosa ti crea problemi, puoi usare pezzi da 3 led, ma dovresti scavare dietro al pannello due asole in modo da far affacciare ai fori solo uno dei led, ad esempio quello centrale, e rimanere nascosti dietro gli altri due ... o trasformare i punti in trattini, in modo che ci si affaccino due led per trattino, con due led in mezzo nascosti dal pannello, cosi potresti usare uno spezzone da sei ... sistemi ce ne sono piu di uno ... pero' avendo il pannello gia tagliato e rifinito, per evitare il rischio di rovinarlo, mi limiterei ad un led per foro ...

Per ridurre la luminosita' di notte, dovresti agire sul positivo in comune dei led (escludendo il PWM che preferivi evitare) ... potresti farlo usando un regolatore di tensione LDO, che regga abbastanza corrente per alimentare tutti i led, pilotato o da un segnale del micro, o piu semplicemente da una fotoresistenza o fototransistor, in modo da abbassare di un tot la tensione quando la luminosita' ambiente scende sotto un certo livello ... come alternativa, se volessi usare il PWM, potrebbe essere applicato ai pin OE degli shift, in modo da accenderli e spegnerli ad alta velocita', abbassando la luminosita' media ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Oct 10, 2017, 07:18 pm
Quote from: ghezzia
per questa eventualità non è sufficiente staccarlo dalla spina ogni volta che voglio collegarlo all'USB per programmarlo?
Ni. Alimentando solo da USB si rischia di rovinare il regolatore.
Per evitare questo nel mio schema ho aggiunto i due diodi (vicino al regolatore).

Per collegare da entrambe le parti, e quindi avere anche i 12V verso le strip per test "dal vivo", nell'ultimo schema (https://easyeda.com/normal/Schema-217ff10dcfa94e1d905b5acb25bca1de) ho aggiunto apposta  un jumper per sezionare i +5V provenienti da USB.

Tra l'altro io vedo in questo progetto qualcosa di ben più generale e di diverso utilizzo di un oroglogio, abbiamo 28 uscite darlington, un micro, un RTC, un collegamento FTDI, gli usi sono molteplici: scheda attuatori comandata da PC, sofisticato temporizzatore multiplo per 28 lucine presepe... ecc ecc
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 10, 2017, 10:01 pm
No, uno ... ogni led tipo 5050, come quelli delle strip, ha al suo interno tre chip, che nelle strip sono collegati in parallelo (in pratica, ogni pezzo che puoi tagliare, e' come se forssero tre gruppi di tre led in parallelo, collegati in serie fra loro) ... usando un solo led, e' come se ne usassi tre normali, con il vantaggio pero' di avere lo stesso tipo di led delle strip, quindi stesso colore e luminosita' ...
Si si, intendevo due uno per punto... è così che intendi tu, giusto? .... devo capire come gestire i "tagli" delle strip :)

... potresti farlo usando un regolatore di tensione LDO, che regga abbastanza corrente per alimentare tutti i led, pilotato da una fotoresistenza o fototransistor, in modo da abbassare di un tot la tensione quando la luminosita' ambiente scende sotto un certo livello ...
questa soluzione mi sembra simpatica... mi pare che non bisogna neanche intervenire sul codice giusto? io avevo già comprato questi (https://www.amazon.it/gp/product/B01MQGMOKI/ref=oh_aui_detailpage_o06_s00?ie=UTF8&psc=1) pensi possano fare al caso mio? una foto resistenza ce l'ho, come dovrei inserire il tutto nello schema?

Ni. Alimentando solo da USB si rischia di rovinare il regolatore.
Per evitare questo nel mio schema ho aggiunto i due diodi (vicino al regolatore).

Per collegare da entrambe le parti, e quindi avere anche i 12V verso le strip per test "dal vivo", nell'ultimo schema (https://easyeda.com/normal/Schema-217ff10dcfa94e1d905b5acb25bca1de) ho aggiunto apposta  un jumper per sezionare i +5V provenienti da USB.
grazie Claudio anche questo è un ottimo aiuto
Tra l'altro io vedo in questo progetto qualcosa di ben più generale e di diverso utilizzo di un oroglogio, abbiamo 28 uscite darlington, un micro, un RTC, un collegamento FTDI, gli usi sono molteplici: scheda attuatori comandata da PC, sofisticato temporizzatore multiplo per 28 lucine presepe... ecc ecc
peccato non faccio il presepe :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Oct 11, 2017, 09:10 am
Ni. Alimentando solo da USB si rischia di rovinare il regolatore.
Per evitare questo nel mio schema ho aggiunto i due diodi (vicino al regolatore).
Basta questo? Se invece ho sovratensioni per qualsiasi motivo sulla linea dei 5v sulla USB?

Parti comunque dal presupposto che potrebbe capitarti che ti dimentichi l'alimentazione collegata e vuoi cambiare il firmware, così prevedi lo scenario peggiore.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 11, 2017, 09:45 am

> Claudio: veramente, se colleghi tutto hai 32 uscite darlington disponibili, non 28 ... e per giunta avanza ancora qualche pin da usare come ingresso, volendo farsi proprio del male :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 11, 2017, 09:52 am
> ghezzia: quello e' uno step-down, serve che la tensione di ingresso sia piu alta di quella di uscita, per funzionare correttamente ... nel tuo caso, dato che le strip vanno a 12V, potrebbe perfino bastare metterci 3 o 4 diodi in serie, e cortocircuitarli con un mosfet canale P ... quando e' aperto la luminosita' e' minore, e viceversa ... oppure servirebbe alimentare il tutto con poco piu di 12V, ed in quel caso potresti usare uno degli step-down come preregolatore per il 7805, abbassandolo a 9V (cosi scalderebbe di meno), ed un'altro sul positivo dei led, collegando la fotoresistenza al trimmer di regolazione (o meglio, sostituendo il trimmer con un partitore che incorpori anche una fotoresistenza, occhio alle saldature, e' roba SMD e si fa presto a rovinarla se non si fa attenzione), in modo che piu c'e' luce e piu la tensione aumenta, e viceversa ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 11, 2017, 11:51 am
> ghezzia: quello e' uno step-down, serve che la tensione di ingresso sia piu alta di quella di uscita, per funzionare correttamente ... nel tuo caso, dato che le strip vanno a 12V, potrebbe perfino bastare metterci 3 o 4 diodi in serie, e cortocircuitarli con un mosfet canale P ... quando e' aperto la luminosita' e' minore, e viceversa
mmmm mi sono perso ;)

La seconda parte mi è invece più chiara, anche se non semplicissima da realizzare, solo che io ho il trasformatore che fa uscire 12v.... da quello che ho capito ne servirebbero di più giusto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: brunello22 on Oct 11, 2017, 12:10 pm
@Etem... diceva di fare una cosa così..

(https://s25.postimg.org/nuvq1pkqn/12_mosfet.png)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 11, 2017, 12:36 pm
> brunello: si, ma come diodi prenderei quelli da almeno 3A, cosi scaldano ancora di meno ... la serie 1N regge 1A massimo, ma gia a 500mA iniziano a scaldarsi un po ... oppure, si possono sempre mettere tre diodi in parallelo per ognuno di quelli nello schema, tanto costano pochi centesimi l'uno ... mentre per il numero di unita' in serie, va trovata sperimentalmente la quantita' che da la luminosita' desiderata ...


> ghezzia: quegli step-down usano un MP1584 come integrato, ed il trimmer e' fra l'uscita ed il pin FB, mentre di solito fra FB e massa usano una resistenza fissa ... dato che la fotoresistenza diminuisce il valore con l'aumentare della luminosita', bisogna metterla (con un secondo trimmer in serie) in parallelo alla resistenza che va dal pin FB a massa ... in questo modo si puo regolare in modo che la tensione di uscita aumenti quando la luce aumenta (fino ad un certo punto ovviamente), ed al contrario si riduca al buio, diminuendo la luminosita' dei segmenti ... siccome i componenti li sono SMD, il sistema migliore e' saldare due fili lunghi 4 o 5 cm ai capi della resistenza in questione (senza toglierla dallo stampato ovviamente), e poi saldare la serie fotoresistenza/trimmer ai fili, in modo da non forzare sulle saldature del modulino ... pero' bisogna che abbiano almeno tre volt di differenza fra ingresso ed uscita per poter funzionare correttamente, quindi per tirarci fuori i 12V per il massimo di luminosita', servirebbe alimentarli con minimo 15 o 16 V ... ci sono alimentatori per portatili che danno 16V in uscita (quelli dei vecchi IBM/Lenovo, ad esempio), oppure gli universali che hanno il cambio tensione ... e su ebay ormai non costano piu molto ... esempio (http://www.ebay.com/itm/ALIMENTATORE-COMPATIBILE-NOTEBOOK-16V-4A-64W-PLUG-6-0-4-4-SONY-VAIO-/172767803144) ... pero' con il 12V in ingresso, lo step-down piu di 9 in uscita non te ne darebbe ...

Il sistema con i diodi ed il mosfet e' piu "grossolano", avresti piu che altro una specie di commutazione invece che una regolazione proporzionale, ma basterebbero i 12V che hai, ed i componenti si possono far stare sul PCB ... o anche su un pezzo di millefori a parte ... rispetto allo schema di Brunello, si collega la fotoresistenza alla base del transistor tramite un trimmer, in modo da poter regolare la soglia di accensione in base alla luminosita' ambiente, piu un paio di condensatori come filtro ... ed usando un mosfet per alta corrente, non dovrebbe servire neppure un dissipatore ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Oct 11, 2017, 02:34 pm
L'unico suggerimento che posso dare è quello di aggiungere un ESP8266 (o una ethernet) e usare NTP per regolare l'ora unita alla libreria TimeZone che gestisce anche l'ora estive. Così ti eviti di regolare 2 volte l'anno anche questo orologio insieme a tutti quelli che hai in casa e fuori casa al passaggio ora invernale/estiva.

Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 11, 2017, 05:34 pm
grazie ad entrambi ora ci studio... anche se penso che lascerò così com'è.... al massimo aggiungo solo a monte di tutto lo step-down che regolerò all'occorrenza manualmente..... ora che inizio a vedere la luce :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 11, 2017, 05:36 pm
L'unico suggerimento che posso dare è quello di aggiungere un ESP8266 (o una ethernet) e usare NTP per regolare l'ora unita alla libreria TimeZone che gestisce anche l'ora estive. Così ti eviti di regolare 2 volte l'anno anche questo orologio insieme a tutti quelli che hai in casa e fuori casa al passaggio ora invernale/estiva.
Scusa, non mi è chiaro, dove dovrei/potrei aggiungerlo?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Oct 12, 2017, 11:12 am
Se hai 2 pin liberi per una seriale software puoi aggiungere un ESP8266 per collegarti in WiFi al router. A questo punto ogni tanto il tuo orologio si può collegare a un server NTP che gli darà l'ora esatta. La libreria TimeZone, più che per trovare l'ora nel nostro fuso, è molto utile per calcolare quando passare all'ora estiva e quando a quella invernale.
Il risultato è che l'ora si aggiusta da sola come fa sul PC e sullo smartphone. Se manca la luce e si spegne tutto quando torna l'orologio si setta daccapo all'ora esatta, qui però devi operare nello sketch perché il router ci mette tempo a ricollegarsi.
Io ho anche eliminato l'RTC hardware, se usi la libreria RTClib è banale, negli esempi c'è l'RTC basato su millis, per cui dovresti avere anche i pin per la seriale software.
La cosa funziona anche con lo shield Ethernet ma qui servono più pin e quelli usati dallo shield non possono essere cambiati.
Se i pin ci bastano puoi anche fare tutto con un ESP8266 senza l'Arduino.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 13, 2017, 12:35 pm
Se hai 2 pin liberi per una seriale software puoi aggiungere un ESP8266 per collegarti in WiFi al router.
Per un paio di PIN liberi intendi sulla UNO? se così è dovrebbero esserci; abbiamo occupato solo il D2, 3, 4, 5, 6... solo che non mi è chiaro come dovrei cambiare lo sketch...

Nel frattempo: mi sono arrivati i PCB sia la versione sbagliata (https://easyeda.com/normal/PCB_orizzontale_Auto-b8c7c2ab3890402785f90f2ad3a9d4f7) (dove mancava il collegamento al VCC degli shift superiori), che la versione corretta (https://easyeda.com/normal/PCB_orizzontale_Auto_170927-e5abd1c54ccb40998d607a48d14871a4).... indovinate su quale delle due ho iniziato a saldare i componenti????  :smiley-cry:  :smiley-cry:  :smiley-cry:

poi volevo chiedervi: all'interno della scatola mi hanno omaggiato della penna che vedete in foto... ma è una penna normale? serve a qualcosa di specifico? ve lo chiedo perchè vedo che la punta finissima è protetta da un mini tappino nero di gomma oltre che dal classico tappo di tutte le penne.... mah!
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Oct 13, 2017, 01:09 pm
Credo sia solo una penna omaggio loro :D

Comunque piuttosto che un modulo WiFi, se hai la possibilità, collega ai pin A4 e A5 analogici un DS3231 o un RTC qualsiasi che viaggia su i2c. Imposti l'ora una volta e sei a posto anche in caso di blackout.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 13, 2017, 02:05 pm
Comunque piuttosto che un modulo WiFi, se hai la possibilità, collega ai pin A4 e A5 analogici un DS3231 o un RTC qualsiasi che viaggia su i2c. Imposti l'ora una volta e sei a posto anche in caso di blackout.
L'RTC è già incluso nel progetto... tiene conto anche lui delle date in cui cambia l'ora legale? non credo giusto?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 13, 2017, 05:41 pm
scusate altra domandina :).
Se volessi stampare la PCB (https://easyeda.com/normal/PCB001_developClaudio_FF-f66e0540a41145568c8aa227e1595611) che ha creato Claudio per sperimentare la creazione fai da te dello stampato, come faccio? intendo dire: che tipo di file devo ricavare dal progetto che ha creato? e come?

Inoltre: pensate sia particolarmente complicato sviluppare una PCB? detto che sicuramente dovrò procurarmi un trapano a colonna per i forellini :)...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: brunello22 on Oct 13, 2017, 06:08 pm
Fai da te...... un doppia faccia ?  Lascia perdere.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Oct 13, 2017, 06:13 pm
Più che della penna sarebbe stata interessante la foto del pcb :)

È arrivato in poco tempo, quindi immagino DHL.
Dogana?
Spese spedizione?

Invece il mio pcb che hai postato era (come avevo sottolineato) una versione ancora in lavorazione, vedi i due inutili pad la in alto e la mancanza dei piani di massa che collegano i GND. Chiedendo la lista DRC error dovrebbero venire evidenziati diversi collegamenti mancanti.

Credo che se fai una semplice copia del progetto attuale, attivi i piani di massa se non lo sono, e verifichi che non ci siano DRC error, questo sia sufficiente. Nella pagina dell'ordine si possono anche salvare i gerber in un file .zip

*Non* fare invece un update pcb dallo schema elettrico altrimenti tutti i pad ritornerebbero alle dimensioni standard e diverse piste sarebbero da risistemare a mano (da cancellare e rifare e/o rinominare le net a cui appartengono, modifica che coinvolgerebbe anche eventuali singoli pad/vias lungo il percorso, ricordo che lo sbroglio è stato manuale per cui niente autoroute per sistemare).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 13, 2017, 11:12 pm
Più che della penna sarebbe stata interessante la foto del pcb :)

È arrivato in poco tempo, quindi immagino DHL.
Dogana?
Spese spedizione?

Si si in effetti dovevo farvele vedere subito.... Ecco le foto! mi sembrano fatte bene... sia le foto che le board :D

In effetti non ho avuto nessun problema con la dogana anche se 20 dollarini con DHL non sono pochissimi. Inoltre l'ordine minimo è di 5 board.... quindi lo scherzo mi è costato in tot. 60. posso comunque costruire 10 orologi ora :).

Alla fine ci hanno impiegato un paio di settimane se consideri che, da quello che ho capito, ci sono state in mezzo delle feste cinesi, non male ;).

Invece il mio pcb che hai postato era (come avevo sottolineato) una versione ancora in lavorazione, vedi i due inutili pad la in alto e la mancanza dei piani di massa che collegano i GND. Chiedendo la lista DRC error dovrebbero venire evidenziati diversi collegamenti mancanti.

cosa intendi per piani di massa che colegano i GND?
Pensi anche tu che il PCB fai da te sia un suicidio?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Oct 14, 2017, 08:36 am
L'RTC è già incluso nel progetto... tiene conto anche lui delle date in cui cambia l'ora legale? non credo giusto?
L'accoppiata della libreria RTClib e TimeZone funziona uguale sia se si usa un RTC hardware, sia quello software e NTP. Ciò che cambia è che nel caso dell'uso di NTP fai a meno dell'hardware (pulsanti) e del software per regolare l'ora.
Se vuoi andare a batteria è meglio usare un RTC hardware ma se invece usi un alimentatore perché i consumi sono elevati, l'opzione NTP per me è più comoda. Nulla vieta di usarle entrambe.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Oct 14, 2017, 10:46 am
Quote from: ghezzia
Si si in effetti dovevo farvele vedere subito.... Ecco le foto! mi sembrano fatte bene... sia le foto che le board :D
Prima di saldare controlla con il tester in modo verifica continuità che tutti i punti siano collegati giusti, tutte le masse tra loro, tutti i 5V tra loro, i pin di uscita dell'atmega ai rispettivi ingressi degli shift ecc. Una volta saldato ci sono di mezzo i componenti che alterano le misure e se c'è un errore non si trova più.

Hai fatto qualche serigrafia in rame invece che sul livello serigrafie...

Quote
In effetti non ho avuto nessun problema con la dogana anche se 20 dollarini con DHL non sono pochissimi. Inoltre l'ordine minimo è di 5 board.... quindi lo scherzo mi è costato in tot. 60. posso comunque costruire 10 orologi ora :).
Avevo provato a mettere nel carrello tre progetti, mi veniva fuori più di mezzo chilo di peso e oltre 35$ di spedizione. Due settimane sono (per quel poco che devo fare) accettabili (da quelle zone ho sempre aspettato un mese e mezzo).


Quote
cosa intendi per piani di massa che colegano i GND?
www.youtube.com/watch?v=gnffNQcJezY&feature=youtu.be&t=345 (https://www.youtube.com/watch?v=gnffNQcJezY&feature=youtu.be&t=345)

Quote
Pensi anche tu che il PCB fai da te sia un suicidio?
Ho provato a fare qualche pcb a mano ai tempi della scuola, oltre trent'anni fa, rigorosamente monofaccia e con piste ben più grandi di quelle. Avevo provato anche con la fotoincisione, ma tra sviluppi, acidi, corrosioni imperfette, smaltimenti e spazio portato via ecc ecc ho deciso di lavorare a secco. I fori, fatti con un trapanino a mano simil dremel, erano davvero l'ultimo dei problemi.

(http://stor.altervista.org/p.php?p=v_sopra.jpg)
(http://stor.altervista.org/p.php?p=v_sotto.jpg)
(http://stor.altervista.org/p.php?p=basette2.jpg)

Adesso che abbiamo a disposizione simili possibilità, quello dei PCB a mano lo considererei un capitolo definitivamente chiuso.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 14, 2017, 11:00 am
Dipende ... se hai uno che ti "azzanna" (:P) almeno tre volte al giorno per vedere se gli hai finito la scheda-prototipo , diventa improponibile aspettare tre settimane ... :D

Del resto, se vuoi una certa qualita' e fori metallizzati, invece, non ci si scappa ... o service, o nisba ...

EDIT: a proposito ... dato che ormai l'avevo finita, beccatevi pure questa :P ... in pratica e' la versione "riveduta" del tuo schema, con qualche aggiunta per consentire di usarla anche per altre cose che non siano un'orologio, volendo farsi del male (:D) ... niente di speciale comunque, uscite tutte connesse, componenti SMD (a parte il micro, cosi se si vuole fare i test sull'arduino poi li si sposta sulla scheda ed e' piu comodo), spazio e connettore per l'RTC, seriale portata su un'header, i pulsanti su connettori, un'altro paio di header con cui ho portato fuori anche i rimanenti 9 pin inutilizzati, nel caso si vioessero usare in qualche modo, i due jumper a saldare per modificare le modalita' di pilotaggio degli shift, un bel po di zona di massa per dissipare il calore del regolatore ... stava li a guardarmi triste e depressa, mi sembrava inutile tenerla sul disco senza postarla se dovesse servire a qualcuno ... :D

(https://forum.arduino.cc/index.php?action=dlattach;topic=431577.0;attach=229667)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 15, 2017, 06:31 pm
Prima di saldare controlla con il tester in modo verifica continuità che tutti i punti siano collegati giusti, tutte le masse tra loro, tutti i 5V tra loro, i pin di uscita dell'atmega ai rispettivi ingressi degli shift ecc. Una volta saldato ci sono di mezzo i componenti che alterano le misure e se c'è un errore non si trova più.
in effetti le saldature che avevo iniziato sulla PCB errata erano "figli" di questa mia mancanza :)... Ora ho imparato :D

Adesso che abbiamo a disposizione simili possibilità, quello dei PCB a mano lo considererei un capitolo definitivamente chiuso.
OK OK mi avete convinto ;)

a proposito ... dato che ormai l'avevo finita, beccatevi pure questa :P ... in pratica e' la versione "riveduta" del tuo schema, con qualche aggiunta per consentire di usarla anche per altre cose che non siano un'orologio, volendo farsi del male (:D) ...
Grazie etem! io archivio tutto :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 16, 2017, 12:46 pm
Scusate, ho un quesito operativo "poco elettronico". La board completa come la attacco all'interno del case dell'orologio? Io ho pensato di mettere 4 "gocciolone" di silicone (che se non sbaglio dovrebbe essere isolante) sulle quali ci appoggio la scheda. Avete altri suggerimenti?
Siamo quasi alla fine... poi mi ritroverete con altri fantastici progetti :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 16, 2017, 03:24 pm
Silicone, ok ... ancora meglio, 4 blocchettini di legno o plastica, spessi dai 5 ai 10 mm (dipende dalle viti che usi), con fori per le viti da mettere agli angoli, incollati all'interno del case ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 17, 2017, 11:10 pm
Eurekaaaaaaa!
tutto funziona regolarmente anche con la PCB cinese...
ecco le foto!
mi manca solo di "confezionare" il tutto, nell'arco di qualche giorno lo appendo e farò un riassunto del tutto e chiuderò il tread.... forse :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Oct 18, 2017, 08:25 am
Suggerimento estetico: un foglio traslucido per nascondere i led spenti ma far rimanere ben visibili quelli accesi. Se non è già èrevisto.

Per il resto: COMPLIMENTI!
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 18, 2017, 09:26 am
Suggerimento estetico: un foglio traslucido per nascondere i led spenti ma far rimanere ben visibili quelli accesi. Se non è già èrevisto.

Per il resto: COMPLIMENTI!
Grazie dei complimenti ;)... ma devo dire che senza l'aiuto di tutti voi (Claudio ed Etem in particolare) probabilmente avrei abbandonato il progetto :D.

Detto questo, in relazione al suggerimento estetico ho già un plexiglas opalino da apporvi sopra, sono tuttavia indeciso sulle modalità di applicazione dello stesso.
Sicuramente se potessi usare la colla/silicone/qualcosacheincollaplasticasulegno riuscirei a fare un lavoro esteticamente più bello ma nel caso debba fare della manutenzione alle stripled? Avete suggerimenti in tal senso? si possono bruciare in qualche modo le strip e quindi la mia preoccupazione è lecita?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 18, 2017, 10:06 am
Piu che le colle, ti consiglierei una qualche cornice esterna con i bordi ad angolo che lo tenga in posizione, magari fatta con i profili ad angolo che si trovano in colorificio o al brico ... la colla, sul plexiglass opalino, tende a fare delle macchie poco estetiche in trasparenza ... inoltre se tenuto dalla cornice esterna, sarebbe piu facile smontarlo in caso serva manutenzione ...

Poi, la cornice puo anche essere incollata al legno con del bostik ... magari si incollano tre lati e se ne lascia uno, tipo quello sopra, fissato con delle vitine o roba simile, che rimanendo in  alto dovrebbero restare piu nascoste alla vista, cosi per rimuovere il pannello basta togliere quel lato e farlo scorrere fuori ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Oct 18, 2017, 10:13 am
Alla fine però i due led per i secondi li hai tenuti.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 18, 2017, 12:53 pm
Piu che le colle, ti consiglierei una qualche cornice esterna con i bordi ad angolo che lo tenga in posizione,
Si ci avevo pensato ma non mi convinceva del tutto perchè il plexiglas tende ad imbarcarsi leggermente e quindi verso il centro si staccherebbe dal pannello nel quale sono incastonati i segmenti sfocandoli notevolmente

Alla fine però i due led per i secondi li hai tenuti.
Si si! volevo vederlo finito... :D... rimodulare il case non mi sembrava il caso. Ora vedo il prodotto finito se sono particolarmente fastidiosi, nel caso troverò una soluzione.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 18, 2017, 02:03 pm
... il plexiglas tende ad imbarcarsi leggermente e quindi verso il centro si staccherebbe ...
... e tu infilalo con la parte imbarcata all'interno invece che all'esterno ... :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Oct 18, 2017, 03:09 pm
Magneti al neodimio. Ma si vedono.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 19, 2017, 09:36 am
... e tu infilalo con la parte imbarcata all'interno invece che all'esterno ... :D
Il problema è che se non aderisce su tutta la superficie al compensato che gli sta dietro le cifre vengono sfocate... se lo fisso solo ai lati, indipendentemente dal lato in cui lo inserisco il problema non lo risolvo...

Magneti al neodimio. Ma si vedono.
Anche questa soluzione mi sembra interessante, chiedo solo: come fisso i magneti al prexiglas? perchè nel legno potrei creare un piccolo incavo ed infilarceli (lavorone di precisione ma si può fare), ma il magnete controparte sul plexiglass, ho paura che crei troppo spessore...

Nel frattempo vi posto una foto dell'orologio messo in produzione sul muro.... neanche in stazione centrale ce l'hanno un orologio così :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 19, 2017, 06:08 pm
Attenzione attenzione!!!
arrivano le prime commesse :)... mio padre, mia suocera, mio cugino ecc. ecc.. :P

Avevo un solo quesito tecnico: Se creo i display utilizzando solo 6 o addirittura 3 led delle strip per ogni segmento, non devo cambiare nulla dello sketch giusto? sicuramente anche lo schema elettrico non cambia, tuttavia mi chiedo: visto che utilizzo meno Led devo cambiare qualche componente/tolleranza?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 19, 2017, 06:24 pm
In quei casi no, le strip hanno gia le resistenze di limitazione ogni 3 led, quindi se usi multipli di 3 led per ogni segmento, cambia solo l'assorbimento di corrente della parte a 12V, ma il resto rimane com'e' ...

dovresti cambiare i finali solo se usassi un numero eccessivo di led per ogni segmento, per via dell'assorbimento (ed ovviamente in quel caso pure l'alimentatore) ... ma se li riduci, non cambia nulla ...

Come unico consiglio, se usi meno led, ti direi di fare i "pozzetti" dei segmenti piu profondi, in modo che i led rimanendo piu distanti dal plexiglass si sfumassero di piu ed apparissero i segmenti piu uniformi ... ma e' solo una cosa estetica, non funzionale ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 20, 2017, 10:30 am
In quei casi no, le strip hanno gia le resistenze di limitazione ogni 3 led, quindi se usi multipli di 3 led per ogni segmento, cambia solo l'assorbimento di corrente della parte a 12V, ma il resto rimane com'e' ...

dovresti cambiare i finali solo se usassi un numero eccessivo di led per ogni segmento, per via dell'assorbimento (ed ovviamente in quel caso pure l'alimentatore) ... ma se li riduci, non cambia nulla ...

Come unico consiglio, se usi meno led, ti direi di fare i "pozzetti" dei segmenti piu profondi, in modo che i led rimanendo piu distanti dal plexiglass si sfumassero di piu ed apparissero i segmenti piu uniformi ... ma e' solo una cosa estetica, non funzionale ...
Grazie dei suggerimenti etem.
Nel frattempo sono riuscito ad appiccicare con delle cicche americane (come diceva mio nonno :D ) il plexiglas... nella foto il risultato. A parte che i punti centrali spariscono quasi definitivamente forse non è una soluzione così stupida...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Oct 20, 2017, 11:58 am
A questo punto io darei qualche mano di vernice al legno.

Inoltre mi chiedevo se fosse fattibile l'uso dei Neopixel al posto delle normali strisce led e quindi comandare il tutto con 1 pin. Oppure dividere i Neipixel su più strip, tipo uno strip per cifra, quindi 4 pin.
Si potrebbero fare delle animazioni.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 20, 2017, 02:37 pm
Ti fanno un po di macchie, ma sembra abbastanza buono ... a quel punto, pero' poi diventa permanente, potresti provare con la colla spray, tipo quella che vendono per creare adesivi personalizzati ... mascheri le zone intorno e sopra i led con del nastro da pittori, spruzzi la colla sul legno, togli le mascherature e ci incolli il plexiglass sopra ... ma e' tutto da vedere, non so l'effetto che potrebbe fare ...

Per i led, se li vuoi visibili come il resto, ti tocca usare quelli delle strip ... prova a vedere se con un pezzo da 3 led (anche senza tagliarlo), i due led esterni si affacciano nei fori dei punti ... il terzo restera' dietro al legno, ma te ne importa poco ... o al limite, da un pezzo da tre, uno lo si stacca quel tanto che basta per arrivare all'altro foro e lo si collega con dei fili ... in quel modo, colleghi lo spezzone direttamente, come se fosse un pezzo di strip dei segmenti, e sei a posto ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 20, 2017, 03:37 pm
Per i led, se li vuoi visibili come il resto, ti tocca usare quelli delle strip ... prova a vedere se con un pezzo da 3 led (anche senza tagliarlo), i due led esterni si affacciano nei fori dei punti ... il terzo restera' dietro al legno, ma te ne importa poco ... o al limite, da un pezzo da tre, uno lo si stacca quel tanto che basta per arrivare all'altro foro e lo si collega con dei fili ... in quel modo, colleghi lo spezzone direttamente, come se fosse un pezzo di strip dei segmenti, e sei a posto ...
Questa soluzione mi sembra interessante, stasera vedo se ci sta... ho paura solo che essendo collegati tra loro in parallelo collegando il polo negativo di uno e il +12 dell'altro non lampeggino in contemporanea... o mi sbaglio? forse dico un'eresia :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 20, 2017, 04:12 pm
No, aspetta ... ogni led 5050 contiene 3 chip (come se fossero 3 led separati), sulla strip in genere i tre piedini dell'anodo ed i tre del catodo sono saldati insieme, quindi i 3 chip dentro ogni led sono in parallelo fra loro ... poi i tre led sono collegati in serie, con una resistenza per ogni serie di tre led ... se tagli dove c'e' lo spazio, ci sono gia i due pad da risaldare, se tagli in mezzo, dipende da dove tagli e dal tipo di strip, per vedere se c'e' da collegare insieme le tracce con i fili solo sopra o anche sotto ... ma ricollegandole correttamente, funziona come un qualsiasi altro spezzone da 3 led, direttamente a 12V ...

Riusciresti a fare una foto in dettaglio del nastro della strip fra due dei led (dove non ci sono i pad), magari controluce ed a fuoco ?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 20, 2017, 04:34 pm
Riusciresti a fare una foto in dettaglio del nastro della strip fra due dei led (dove non ci sono i pad), magari controluce ed a fuoco ?
OK dopo la faccio e la posto...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Oct 20, 2017, 09:56 pm
Mi aggiungo ai complimenti.
Anche lo stampatino cinese fa la sua bella figura.
Il cavo di alimentazione lo fisserei per bene (fascette, fermacavi adesivi ecc).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 20, 2017, 10:54 pm
Grazie a te Claudio... come già detto è sopratutto merito vostro se ho portato a termine il progetto ;)
Per rispondere ad etem in effetti per adottare la tua soluzione ho visto che devo mettere 2 serie da tre (tot 6 led). Pensate possa comunque reggere l'alimentatore che ho? Come hai chiesto invio foto di un parziale delle strip
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 21, 2017, 09:20 am
... foto che non c'e' ... ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 21, 2017, 12:21 pm
ops!!! eccola :) :o  :smiley-confuse:
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 21, 2017, 01:56 pm
Cosi non e' che serva a molto, ci sarebbe voluta una lampadina dietro per vedere in trasparenza come erano le piste ;) (comunque ho visto che anch'io sbagliavo a considerarli 5050, sono 2835, ed ogni led ha un solo chip all'interno, anche se molto luminoso, quindi in pratica ogni sezione sono tre led in serie con una resistenza)

In ogni caso, se prendi un pezzo da 3 led e tagli in mezzo ai due led dove non c'e' la resistenza, e poi le tracce tagliate le prolunghi con un paio di pezzi di filo (dopo aver tolto la plastica e grattato via delicatamente la vernice bianca), puoi usarlo per affacciare due dei led nei due fori dei punti, lasciando il terzo dietro il legno ... poi colleghi all'uscita dei punti direttamente, senza altre resistenze, e dovresti avere piu o meno la stessa luminosita' e colore dei segmenti anche sui punti, o al massimo poco meno luminosi, ma comunque sempre piu dei due led che hai adesso ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 22, 2017, 06:49 pm
In ogni caso, se prendi un pezzo da 3 led e tagli in mezzo ai due led dove non c'e' la resistenza, e poi le tracce tagliate le prolunghi con un paio di pezzi di filo (dopo aver tolto la plastica e grattato via delicatamente la vernice bianca), puoi usarlo per affacciare due dei led nei due fori dei punti, lasciando il terzo dietro il legno ... poi colleghi all'uscita dei punti direttamente, senza altre resistenze, e dovresti avere piu o meno la stessa luminosita' e colore dei segmenti anche sui punti, o al massimo poco meno luminosi, ma comunque sempre piu dei due led che hai adesso ...
Questo mi era chiaro, il mio dubbio è legato al fatto che sulla PCB che ho fatto fare ho creato due punti di collegamento coi led in serie fra loro, quando avrò un unico punto di collegamento ai tre led (che poi nascondendone uno diventano 2) come la bypasso la situazione? collego il + al positivo del "terzetto" e salto il collegamento in serie della PCB e rientro col - dove era previsto il - del secondo led?

Spero sia chiaro il mio ragionamento contorto... :).

approfitto anche per chiedere un consiglio su un eventuale upgrade... sapete che non mi accontento facilmente: ho un piccolo pannello solare di una lampada ikea che vorrei sfruttare per alimentare l'orologio. pensate si possa fare? il pannello ha al suo interno delle batterie ricaricabili
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Oct 22, 2017, 06:59 pm
come la bypasso la situazione? collego il + al positivo del "terzetto" e salto il collegamento in serie della PCB e rientro col - dove era previsto il - del secondo led?
Si, va bypassata anche la resistenza sul PCB.

Quote
ho un piccolo pannello solare di una lampada ikea che vorrei sfruttare per alimentare l'orologio. pensate si possa fare?
Risposta breve: NO
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 23, 2017, 10:13 am
Si, va bypassata anche la resistenza sul PCB.
Intendi la resistenza che esce dal PIN 18 del secondo ULN, corretto? allora devo capire come"testare" la cosa senza dissaldare/risaldare...

Risposta breve: NO
Messaggio ricevuto ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 23, 2017, 02:31 pm
Se hai la resistenza gia saldata, la cosa piu semplice e' ponticellarla con un pezzo di filo ... oppure, ancora piu semplice, collegare il - della strip alla piazzuola prima della resistenza ... oppure a quella dell'integrato ... e' indifferente, scegli quella che ti risulta piu semplice, basta che sia prima della resistenza (e si, il + della strip al +12V insieme a quello dei segmenti)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 23, 2017, 10:43 pm
Se hai la resistenza gia saldata, la cosa piu semplice e' ponticellarla con un pezzo di filo ... oppure, ancora piu semplice, collegare il - della strip alla piazzuola prima della resistenza ... oppure a quella dell'integrato ... e' indifferente, scegli quella che ti risulta piu semplice, basta che sia prima della resistenza (e si, il + della strip al +12V insieme a quello dei segmenti)
Ecco fatto !! ;).
ho dovuto metterne sei perché tagliare la serie da 3 in 2 + 1 mi ha creato qualche difficoltà, però fanno la loro porca figura... e tutto sembra reggere.

Col senno di poi staccherei leggermente di più le ore dai minuti per renderli più leggibili però sono comunque molto orgoglioso :D

Grazie ancora, veramente a tutti, del supporto e dell'avermi sopportato ;)

Edit: Mancava la foto ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 24, 2017, 02:33 pm
Bello ... pero' poi vogliamo anche la foto di quello fatto con i neopixel e l'effetto arcobaleno ... :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 25, 2017, 04:12 pm
Bello ... pero' poi vogliamo anche la foto di quello fatto con i neopixel e l'effetto arcobaleno ... :D
per quello aspettiamo ancora un annetto và... :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 25, 2017, 04:39 pm
Be', elettricamente sarebbe molto piu semplice, essendo solo una serie di spezzoni controllati da un singolo pin ... certo, poi a livello di software e' un'altro paio di maniche ... :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 27, 2017, 03:32 pm
Ciao Ragazzi,
ho notato una cosa.... è una piccola cosa che posso anche farmi andare bene.
L'orologio va avanti leggermente. Da quando l'ho aggiustato l'ultima volta ha guadagnato circa 10 secondi.

Secondo voi da cosa è dovuto? l'RTC scadente? oppure c'è un modo via software per regolarlo meglio?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: gpb01 on Oct 27, 2017, 03:40 pm
Secondo voi da cosa è dovuto? l'RTC scadente? oppure c'è un modo via software per regolarlo meglio?
Non ho seguito tutta la discussione ... che RTC usi ?  Ed in quanto tempo ha preso 10 secondi ?

Guglielmo
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 27, 2017, 04:22 pm
Non ho seguito tutta la discussione ... che RTC usi ?  Ed in quanto tempo ha preso 10 secondi ?

Guglielmo
Questo (https://www.amazon.it/gp/product/B00XXEKDSY/ref=oh_aui_detailpage_o05_s00?ie=UTF8&psc=1) l'RTC che ho usato.

10 secondi li ha presi in circa 10 giorni...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: gpb01 on Oct 28, 2017, 02:11 pm
10 secondi in 10 gg, per dei DS3231 sono tantini, ma ... molti possono essere i fattori che danno tale scostamento:

1. temperatura di funzionamento (normale +/- 2ppm)
2. stabilità tensione di alimentazione (normale +/- 1 ppm/V)
3. qualità del chip
4. precisione dello strumento che usi come riferimento

... il punto 4 è quello che mi preoccupa di più ::) ... cosa usi come riferimento ?

Guglielmo
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Oct 28, 2017, 02:46 pm
Nel mio RTC erano da rifare le saldature del portabatteria, e c'era anche da asportare la resistenza di carica (la 201 a fianco del diodo rosso) che con una CR2032 non va bene (se non ricordo male una è già schioppata).

Poi c'è sempre il discorso che il software attuale è stato scritto al volo solo per testare l'hardware, e legge l'RTC diverse centinaia di volte al secondo, invece che so, di ogni 50..100ms. Non ho la minima idea se questa lettura serrata possa in qualche modo dare fastidio all'aggiornamento interno dei contatori, direi di no, ma  chissà.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 28, 2017, 03:55 pm
Direi che non avendo le cifre dei secondi, anche se la lettura la si fa ogni 100ms o anche meno, non dovrebbe creare troppi problemi alla visualizzazione ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 28, 2017, 07:13 pm
4. precisione dello strumento che usi come riferimento

... il punto 4 è quello che mi preoccupa di più ::) ... cosa usi come riferimento ?
sto usando un garmin fenix 3 come riferimento... normalmente è preciso al secondo con tutti gli altri riferimenti. ergo o ho trovato una cinesata più precisa di garmin oppure darei per scontato che è un riferimento corretto :).

Nel mio RTC erano da rifare le saldature del portabatteria, e c'era anche da asportare la resistenza di carica (la 201 a fianco del diodo rosso) che con una CR2032 non va bene (se non ricordo male una è già schioppata).
si si... una è già scoppiata  :smiley-twist:  :smiley-twist:  :smiley-twist: .... ma ho messo un altro RTC (sempre della stessa serie)... mi consigli di asportarla quella resistenza? ne metto un'altra oppure faccio senza?

Direi che non avendo le cifre dei secondi, anche se la lettura la si fa ogni 100ms o anche meno, non dovrebbe creare troppi problemi alla visualizzazione ...
cambiamo lo script? :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Oct 29, 2017, 09:49 am
...
cambiamo lo script? :)
Mah ... non ne sono sicuro, ma dato che a quello script non gli fai fare altre funzioni, mi sa che se ti limiti ad aggiungere un delay(100) come prima istruzione del loop, ottieni piu o meno lo stesso effetto ... :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Claudio_FF on Oct 29, 2017, 10:43 am
Quote from: Etemenanki
dato che a quello script non gli fai fare altre funzioni, mi sa che se ti limiti ad aggiungere un delay(100) come prima istruzione del loop, ottieni piu o meno lo stesso effetto
Diciamo di si, si altera leggermente la risposta del debounce/autorepeat dei pulsanti (ottenuta tramite millis), ma rimane funzionante. E' la modifica più semplice.

Altrimenti si definisce una nuova variabile globale 'tempoReadRTC', e nella funzione loop si modifica la chiamata a 'leggiRTC' subordinandola ad un periodo di 200ms realizzato con millis:
Code: [Select]
if(millis() - tempoReadRTC > 200){ // ogni 200ms
    leggiRTC();                    // lettura ora corrente da RTC
    tempoReadRTC += 200;
}


Per il resto va ricordato che ogni pressione dei pulsanti azzera i secondi dell'RTC, quindi se ci si gioca un po' riportando l'ora come era prima, si perdono ogni volta i secondi trascorsi (questa è una cosa voluta per consentire la regolazione precisa).
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Oct 30, 2017, 05:12 pm
sto usando un garmin fenix 3 come riferimento.
Ma lo tieni all'aperto? Perché se non vede i satelliti potrebbe non mantenere la precisione.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 30, 2017, 05:55 pm
Ma lo tieni all'aperto? Perché se non vede i satelliti potrebbe non mantenere la precisione.
Il fenix 3 è uno smartwatch che ha anche la funzione GPS per tracciare le attività, ma rimane comunque un'orologio....

tra l'altro ieri con l'aggiornamento all'ora solare ho provato a sincronizzarlo nuovamente e mi ha perso 10 secondi in un botto solo ..... MMM :smiley-cry: ora sembra stabilizzato... domani vi dico meglio ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Oct 31, 2017, 08:31 am
Io nei miei esperimenti ho usato un PC che aggiornava frequentemente (non troppo!) l'orario con un server NTP. Lo fa anche lo smartphone ma se tolgo la connessione Internet e il GPS va avanti di parecchio.
Ecco perché suggerivo una versione con ESP8266 e sincronizzazione NTP.
Ma tu come setti l'ora?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 31, 2017, 09:01 am
Ma tu come setti l'ora?
abbiamo inserito due pulsanti (uno per i minuti e uno per l'ora)... perchè?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Oct 31, 2017, 10:00 am
Perché quando regoli l'orologio usando solo le ore e minuti lasci fuori i secondi per cui è normale che non siano sincronizzati al secondo.
Esempio.
Il fenix segna 12:10:50
Tu regoli il nuovo orologio a 12:10 ma i secondi possono essere qualsiasi, ad esempio 30 per cui già in partenza sei indietro di 20 secondi.
In alcuni orologi, quando regoli i minuti e passi ad un'altra regolazione i secondi si azzerano per cui se tu regoli al cambio del minuto sei sincronizzato meglio.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Oct 31, 2017, 10:10 am
In alcuni orologi, quando regoli i minuti e passi ad un'altra regolazione i secondi si azzerano per cui se tu regoli al cambio del minuto sei sincronizzato meglio.
Si ma infatti lo sketch di Claudio_F prevede che quando si pigia il pulsante dei minuti vengano azzerati anche i secondi. Ovviamente io il pulsante lo schiaccio esattamente al cambio del minuto sul mio orologio...
E' come se ci sia stato uno sbalzo legato ad un "movimento" strano dell'hardware.
Ora sono fuori, stasera faccio una verifica ulteriore e poi vi dico ;)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 02, 2017, 12:22 pm
Probabilmente avevo sbagliato qualcosa nell'ultima sincronizzazione... sta di fatto che ora i 10 secondi di ritardo accumulati li sta piano piano riguadagnando... ora sono 7 :)
praticamente ha guadagnato 3 secondi in 4gg... ripeto, nulla di che (e per quello che mi riguarda può andare bene così com'è).
Tuttavia siccome dovrei veramente farne altri per alcuni parenti, mi piacerebbe cercare di darglieli il più precisi possibile ;)
.... Magari so cosa regalare a natale :D
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Nov 02, 2017, 03:34 pm
Ecco perché uso l'ESP8622. Si sincronizza lui e pensa anche al cambio dell'ora legale. Tutti i progetti che avevo iniziato con Arduino e RTC li sto convertendo proprio per questo.
Però serve una WiFi.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Nov 02, 2017, 04:49 pm
Ecco perché uso l'ESP8622.
Eventualmente che ESP mi consigli? ho guardato alcune recensioni su amazon ma non mi convincono molto...
come potrei integrarlo a tutto il circuito già fatto senza stravolgerlo ovviamente?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: zoomx on Nov 03, 2017, 09:24 am
Potresti usarlo come uno shield WiFi. Ci dovrebbe essere uno shield che usa un ESP8266. Se invece hai più conoscenze di elettronica prendi il modulino ESP-01, che ormai in Cina è sui 2 euro, e lo colleghi all'Arduino con 2 pin per una seriale software. Questa è forse la soluzione migliore per integrare il WiFi nel tuo progetto esistente. Va alimentato a parte a 3.3V.


L'ESP8266 non ha molti pin in confronto all'Arduino, una decina solamente e ha una sola porta con convertitore A/D, non so alla fine quanti ne usi in questo progetto. Se ci bastano la conversione non è molto difficile, l'ESP8266 usa quasi le stesse istruzioni di Arduino però lavora a livelli 3.3V. I progetti che ho convertito fanno uso dei Neopixel (un anello di 12 led colorati) e di uno schermino OLED. La differenza consiste nell'aggiunta delle poche istruzioni per il collegamento in WiFi e il codice per prendere il tempo dai server NTP. Inoltre ho usato la libreria RTClib di Adafruit che permette di usare le stesse istruzioni base sia che usi un RTC hardware come il DS3231, sia che usi un RTC software.

Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Dec 31, 2017, 07:48 pm
Scusate! :)
intanto buon anno a tutti !!
riprendo ancora questo post prima di chiuderlo definitivamente per chiedere:
se volessi alimentare l'orologio a batterie anzichè con la corrente cosa devo fare?
pensate sia conveniente? intendo: non è che a batterie me ne consuma una serie a notte :).

Auguri ancora a tutti!!
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 01, 2018, 11:44 pm
Altra piccola domanda: se volessi fare in modo che l'orologio alterni anche la data, pensate si possa fare aggiornando solo il software? Oppure dovrei mettere mano anche all'hardware?
Come sapete al'interno c'è un rtc che governa il tutto ma l'impostazione iniziale dell'ora avviene tramite due pulsanti... mi viene il dubbio che ne servano altri per la data :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 03, 2018, 12:15 am
Ancora una.... ;).
se volessi, sulla falsa riga di quanto già fatto finora, creare una radiosveglia artigianale da inserire in un box di un vino pensate sia possibile?
apro un nuovo topic per questa richiesta?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 03, 2018, 09:52 am
Possibile, e' possibile quasi tutto (tranne estirpare i corrotti dai tribunali e da montecitorio, e guarire il cancro con una pastiglia :D) ... ad esempio, uno dei circuiti che avevo postato prevedeva delle uscite extra con cui pilotare buzzer, ricevitore radio, sirena da tornado :D, o quant'altro si volesse ... ci sara' ovviamente da modificare anche lo sketch, oltre che il circuito, per la radiosveglia (se non avevi gia previsto le uscite extra, ma magari si possono saldare dei fili su quello che hai gia fatto e fare un piccolo millefori con il resto ;))
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 03, 2018, 11:10 pm
Prima della radiosveglia (per la quale aprirò un thred apposito) torniamo un attimo alla richiesta precedente relativa all'alimentazione tramite batteria... dite che è fattibile?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 04, 2018, 10:19 am
Se usi un paio di batterie da camion, si :D ... con tutti quei led, fai presto a prosciugare una batteria ;)

Puoi prevedere un "pacco" di batterie, ad esempio una decina di stilo NiMh, da inserire nella struttura come alimentazione di backup per le interruzioni saltuarie di tensione di qualche minuto o masismo decina di minuti, ma quegli oggetti sono tutti pensati per un'alimentazione da rete ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 04, 2018, 10:46 am
Se usi un paio di batterie da camion, si :D ... con tutti quei led, fai presto a prosciugare una batteria ;)
Bene! allora lascio così com'è :). in fondo ho già la batteria tampone dell'rtc che mi fa da backup ;).

Se riesco a scoprire l'ultimo dubbio che ho faccio riassunto e chiudo il thread dopo 14 mesi di duro lavoro :D.

Il dubbio è: se volessi fare in modo che l'orologio alterni anche la data, pensate si possa fare aggiornando solo il software? Oppure dovrei mettere mano anche all'hardware?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 04, 2018, 11:31 am
Si puo fare, ma avendo solo 4 cifre, dovresti fare piu passaggi ... ad esempio, che ogni 30 secondi o roba simile, faccia un ciclo di piu "schermate" da 5 secondi ... tipo ...

ore (30s) -> temperatura (5s) -> giorno : mese (5s, con i punti fissi) -> anno (5s) -> ora (30s) eccetera

I dati li prendi dall'RTC, quindi basta modificare il software in modo che faccia le alternanze ... credo che la cosa piu semplice sia una "macchina a stati temporizzati" ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 05, 2018, 08:52 am
credo che la cosa piu semplice sia una "macchina a stati temporizzati" ...
Macchina a strati temporizzati??? chi la produce la nasa??? :D.
in merito alle 4 cifre mi basterebbe che alternasse (come da te suggerito) le ore alla data (giorno e mese separati dai due punti centrali). alla fine 4 cifre bastano... solo che: come inserisco nello sketch questa funzione? E' possibile dare all'Atmega la data di inizio e poi fa i calcoli tutta da sola? come detto l'impostazione dell'ora in questo momento avviene a mano... anche quando arriverà l'ora legale :)
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 05, 2018, 11:14 am
Non ho ancora guardato il codice (sai che sono un "meccanico", non un programmatore :D) ... gli daro' un'occhiata stasera ... ma cosi ad occhio, direi che il modo piu semplice sia fare delle funzioni che visualizzano le varie cose (esempio, una per l'ora, una per la data, e cosi via), e poi nel loop richiamarle con degli if temporizzati ed una flag ... tipo, molto grossolanamente:

nel setup, fra le altre cose, imposto la flag al valore iniziale 0 ... e la variabile del tempo precedente a millis() ...

se nel loop premo qualche pulsante per impostare data/ora/ecc, metto la flag (ad esempio) al valore 9 ... poi ...

se la flag e' a 0 e non sono ancora trascorsi 30 secondi, chiamo la funzione ore ... quando i 30 secondi sono trascorsi, metto la flag a 1 e resetto la variabile del tempo precedente a millis() ...

se la flag e' ad 1 e non sono ancora trascorsi 5 secondi, chiamo la funzione data, quando i 5 secondi sono trascorsi, metto la flag a 2 e resetto la variabile del tempo precedente a millis() ...

se la flag e' a 2 e non sono ancora trascorsi i 5 secondi, chiamo la funzione temperatura, se i 5 secondi sono trascorsi metto la flag a 0  e resetto la variabile del tempo precedente a millis() ... (solo se si vuole anche la temperatura) ...

se la flag vale 9 (vuol dire che ho premuto qualche pulsante per fare delle variazioni), chiamo la funzione imposta data/ora/ecc ... in questa funzione rimetto la flag a 0 solo quando ho finito e ne esco ...

... e cosi via ... in questo modo hai una struttura relativamente flessibile, dove per fare qualche altra modifica, bastera' aggiungere (o modificare) una o piu funzioni, ed inserire le relative chiamate se le avrai aggiunte, senza stravolgere l'intero sketch ...
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ghezzia on Jan 09, 2018, 10:59 pm
Questo è il codice usato e funzionante:
Code: [Select]


#include <Wire.h>
#define CLOCK_PIN 2
#define LATCH_PIN 3
#define DATA_PIN  4
#define MIN_PULS  5
#define HOUR_PULS 6
//-----------------------------------------------------------------------------
// Variabili di lavoro globali (28 byte)
//-----------------------------------------------------------------------------
typedef struct {
    uint32_t time;
    byte     stat;
} button_t;

button_t minPulsData = {millis(), 0};   // dati pulsante minuti
button_t hourPulsData = {millis(), 0};  // dati pulsante ora
uint32_t tempoPunti = millis();         // tempi di partenza
byte     point = 1;                     // variabile per lampeggio punti
byte     error = false;                 // true se errore lettura RTC
byte     minuti = 0;                    // minuti correnti
byte     ore = 0;                       // ore correnti
byte     tabella[10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66,
                        0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
//-----------------------------------------------------------------------------
// Rileva click su tasti con debounch 60 ms e autorepeat dopo 1 s
//-----------------------------------------------------------------------------
bool click(byte pin, ::button_t* data){
    uint32_t elapsed = millis() - data->time;
    bool press = digitalRead(pin);
    switch (data->stat)
    {
        case 0:                             // attesa pressione
            if (press){                     // se premuto
                data->stat = 1;             // passa ad antirimbalzo
                data->time = millis();
            }
            return false;


        case 1:                             // antirimbalzo pressione
            if (!press){                    // se non premuto
                data->stat = 0;             // ritorna ad attesa
                return false;
            }
            if (elapsed > 60){              // primo click
                data->stat = 2;
                data->time = millis();
                return true;
            }
            return false;


        case 2:                             // attesa inizio autorepeat
            if (!press){                    // se non premuto
                data->stat = 3;
                data->time = millis();
                return false;
            }
            if (elapsed > 1000){            // inizio autorepeat dopo 1 s
                data->stat = 4;
                data->time = millis();
                return true;                // primo autoclick
            }
            return false;


        case 3:                             // antirimbalzo rilascio
            if (press){                     // se premuto
                data->stat = 2;
                data->time = millis();
                return false;
            }
            if (elapsed > 60)               // rilasciato
                data->stat = 0;             // torna ad attesa
            return false;


        case 4:                             // autorepeat
            if (!press){                    // se non premuto
                data->stat = 5;
                data->time = millis();
                return false;
            }
            if (elapsed > 100){             // successivi click ogni 100 ms
                data->time = millis();
                return true;
            }
            return false;


        case 5:                             // antirimbalzo rilascio
            if (press){                     // se premuto
                data->stat = 4;
                data->time = millis();
                return false;
            }
            if (elapsed >= 60)              // rilasciato
                data->stat = 0;             // torna ad attesa
            return false;
    }
}

//-----------------------------------------------------------------------------
byte binBCD(byte n){
    return ((n / 10) << 4) | (n % 10);
}
//-----------------------------------------------------------------------------
void impostaRTC(){
    Wire.beginTransmission(0x68);   // <--- indirizzo RTC su bus i2c
    Wire.write(0);                  // <--- punta al registro 0
    Wire.write(0);                  // <--- azzera secondi RTC
    Wire.write(binBCD(minuti));     // <--- imposta minuti RTC
    Wire.write(binBCD(ore));        // <--- imposta ore RTC
    Wire.endTransmission();
}
//-----------------------------------------------------------------------------
void avanzaOra(){
    ore = (ore + 1) % 24;
}
//-----------------------------------------------------------------------------
void avanzaMinuto(){
    if (++minuti == 60){
        minuti = 0;
        avanzaOra();
    }
}
//-----------------------------------------------------------------------------
void blinkPunti(){
    if (millis() - tempoPunti >= 500){
        tempoPunti += 500;
        point ^= 1;
    }
}
//-----------------------------------------------------------------------------
byte BCDbin(byte n){
    return ((n >> 4) * 10) + (n & 0x0F);
}
//-----------------------------------------------------------------------------
void leggiRTC(){
    Wire.beginTransmission(0x68);   // <--- indirizzo RTC su bus i2c
    Wire.write(1);                  // <--- punta al registro 1
    if (Wire.endTransmission()){    // <--- errore di connessione
        error = true;
        return;
    }
    Wire.requestFrom(0x68, 2);      // <--- due registri da leggere
    if (Wire.available() != 2){
        error = true;               // <--- errore di ricezione
        return;
    }
    minuti = BCDbin(Wire.read());
    ore = BCDbin(Wire.read());
    error = false;
}
//-----------------------------------------------------------------------------
// Scrittura su display con blanking primo zero e lampeggio se errore
//-----------------------------------------------------------------------------
void visualizza(){
    digitalWrite(LATCH_PIN, LOW);
    if (error && !point){
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, 0);
    }else{
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[minuti%10]);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[minuti/10]);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, tabella[ore%10]|point);
        shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, (ore/10) ? tabella[ore/10] : 0);
    }
    digitalWrite(LATCH_PIN, HIGH);
}
//-----------------------------------------------------------------------------
// Impostazione sistema
//-----------------------------------------------------------------------------
void setup(){
    Wire.begin();                   // inizializza bus i2c
    pinMode(MIN_PULS,  INPUT);
    pinMode(HOUR_PULS, INPUT);
    pinMode(LATCH_PIN, OUTPUT);
    pinMode(CLOCK_PIN, OUTPUT);
    pinMode(DATA_PIN,  OUTPUT);
    digitalWrite(CLOCK_PIN, LOW);
    visualizza();                   // prima scrittura su display
}
//-----------------------------------------------------------------------------
// Ciclo principale eseguito circa 800 volte al secondo
//-----------------------------------------------------------------------------
void loop(){
    leggiRTC();                     // lettura ora corrente da RTC
    blinkPunti();                   // lampeggio punti 1 Hz

    if (click(MIN_PULS, &minPulsData)){     // se premuto puls.minuti
        avanzaMinuto();                     // regola minuti
        impostaRTC();
    }

    if (click(HOUR_PULS, &hourPulsData)){   // se premuto puls.ore
        avanzaOra();                        // regola ora
        impostaRTC();
    }

    visualizza();                   // aggiorna display
}

dove e come posso inserire i tuoi suggerimenti?
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: ricki158 on Jan 10, 2018, 11:48 pm
Intanto devi fare in modo che la funzione visualizza() sia indipendente dalle variabili minuti e ore. Cioè quando tu chiami la funzione visualizza è per mettere 4 cifre su un display, non per mettere minuti e ore. In questo modo generalizzi la funzione. In questo modo puoi fare in modo di chiamare sempre la stessa funzione ma che ha come argomenti le variabili che ti interessa "stampare" sul display.
Title: Re: Costruzione Orologio a led da parete - guida per dummies
Post by: Etemenanki on Jan 11, 2018, 10:16 am
Oppure, in alternativa, fare una diversa funzione di visualizzazione per ogni condizione (una che visualizza ore e minuti, una che visualizza la data, eccetera), e poi richiamarle quando servono ... ;)