Costruzione Orologio a led da parete - guida per dummies

Etemenanki:
25Hz e' la frequenza di variazione dei film su pellicola ... non e' che lampeggino molto :wink: (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:

#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;
    } 
}

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

ghezzia:
come riconosco positivo da negativo dei transistor bc337 e bc 327?

Interrogando l'oracolo dei componenti ::slight_smile: 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).

ghezzia:
... 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 ... :stuck_out_tongue: :smiley:

Etemenanki:
Mah, non so se ci riesco prima del mese prossimo, a trovare i 10 minuti necessari ... :stuck_out_tongue: :smiley:

He he he!! grazie :wink:

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?

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

E quindi la risposta alla tua domanda è data dalla risposta alla domanda: "a cosa servono gli ULN2803 in quello schema?"

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

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 ... :wink:

Etemenanki:
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 :smiley:

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.

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 ? ... :wink:

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

zoomx:
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... :smiley:

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

Gli ULN2803 fanno tre cose:

  • Sono in grado di assorbire fino a 500mA di corrente per pilotare i segmenti (le uscite dei 74HC595 erogano o assorbono al massimo 6mA).
  • Invertono il livello logico delle uscite dei 74HC595 per poter accendere con un uno logico dei LED con l'anodo collegato al positivo dell'alimentazione.
  • Reggono LED collegati fino a 50V di alimentazione (le uscite dei 74HC595 reggono fino a un massimo di 5V con 5V di alimentazione)

Quindi li puoi omettere? Certo, se rispetti tutte tre le condizioni:

  • Alle uscite dei 74HC595 non fai assorbire più di 6mA
  • Inverti a software il livello logico in uscita dai 74HC595
  • Alimenti i LED a 5V

ghezzia:
... 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 ...

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

Giusto, ottima soluzione ... cosi alla fine deve solo cambiarne il valore per avere gia tutta la logica diritta o inversa ... +1

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?

Devi cercare "2835 strip red led" da 120 led per metro, che sono quelli ancora facili da trovare: esempio (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 ... o meglio ancora, i 3014 da 1020 led per 5 metri, 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 ...

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

Forse ho trovato queste.
Che ne dite?