Gestione LED RGB

Buonasera a tutt*,
non so se questa è la categoria più adatta per poter scrivere questo topic, eventualmente vi chiedo scusa in anticipo. Per farla breve, sto realizzando un progetto nel quale è fondamentale il controllo di una fila di led RGB per uno spazio complessivo di 18cm di lunghezza. Questi led, inizialmente spenti, si accendono di rosso e uno dopo l'altro, poi cambiano colore (da rosso a blu), e infine si spengono uno alla volta nell'ordine opposto. Questo ciclo si ripete 7 volte e per ciascuna di esse vi è un led bianco differente che si accende. Poiché questo circuito rientra all'interno di una scocca realizzata in stampa 3D, mi servirebbe sapere quale fosse il modo più opportuno per poterli inserire occupando meno spazio possibile. So che esistono delle strisce LED RGB che si possono controllare, oppure si potrebbe pensare di saldarli su basetta mille fori con delle resistenze. Per la striscia RGB di 18cm credo di usare dai 6 ai 9 LED (uno ogni 3 o 2 cm), considerando anche quelli bianchi siamo già intorno ai 13-16. Vorrei anche sapere come poterli controllare con meno pin possibili dato che uso un Arduino UNO di cui molti pin sono già utilizzati per altre funzioni.
In allegato metto anche delle immagini del prodotto per farvi un'idea e comprendere il più facilmente possibile.


Cerca apa102.
2 pin, una libreria e passa la paura.

@ferrik : evita di usare immagini .png ... io che uso il tema "dark" del forum NON riesco a vedele e, come me, gli altri utenti che usano temi scuri e ... ovviamnete se non vedono, NON aiutano.

In generale, convertite sempre i i .png in .jpg :slight_smile:

Grazie,

Guglielmo

Allora, sto vedendo i primi risultati su internet e non mi sembra affatto male. L'unica pecca è che queste strisce hanno led troppo distanti l'uno con l'altro.

Hai ragione, grazie per avermi fatto notare questo problema, ho appena aggiornato le immagini :slight_smile:

... le strisce di APAA102 le trovi con varie densità (no. di LED per metro); il vedo difetto è che costano il doppio delle strisce di NeoPixel (WS2812), ma sono estrameamente più veloci e semplici da gestire.

Occhio che, alcuni venditori cinesi, ti rifilano strisce più economiche "compatibili" APA102, ma basate su SK6812 o SK9822 ... entrambi più piccoli, meno luminosi e anche con alcune piccole differenze tecniche ... NON te le consiglio.

Guglielmo

... una libreria? :open_mouth: Per gestire gli APA102? :open_mouth: ... ma dai ... manco fossero complessi da gestire come i WS2812B :grin:

Un pin dati, un pin clock ... lo fai in bit-banging con poche righe o, se vuoi veramente andare veloce (ricordiamo che gli APA102, al contrario dei WS2812 che lavorano a centiania di KHz, lavorano con clock che possono arrivare a svariati MHz), bus SPI. :wink:

Guglielmo

Grazie siete stati molto gentili.
Potreste cortesemente linkarmi queste led strip? Su internet trovo tantissimi risultati e faccio confusione nel distinguerle.

Devi cercare Led strip APA102 ... le individui facilmente.

Se sei disposto ad attendere (... tempi della dogana e delle poste Italiane), vai su AliExpress e mettendo "apa102 led strip" ti vengono fuori le varie possibilità (occhio, come ho detto, ai cloni, meno costosi fatti con altri led ed ha quelle fatte con i WS2812B , detti anche NeoPixel, anch'essi largamente usati).

Guglielmo

Ho dato un'occhiata in giro e molti rivenditori vendono queste APA102 Compatible. Su AliExpress i prezzi sono decisamente più convenienti ma non posso aspettare, mi servono il prima possibile. Su Amazon le trovo a prezzi altissimi, sono tutte da 5m ma io userei al max 40cm (20 e 20). Onestamente sarei propenso a comprare le versioni meno costose perché sto realizzando un prototipo di prodotto che dovrà funzionare una sola volta ma devo essere sicuro che sia perfetto per quell'occasione. Altrimenti mi armo di pazienza, prendo una basetta millefori e su questa saldo due file di LED indipendenti (una fila con led Bianchi, un'altra con led RGB).
Se comprassi una sola striscia come potrei controllare due pezzi da 20cm separati? Una dispone di cavi già saldati ma l'altra?

... le strisce possono essere sempre tagliate, ed alcune hanno proprio dei segni dove tagliare a pezzi più piccoli. Chiaramente poi dovrai saldarci tu i pezzi di filo che ti servono per collegarle (attento solo, se tagli a pezzi, a non invertire poi il lato in cui i dati entrano con quello da cui i dati escono).

Qui si vedono bene le linee dove tagliare e la parte di ingresso (I) e quella di uscita (O).

Guglielmo

Buonasera, alla fine ho deciso di comprare le strisce led NeoPixel WS2812B per via dei tempi di consegna, decisamente più brevi e per il costo. Mi sono già documentato su YouTube riguardo il loro utilizzo e mi sembrano molto semplici da gestire. In molti tutorial però consigliano di usare un'alimentazione esterna 5V DC nel caso in cui si gestiscano tanti Led. Vorrei sapere, sempre che possiate aiutarmi, quali alimentatori potrei comprare. Grazie in anticipo.

... in realtà NO, sono parecchio più complesse per cui ... dovrai per forza usare una libreria che te le gestisce (... e sarai limitato dalle tempistiche di detta libreria e di detti LED che sono almeno un fattore 10 più lenti degli APA102).

Comunque, SI, ogni LED, con i tre colori accesi (R, G, B) al massimo livello (255,255,255) ovvero i valori che servono per fare un "bianco" assorbe 20+20+20 = 60mA quindi fai presto il conto del massimo che puoi arrivare ad assorbire in funzione dei LED che accendi e capisci che NON puoi usare i 5V che ti da Arduino (salvo tu non ne debbe accendere veramenre solo qualcuno).

Dovendo accenderne un certo numero dovrai usare un alimentatore esterno a 5V con il GND in comune con l'alimentazione di Arduino in grado di fornire una corrente di almeno il 35% in più del massimo che potrai assorbire, che, come ti ho detto, dipende da quanti LED intendi accendere simultaneamente e di che colore. Io, per non sbagliare, considero sempre il massimo numero di LED accesi al colore bianco, quindi ... 60 mA per singolo LED ... se ne hai, ad esempio 50, calcolerai 50 LED x 60mA = 3A, ti tieni largo e compri un alimentatore da 5V 5A. :grin:

Guglielmo

Si certo, con la libreria FastLED.h dovrei riuscire a gestirli. Inoltre, per come dovrò usarli, non credo che la frequenza di lavoro più bassa sia un problema.

Bene, devo riempire uno spazio di 18cm con una striscia LED che usa il rosso e il blu separatamente. Se scegliessi le strisce con 60 led/m necessiterei di ~ 11 LED.
Quindi il consumo di questi sarebbe di 20mA * 11 = 220 mA
Nel passaggio da R a B e viceversa dovrei attivare i due canali (R e B appunto) contemporaneamente e per un breve lasso di tempo, non credo però che questa condizione possa influire sui consumi.
Devo anche gestire 7 led bianchi, questi si illumineranno singolarmente o al massimo in coppia, quindi stimerei un consumo di 60-120mA totali.
Sommando i due risultati arrivo a 340mA.
Il dispositivo che sto progettando deve essere facilmente trasportabile, di conseguenza preferirei che fosse meno ingombrante possibile. Per questo motivo, ho pensato di usare una batteria da 9V da collegare al mio Arduino UNO cosicché possa avere 900mA sulla 5V.
Cosa ne pensi?

... influisce, influisce, devi calcolare un consumo di 40mA x LED.

40mA x 11 LED = 440mA, sommiamoci i 120mA dei due LED che accendi al bianco, siamo sui 660mA.

DIMENTICA le pilette a 9V ... NON danno sufficente corrente e ti si scaricano in pochissimo tempo (scaricati il datasheet di una batteria a 9V e studiati le caratteristiche) e sul pin 5V della UNO NON puoi prelevare più di 250/350 mA o "cuoci" il regolatore lineare (la corrente che puoi prelevare cala proporzionalmente alla tensione con cui lo alimenti dato che, più alta è e più il regolatore deve dissipare in calore).

Ti serve un'alimentazione a 5V da almeno 1A con cui alimentare sia Arduino dall'ingresso 5V che i LED (direttamente).

Guglielmo

Se hai bisogno di un'alimentazione a batteria a 5V fino a 1A prova uno di questi.

Si ricaricano con un normale caricatore da cellulare e hanno il coperchio asportabile per poter prelevare i 5V direttamente dal cs interno.

Ciao,
P.

Anche se all'aumentare dell'intensità di R diminuisce quella di B? In ogni caso non sarebbe un problema, semplicemente credevo che la somma delle correnti fosse sempre pari a 20mA se R e B li aumentassi e decrementassi dello stesso valore.

Bene, però leggendo questo post mi pare di capire che sulla 5V potrei raggiungere l'1A se alimentassi Arduino con un alimentazione esterna che non sia USB, ma solo con l'UNO non si può, giusto?

Fondamentalmente, per far ciò, mi basta prendere un qualsiasi caricabatterie da 1-2A e 5V da spellare e usare? E come lo alimento Arduino? Collegando il rosso dell'alimentatore a uno dei pin Vin 5V?

Ti ringrazio, potrebbero fare al caso mio :slight_smile:

... SBAGLIATO ... dove lo hai letto?

Arduino UNO ha il suo pin 5V che, se lo alimenti da USB o da VIN ti fornisce i 5V, ma se NON usi quelle possibilità diventa un pin da cui puoi alimentare tu Arduino UNO con 5V.

Per maggiori info c'è sempre QUESTO thread.

Guglielmo

No niente, ho letto e compreso male.
Però dal link che ho mandato leggevo che alimentando Arduino con una fonte esterna e via Jack, questo potesse erogare fino ad 1A sul pin di 5V.

Comunque, se prendessi un caricabatterie per telefoni da 5V 2A e spellassi la guaina esterna, potrei usare i cavi per alimentare Arduino e la striscia led, o necessito di alimentatori appositi? Perché ricercando su Amazon, eBay, ecc. "Alimentatore 5V 2A" trovo principalmente caricatori per telefoni e smartphone. Grazie in anticipo.

Dimenticavo... Possiedo anche un modulo per alimentazione esterna da posizionare su breadboard. Potrei sfruttarlo in qualche modo?

NO, rileggi bene perché NON è esatto. Se alimenti da USB puoi prelevare in tutto (... incluso l'assorbimento di Arduino stesso) circa 500mA; se alimenti con un alimentatore esterno, lui in grado di fornire almeno 1A e almeno 7V, puoi prelevare un qualche cosa che va dai 350mA (se si usano appunto 7V) ai 250 mA (se si usano i 12V). Difatti, la caduta di tensione (la differenza dta quanti V hai sul jack o su Vin e i 5V) moltiplicato l'assorbimento, ti da quanti W deve dissipare in calore il regolatore lineare montato su Arduino, regolatore che NON è dotato di un dissipatore termico.

Allora, il discorso è che a volte i cararica batterie non sono così ben regolati a 5V e ... una tensione sopra i 5.5V brucia la MCU du Arduino.
Insomma, dipende un po' dalla qualità dell'caricatore ... comunque se cerchi, anche su Amazon, alimentatori a 5V 1A ne trovi quanti ne vuoi, oppure, come ti ha detto pigiano, un power bank e ti liberi dal cordone di rete.

Guglielmo