pilotare strisce di led

buongiorno a tutti,
sono nuovissimo nel campo e volevo chiedere qualche consiglio su cosa acquistare.
volevo fare 3/4 strisce di led da 25 metri in cui i led siano indirizzabili singolarmente in modo da programmarli come voglio… quello che pensavo di fare è collegare ogni striscia ad un pin diverso di Arduino in modo da usare contemporaneamente tutte e 3/4 le strisce. Essendo ignorantissimo ancora in materia vi chiedo se vi sembra fattibile come cosa e cosa mi conviene comprare per spendere poco e magari fare solo dei test per adesso?
grazie
Riccardo

Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

P.S.: Qui una serie di link utili, NON necessariamente inerenti alla tua domanda:
- serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- pinout delle varie schede by xxxPighi: Pinout
- link generali utili: Link Utili

No, con Arduino non é fattibile causa memoria limitata.
Usamo dei WS2812 che hanno bisogno di 1 Byte per colore e percui 3Byte e consumano 60mA se tutti i tre clori sono accesi0
.
facciamo un calcolo:
calcolo di minima:
3-4 Striscie da 25m in totale da 30 LED al metro sono 750 Punti LED e 2250 Byte di RAM. Arduino UNO ne ha 2048; Un Arduino MEga ne ha 8kByte e con questo funzionerebbe.
Consumo di corrente 45A a 5V (225W)

calcolo media/alta
4 striscie da 25 m ciascuna con 60 LED al metro sono 18000 Byte e 360A. Ci sono anche striscie da 144 LED al m.
Potresti usare un teensy 3.6 o superiore.
Comunque stai riscaldando la stanza con 1,8kW.

Raccontaci meglio cosa vuoi fare e che dimensioni vorresti fare.

Ciao Uwe

ciao, grazie mille della tua risposta, sono un allenatore di nuoto e vorrei usare queste strisce di led per stimolare i ragazzi a seguire un "pallino" che scorre sul fondo della vasca, ho capito tutti i tuoi calcoli, credo che siano molto semplificabili, nel senso che per ogni striscia di led non farei scorrere più di 8 "pallini" quindi in teoria considerando 4 strisce di led attaccate al micro non ci saranno più di 32 led attivi contemporaneamente che scorrono sulle strisce, non so se risolve il problema della memoria, ma credo che il problema dalla Potenza si.
so che esistono già dei sistemi simili in America e forse anche in Italia, ma mi piacerebbe smanettarci su e costruirmeli da solo... anche perchè il mio sogno è poi creare un software quasi completamente automatizzato da cui possa creare allenamenti ciclici in modo da scriverli a computer e farli partire sul micro in modo tale che volendo io possa seguire gli atleti da casa quasi come se io fossi li.
ah dimenticavo ... come numero di led va benissimo 30 al metro... non mi interessa averne di piu, 1 led ogni 3 centimetri va piu che bene
Grazie

Non conosco delle strisce che sono impermeabili fino a 2-3m e non conosco strisce piú lunghe di 5m.

Tutte le striscie che conosco impermeabili sono al massimo per pioggia e non per immersione.

Allora Tu vuoi 4 strisce da 25m da 30 LED al m.
Se vuoi accendere poche LED alla volta Ti serve meno corrente ma comunque Ti serve la memoria.
Memoria necessaria: 4x25x30x3 = 9000Byte.

Ti serve un teensy 3.6 o maggiore.

Ciao Uwe

... senza andare sulle teensy (con ciò che comporta), probabilmente potrebbe usare un Arduino M0 ... 256KB di flash e 32KB di SRAM, inoltre, Adafruit, per il "ARM Cortex-M0+" ha sviluppato una libreria apposita per gestire i NeoPixel in DMA ... QUI tutti i dettagli.

Guglielmo

Non so perché venga menzionata la mancanza di RAM. Il progetto dell'OP coinvolge schemi di punti, non bitmap. L'idea potrebbe essere controllata da un ATTiny85. Un semplice codice può generare dinamicamente i dot pattern necessari senza dover disporre di 24 bit di RAM dedicati a ciascun LED.

>bitbank: magari prima di rispondere sarebbe il caso di leggere ATTENTAMENTE tutto il thread …

… si sta parlando di LED indirizzabili singolamente (tipo WS2812), conosciuti anche sotto il nome di “neoPixel” e … per come funzionano devi tenerti in memoria l’intera configurazione dei vari LED, 3 bytes per LED !

Guglielmo

gpb01:
>bitbank: magari prima di rispondere sarebbe il caso di leggere ATTENTAMENTE tutto il thread ...

... si sta parlando di LED indirizzabili singolamente (tipo WS2812), conosciuti anche sotto il nome di "neoPixel" e ... per come funzionano devi tenerti in memoria l'intera configurazione dei vari LED, 3 bytes per LED !

Guglielmo

Ho scritto il mio post con l'assunto che stiamo parlando di NeoPixel. Funzionano su un semplice bus seriale che sposta e sposta i bit da uno all'altro. L'unica ragione per cui è necessaria la RAM dedicata a ciascun pixel è se si stesse facendo uso di una libreria generica scritta male.

... naturalmente quanto su detto è imposto da come funziona la libreria di gestione di quei LED che, una volta predisposta la configurazione di ogni singola striscia in SRAM (dell'intera striscia), con delle tempistiche piuttosto rigide (tanto che su Arduno la parte di trasmissione è scritta in assembler), trasmette serialmente su un solo pin tutta la configurazione di tutta la striscia.

Ovviamnete, se uno è in grado di riscrivere la libreria per lavorare in altro modo, nello specifico caso, si potrebbe si risparmiare molta memoria dato che normalmnete basterebbe memorizzare solo la posizione di partenza degli otto LED accesi, i loro 8 valori RGB e scriversi una propria libreria che, sempre in assembler, trasmetta prima una sequenza di 0x00 0x00 0x00 per ogni LED spento, poi le 8 triplette RGB e poi ancora la sequenza 0x00 0x00 0x00 per tutti i LED rimanenti.

Dubito però che l'OP sia in grado di farlo ... quindi ... gli serve una scheda con sufficiente SRAM ... ::slight_smile:

Guglielmo

P.S.: ... o può sempre pagare qualcuno che gli scriva la sua libreria dedicata ... ma credo che costerà di più dei 20€ di un Arduno M0 ...

>bitbank: ... mi sembra inoltre (ma potrei sbagliare) di NON trovare nell'apposita sezione, il tuo post di "presentazione", in tal caso ... nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

gpb01:
>bitbank: ... mi sembra inoltre (ma potrei sbagliare) di NON trovare nell'apposita sezione, il tuo post di "presentazione", in tal caso ... nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

Grazie Guglielmo,
Ho fatto qui: http://forum.arduino.cc/index.php?topic=113640.msg3636245#msg3636245

bitbank:
Grazie Guglielmo,
Ho fatto qui: http://forum.arduino.cc/index.php?topic=113640.msg3636245#msg3636245

Grazie a te ... visto :wink:

Guglielmo

grazie a tutti! di assembler so ben poco (= sicuramente non so scrivere una libreria, posso provare ad informarmi.
credo che mi comprerò un bel'Arduino MO, 1 metro di striscia di led per testare un po' di roba e incomincio a smanettarci un po' su!!!
Grazie a tutti per i vostri consigli
Riccardo

bitbank:
Ho scritto il mio post con l'assunto che stiamo parlando di NeoPixel. Funzionano su un semplice bus seriale che sposta e sposta i bit da uno all'altro. L'unica ragione per cui è necessaria la RAM dedicata a ciascun pixel è se si stesse facendo uso di una libreria generica scritta male.

Sei molto presuntuoso. Pensi che gli altri abbiano sbaglaito tutto e non sanno programmare mentre Tu sei il genio assoluto che sa la veritá ? Prendi 5 WS2812 e prova a scrivere un interfacciamento che sposta un punto da un LED al altro senza usare una matrice di valori in RAM. Poi lo fai con 2 punti di differente colore.

Pensi di sapere come funzionano i WS2812 ma Ti stai sbaglaindo. Non sono registri di scorrimento ma il primo prende i primi 24 Bit per pilotare i 3 PWM a 8 bit. Percui non puoi scorrere le informazioni di un LED al altro aggiungendo solo 24 bit sul bus.

Ciao Uwe

mafio48:
grazie a tutti! di assembler so ben poco (= sicuramente non so scrivere una libreria, posso provare ad informarmi.
credo che mi comprerò un bel'Arduino MO, 1 metro di striscia di led per testare un po' di roba e incomincio a smanettarci un po' su!!!
Grazie a tutti per i vostri consigli
Riccardo

Aspetta di comprare qualcosa. Risolvi prima il problema della striscia che deve resistere in immersione prolungata a 2 m di profonditá di acqua.
Come vuoi fissarla in piscina?

Ciao Uwe

uwefed:
Sei molto presuntuoso. Pensi che gli altri abbiano sbaglaito tutto e non sanno programmare mentre Tu sei il genio assoluto che sa la veritá ? Prendi 5 WS2812 e prova a scrivere un interfacciamento che sposta un punto da un LED al altro.

Pensi di sapere come funzionano i WS2812 ma Ti stai sbaglaindo. Non sono registri di scorrimento ma il primo prende i primi 24 Bit per pilotare i 3 PWM a 8 bit. Percui non puoi scorrere le informazioni di un LED al altro aggiungendo solo 24 bit sul bus.

Ciao Uwe

Grazie Uwe,
Ho chiesto 100 NeoPixel (WS2812) da Cina e spero che arrivano nelle prossime due settimane. Vado scoprire come difficile è programare loro. Il mio primo progetto sarà scrivere codice in C per un ATTiny85 (comportare come ha detto su) e posterò subito qui quando riesco.

bitbank:
... Ho chiesto 100 NeoPixel (WS2812) da Cina e spero che arrivano nelle prossime due settimane. Vado scoprire come difficile è programare loro. Il mio primo progetto sarà scrivere codice in C per un ATTiny85 ...

Assolutamente senza voler fare sterili polemiche ti dico ...
... su PIC32MX con SYSCLK a 80MHz e PBCLK a 40Mhz ci sono riuscito a pilotarli scrivendo il 99% in puro 'C', meno l'inserimento di alcuni piccoli ritardi fatti in assembler (le tempistiche richidono segnali nell'ambito di poche centinaia di nsec); su AVR a 8/16 MHz, onestamente, la vedo dura e, attualmente, tutte le librerie per essi, fanno tutto in assembler.

Se comunque riesci a scrivere una libreria generica per AVR a 8/16 MHz che sia stabile, sufficientemente generica e fatta in 'C' ... beh, poi mettila su GitHub che potrebbe avere un discreto succcesso :slight_smile:

Guglielmo

Per quanto riguarda il problema della striscia in acqua, forse (e sottolineo “FORSE”, perche’ e’ tutto da provare, specie come regge nel lungo periodo) ci sono un paio di possibili soluzioni … pero’ tutte richiedono un bel po di lavoro “manuale” anche solo per realizzare dei prototipi, ed e’ lavoro che va fatto a regola d’arte …

Prima soluzione possibile, usando le striscie: si prende un rotolo di termorestringente trasparente ed una strip di quelle con la resina … si prende anche una serie di striscie di alluminio, larghe come la strip e lunghe sui 5 metri, dello spessore di qualche millimetro, 5 sarebbero il massimo in quanto sarebbero resistenti ed il loro peso le terrebbe a fondo senza bisogno di troppi strani accrocchi per il fissaggio (anche se si possono sempre aggiungere pesi in caso di necessita’ … si incollano con cura striscie da 5 metri di led sulle striscie di alluminio (se proprio si vuole esagerare, si incollano due striscie una per lato, ma i costi raddoppiano), si intestano con connettori per led impermeabili, si rivestono con la termorestringente trasparente, si procede al restringimento della guaina (lavoro da effettuare con molta cura, partendo dal centro della striscia e procedendo verso le estremita’, controllando che la termo aderisca bene e non restino zone lente o bolle), ed alla fine si resinano le estremita’ della striscia con epossidica bicomponente per uso nautico o silicone per uso nautico … in questo modo si ottengono barre luminose da 5 metri (non proprio comode, ma sempre meglio di una singola barra da 25 metri :D), che potranno essere posizionate connettendo fra loro i vari connettori, e rimosse in caso di necessita’ (si potrebbe al limite fare anche un’assemblaggio senza connettori, usando un tratto di cavo flessibile fra le striscie, e ripiegando il tutto “a fisarmonica” quando le si ripone, ma potrebbe risultare poi ancora piu scomodo da maneggiare)

Seconda possibilita’, che richiede forse piu lavoro ed attenzione, ma che alla fine lascia una soluzione piu maneggevole … si prendono un po di neopixel SMD, e si fanno realizzare un certo numero di piccoli stampati doppia faccia rettangolari o circolari che portano due neopixel l’uno, fronte e retro (collegati in parallelo in modo che vengano pilotati dallo stesso bit, e’ da controllare in pratica se la cosa funziona, ma a logica dovrebbe), e dei pad per saldare il cavo alle estremita’ (banali da disegnare) … si prendono poi degli spezzoni di cavo o piattina tipo 3x0.5 o simili, ma comunque robusta, tutti di lunghezza identica, diciamo 10cm, e si preparano spellati e stagnati ad entrambe le estremita’ (e qui, se non si trova qualche ditta in grado di fare il lavoro a macchina, saranno bestemmie, perche’ sono taaaaaanti :D) … si saldano gli stampati in catena con gli spezzoni di cavo, e poi si resina ogni stampato con la resina trasparente, o meglio ancora trasparente opalina, che fa da diffusore (anche questo sara’ un lavoro rognoso … come alternativa, si usa la termorestringente trasparente, che e’ leggermente opaca ma va bene, ovviamente ne servira’ un pezzo da 25 metri per ogni “linea” di led, senza interruzioni o fori in mezzo, da far restringere con cura come per l’esempio 1, ed impermeabilizzare alle estremita’ … svantaggio, potrebbe essere necessario appesantire il tutto per farlo rimanere disteso sul fondo (magari con dei piombini fra i led), oppure fissarlo in qualche altro modo … vantaggio, quando lo si deve rimuovere, lo si arrotola(su un supporto abbastanza largo da non rovinare i led, ovviamente, magari un’avvolgitore a manovella per tubi da giardino, dove potrebbero starci tutte le catene), e via, minore ingombro e minore casino nel maneggiarlo (facendo sempre attenzione comunque a non danneggiare la termorestringente, se si usa quel sistema, perche’ ovviamente se si buca, l’acqua entra e puo rovinare i led … se ne possono mettere due strati, ma Murphy e’ sempre in agguato :D)

Ci sarebbe un terzo sistema che mi e’ venuto in mente, ma comporterebbe un’installazione permanente e fissa sul fondo della piscina, ed a parte il caso di una proprieta’ privata, potrebbe non essere attuabile in una struttura pubblica …

Così. A babbo morto, come tempesta di cervelli. La butto lì: tubo per irrigare, trasparente, per definizione è impermeabile. Si infila con santa pazienza e beata vasellina la striscia di led. Poi si salda l'estremità finale, o si mette un portagomma chiuso su un tappo.
, si appesantisce il tutto attaccando a fianco un cavo d'acciaio, tenuto aderente mettendo una fascetta ogni metro o simile.
Si vede che da giovane aiutavo mio zio idraulico?
Quando serve si stende tirando (il cavo d'acciaio, non il tubo di gomma)
naturalmente l'estremità col connettore è bene ammarrata sull'asciutto.
Se vogliamo essere sicuri che non entri acqua teniamo il tubo in leggera pressione con una bomboletta di co2 da carbonatore d'acqua.