Go Down

Topic: Progetto Orologio a lettere! Consigli? (Read 4120 times) previous topic - next topic

maubarzi

#15
Jan 12, 2019, 11:17 am Last Edit: Jan 12, 2019, 11:25 am by maubarzi
Ciao, posso unirmi alla festa?
io sono per la soluzione di uwe, cioè la striscia led con controller per pilotare i led singolarmente, così non alimenti nulla da arduino ma controlli solo.

Visto che non accendi mai tutti i LED in contemporanea l' alimentatore e cavi non li devi dimensionare per il valore massimo ( 11 x11 LED *60mA = 7,2A)
Spero ci sia sempre anche una qualche limitazione hardware per evitare di friggere tutto per un errore sul software che in fase di debug può sempre capitare. Se non c'è già sull'alimentatore io la prevederei nel tuo circuito di alimentazione.

Ora un suggerimento estetico che può piacere come no:
Premetto che io sono tendenzialmente tonto per cui il discorso dei due pallini accesi ad indicare due minuti in più rispetto a quelli scritti non mi è risultato particolarmente intuitivo.
Se oltre a questi due pallini ne fai altri 60 tutto attorno al display o su una striscia a parte per evidenziare i secondi, potrebbe saltare più all'occhio che quando si spengono tutti e si accende un pallino in più questo rappresenti i minuti in più.
I pallini dei secondi, cambiando ogni secondo, dovrebbero essere a prova di tonto...

EDIT: i pallini dei secondi non è necessario siano accesi in modo incrementale, può esserne lasciato acceso anche uno solo alla volta, cioè solo quello che indica il numero attuale.
Nessuna buona azione resterà impunita!

Preistoria -> medioevo -> rinascimento -> risorgimento -> rincoglionimento!

Dany9746

Ciao ragazzi! Alla fine credo di aver optato per la scelta di Uwe. Devo solo capire come fare il codice e utilizzare al meglio le librerie che controllano questi led e come implementare il modulo RTC. Se qualcuno ha consigli da darmi a tal proposito sono ben accetti.
Per quanto riguarda la parte elettronica ho deciso di utilizzare gli stessi componenti che ha usato il ragazzo del video su youtube (1 resistenza da 470 ohm, un condensatore da 1000u 10V, un alimentatore da 5V 10 A). Prenderò 300 led (5 metri) di led WS2812b IP30 e cercherò di costruire una matrice 13 x 13 così da metterci anche i pallini per i secondi.

Ora un suggerimento estetico che può piacere come no:
Premetto che io sono tendenzialmente tonto per cui il discorso dei due pallini accesi ad indicare due minuti in più rispetto a quelli scritti non mi è risultato particolarmente intuitivo.
Se oltre a questi due pallini ne fai altri 60 tutto attorno al display o su una striscia a parte per evidenziare i secondi, potrebbe saltare più all'occhio che quando si spengono tutti e si accende un pallino in più questo rappresenti i minuti in più.
I pallini dei secondi, cambiando ogni secondo, dovrebbero essere a prova di tonto...

EDIT: i pallini dei secondi non è necessario siano accesi in modo incrementale, può esserne lasciato acceso anche uno solo alla volta, cioè solo quello che indica il numero attuale.

Sarebbe davvero una bella idea. Ma non saprei proprio come realizzarla dal punto di vista software. Io avevo pensato di memorizzare nella memoria di Arduino le 30 matrici che corrispondono alle 30 parole che combinate mi danno l'orario giusto. Per i secondi come dovrei fare?? Altre 60 matrici?

maubarzi

Sarebbe davvero una bella idea. Ma non saprei proprio come realizzarla dal punto di vista software. Io avevo pensato di memorizzare nella memoria di Arduino le 30 matrici che corrispondono alle 30 parole che combinate mi danno l'orario giusto. Per i secondi come dovrei fare?? Altre 60 matrici?
Per i secondi userai 60 led indirizzabili sequenzialmente, per cui stabilito l'indirizzo del primo led ci sommi i seconti -1 e ottieni l'indirizzo del led corrispondente da leggere o li accendi tutti fino a quello se li vuoi tenere accesi fino al termine del minuto.
Nessuna buona azione resterà impunita!

Preistoria -> medioevo -> rinascimento -> risorgimento -> rincoglionimento!

fabpolli

Se ti riferisce a 300 led WS2812 in strip credo tu stia facendo confusione, non devi vederli come matrice ma come singoli led, ciascuno di essi ha un suo id e in base a quello lo programmi indicando colore e intensità luminosa del led.
Il consiglio è sempre il solito, visto che non hai dimestichezza invece di sparare subito alto e cercare di arrivare da zero all'obiettivo in un solo colpo perdendo un sacco di tempo e creando (forse) codice poco manuntenibile/modificabile con poco sforzo ti consiglio di acquistare solo Arduino (anche una uno o una nano tanto se hai optato per tali led ti basta e ti avanzano i pin) almeno due pulsanti (per rimettere l'orario) e un RTC e prendere dimestichezza con quest. Quando riuscirai a visualizzare correttamete l'ora sul monitor seriale, rimetterla e trasformarla nel formato che serve a te (ovvero stampare sempre su monitor seriale sono le quttro meno un quarto, sono le sei, ecc.) solo quando l'ora cambia (ovvero non una sequela infinita di righe sul monitor seriale) ma una cosa del tipo
Code: [Select]
Sono le quattro meno un quarto (una volta)
Sono le quattro meno cinque (una volta)

Code: [Select]
Sono le sei (una volta)
sei a posto e potari passare a imparare a gestire i led, anche qui magari prima di prenderene mille tutti assieme prendine uno per ciascuna parola che devi illuminare simulando che per ognuna di esse basti un led, impara a gestirli con un programam a se che non necessariamente sia legato all'ora ma che ti permetta di impratichirti con essi (Es. accendo solo il led uno, premo il pulsante accedo il secondo, poi il terzo e così via. Poi fai un altro programma che ad ogni pressione spenga il precedente e accenda il successivo ecc.) quando avrai appreso la logica allora accenderai i singoli led in base all'ora. Ottenuto il funzionamento potrai acquistare tutti gli altri led necessari, ti basterà modificre il programma in modo tale da non accendere un solo led per parola ma i led dal numero 1 al 5 per la prima parola, dal 6 al 11 per la seconda e così via (è un esempio alcune parole avranno più led altre meno).
Ah consiglio spassionato NON usare delay ma inizia subito a pensare il programma con l'uso di millis


Dany9746

#19
Jan 17, 2020, 03:13 pm Last Edit: Jan 17, 2020, 04:08 pm by gpb01
Se ti riferisce a 300 led WS2812 in strip credo tu stia facendo confusione, non devi vederli come matrice ma come singoli led, ciascuno di essi ha un suo id e in base a quello lo programmi indicando colore e intensità luminosa del led ...
Ciao ragazzi, rispolvero questo vecchio post. Anche se è difficile da credere alla fine ho sviluppato quello che sarebbe il programma definito. Ho seguito alla lettera i tuoi consigli e sono arrivato ad avere sul monitor seriale l'ora giusta e quindi adesso è semplice inserire i led da accendere. Ho comprato e assemblato tutto ma purtroppo non sono riuscito ad accendere i led in nessun modo. Naturalmente ho provato con un programma semplice per vedere prima se i led funzionassero ma a quanto pare non riesco proprio ad accenderli.

Per chi legge per la prima volta: Il mio progetto è quello di realizzare un orologio a lettere utilizzando i led WS2812b.
In questo momento sto provando almeno ad accendere un solo led ma sto fallendo miseramente. La connessione è semplice: ho collegato i 5V e il GND ai rispettivi pin dell'arduino e il DIN al pin 6. Con l'arduino connesso al PC ho controllato e c'è tensione sia prima del led che dopo. Sto utilizzando la libreria fastled.h e il programma naturalmente è quello base:

Code: [Select]
/*
Prova funzionamento led
*/

#include <FastLED.h>
#define LED_PIN     6
#define NUM_LEDS    1

CRGB leds[NUM_LEDS];

void setup() {
  FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
}

void loop() {
 leds[0] = CRGB(255, 0, 0);
 FastLED.show();
 delay(500);
 
}



Qualcuno saprebbe dirmi come mai questo led non si accende?

gpb01

>Dany9746: Prima cosa, quando si quota un post, NON è necessario riportarlo (inutilmente) tutto; bastano poche righe per far capire di cosa si parla ed a cosa ci si riferisce, inoltre, se si risponde al post immediatamente precedente, normalmente NON è necessario alcun "quote" dato che è sottinteso. Gli utenti da device "mobile" ringrazieranno per la cortesia ;)


Seconda cosa, il codice NON si racchiude nei tag "quote" ma nei tag "code", quelli che, in fase di edit, ti inserisce il bottone </> ... primo a sinistra.

Grazie,

Guglielmo

P.S.: Ho già corretto io il tuo post qui sopra, tieni presente le cose per il futuro.
Search is Your friend ... or I am Your enemy !

fabpolli

Hai messo la resistena da 470ohm tra il pin di Arduino e il pin IN della strip led? Se non lo hai fatto potresti aver danneggiato il led. Se ne hai un altro spezzone prova a collegare quello con la resistenza e guarda cosa succede.

Federico66


... inoltre, scusa ma non mi è chiaro se hai una striscia di led o un singolo led?


Federico


PS
nella mia piccola esperienza con le strisce led, visto che sei all'inizio, ti dico che io preferisco la libreria Adafruit, IMHO, usano meno risorse.
"La logica vi porterà da A a B. L'immaginazione vi porterà dappertutto." A. Einstein

zoomx

Ci vuole anche il condensatore.
Ti consiglio la guida di Adafruit
https://learn.adafruit.com/adafruit-neopixel-uberguide/the-magic-of-neopixels
Che usa prima la libreria Adafruit e poi la Fastled.

Quando poi ti funziona tutto ti consiglio di passare ad un ESP8266 che si collega al WiFi e regola l'ora da solo.


Federico66

#24
Jan 17, 2020, 04:43 pm Last Edit: Jan 17, 2020, 04:43 pm by Federico66
Quando poi ti funziona tutto ti consiglio di passare ad un ESP8266 che si collega al WiFi e regola l'ora da solo.
Non complicargli la vita da subito ;) :D

Io sto facendo tutto con Nano, RTC e Bluetooth (qui). Ora legale-solare in automatico, eventuali aggiornamenti, via bt.

Federico
"La logica vi porterà da A a B. L'immaginazione vi porterà dappertutto." A. Einstein

docdoc

Orologio a lettere? Perché tutti sti problemi? Da me a Ingegneria era un normale orologio...

(scusate, non ho resistito... ;) ).
Alex "docdoc"
- "Qualsiasi cosa, prima di rompersi, funzionava"

zoomx


Io sto facendo tutto con Nano, RTC e Bluetooth (qui). Ora legale-solare in automatico, eventuali aggiornamenti, via bt.
Io sono particolamente pigro su questo aspetto. Con l'ESP8266 lo accendo e dopo pochi secondi parte con l'ora esatta e, come su un PC, ci pensa lui ad aggiornare l'orario. Con i led indirizzabili basta anche un ESP01 e magari la schedina per gestire questi led.

Dany9746

#27
Jan 17, 2020, 10:01 pm Last Edit: Jan 17, 2020, 10:56 pm by Dany9746
Allora vi spiego meglio la situazione. Io ho già realizzato dal punto di vista hardware tutto il case con i led sopra come da foto. Collegato con la resistenza da 470 ohm dopo il pin e un condensatore 1000 uF 25v. Non ha funzionato nulla ma successivamente mi sono accorto che ho invertito la direzione dei led purtroppo (DIN e DOUT). Allora per il momento volevo provare almeno ad accendere una piccola striscia (4 led) che ho collegato al sistema ma nulla. Ho deciso quindi di scollegare tutto e provare con un singolo led alimentato direttamente dall'arduino. Quest'ultimo l'ho collegato senza resistenza perchè avevo letto che era una buona pratica ma non obbligatoria ma non ha dato segni di vita. Il voltaggio corretto arriva sia prima che dopo il led, come faccio a sapere se l'ho bruciato? é normale che misurando anche tra i 5v e il cavo dati mi dia sempre una tensione di 5V?

EDIT:
Sono riuscito a accendere la prima striscia di led! Ho invertito la direzione del cavo Data e si sono accesi. A quanto pare quel led che mi ha fatto stare una notte sveglio si è bruciato. Vi tengo aggiornati sul proseguimento del progetto!

Arco_500

I led standard funzionano a circa 2v e 10-15mA è normale che alimentati a 5v brucino.
Esistono anche led di potenza che necessitano di una tensione superiore per funzionare.
Ricordo anche che i led vanno alimentati a corrente costante con appositi alimentatori o con la semplice resistenza.

gpb01

#29
Jan 18, 2020, 10:39 am Last Edit: Jan 18, 2020, 10:43 am by gpb01
I led standard funzionano a circa 2v e 10-15mA è normale che alimentati a 5v brucino.
... guarda che sta parlando di LED "intelligenti", tipo i WS2812b (detti anche neopixel) e NON di LED classici ... la limitazione di corrente è gestita dal chip che hanno all'interno.

La resistenza che si mette all'esterno (altamente consigliata, ma non obbligatoria) su detti LED è più che altro per proteggere la logica interna che ... è piuttosto permalosa (specie se arriva segnale prima sul pin DATA che sul pin Vcc).

Guglielmo
Search is Your friend ... or I am Your enemy !

Go Up