Giochi di luce su 256 LED

Aug 14, 2024 Last reply: 1 anno fa 7 Replies

pozz snipped-for-privacy@gmail.com ha scritto:

Potresti usare dei led rgb smart tipo i WS2812

Se usi i WS2812 viene enormemente più semplice! Usando un microcontrollore, devi considerare la RAM necessaria.

--

Da Aliexpress, scrivendo "led matrix", trovi tante matrici con WS2812 a circa 10€.

--

Dopo aver visto la lampada da parete IKEA Obegransad[1], mi è venuta voglia di farne una per passatempo. Si tratta di una matrica di LED



16x16, quindi 256 LED in tutto.

Non ho mai provato a gestire così tanti LED, da dove si comincia? Shift-registers? 32 pin di un micro da multiplexare come 16 righe e 16 colonne? Esistono dei chip?



Tra l'altro, in alcuni giochi di luce, sembra che il controller riesca a generare una diversa luminosità per ogni LED. Forse un PWM che cambia in modo sincrono con l'accensione multiplexata dei vari LED?



Chiaramente non sto parlando dei nuovi moduli LED RGB indirizzabili con un protocollo seriale ad-hoc, anche se oggi sarebbe forse più conveniente e più flessibile seguire proprio questa strada. Magari per il secondo progetto.



[1]
formatting link

Un bel giorno pozz digitò:

La soluzione più economica mi sembra quella di usare uno shift register da

32 bit (16 bit per per le righe e 16 bit per le colonne), oppure due da 16 in cascata. Così ti basterà una CPU con un singolo bus SPI o simile e coprirai tutta la matrice spedendo 16 word da 32 bit ciascuna (512 bit). Questa tecnica ti consente anche di pilotare molto liberamente tutti i LED, ad esempio in modo "interlacciato" (prima le righe dispari e poi quelle pari) per ridurre ulteriormente il flicker.

Diciamo che ti serva pilotare l'intera matrice almeno a 100 Hz per evitare flicker, per cui dovrai spedire 51200 bit al secondo. Se vuoi applicare 10 livelli di luminosità dovrai spedire 512000 bit al secondo (512 kHz). Ovviamente per ridurre ulteriormente il flicker sarebbe meglio aumentare ulteriormente la frequenza, ma mi aspetto che qualunque SR arrivi senza problemi almeno a qualche decina di MHz. Ci sono anche shift register in grado di pilotare direttamente dei LED, ma non ho approfondito più di tanto, l'unica cosa che noto è che reggono correnti piuttosto basse:

formatting link

Il 14/08/2024 09:54, pozz ha scritto:

come ti hanno già suggerito, i led ws2812 sono i meno difficoltosi da gestire, trovi anche libreria per arduino.

esistono anche i soli integrati per gestire i led (puoi usarli per altri tipi di led)

formatting link

si "dovrebbero" gestire allo stesso modo, ma non li ho mai usati.

Il 14/08/2024 09:54, pozz ha scritto:

Grazie a tutti, ma l'unico che ha risposto a tema è stato dalai lamah. Avevo scritto che, per pure scopo educativo e di intrattenimento, avrei voluto pilotare 256 LED *semplici*, non quelli RGB con protocollo seriale (tipo WS2812).

Il 15/08/2024 15:09, dalai lamah ha scritto:

Sì, pensavo in effetti a qualcosa del genere o addirittura ad un MCU con

32 pin disponibili, ma questo vuol dire andare su un taglio tipo TQFP 48 pin.

Interessante questa[1] board per Arduino che, tramite un I2C, mette a disposizione 16 pin addizionali con 15mA di output sink current. Si possono configurare come PWM, quindi riuscirei facilmente a dimmerare i LED. Una di queste board piloterebbe le colonne, mentre 16 pin nativi di un Arduino Nano le righe. Da capire se avrei due pin in più per un I2C sul Nano e quanta corrente possono fornire i pin delle righe (al massimo dovrò mettere un array di transistor).

[1]
formatting link

Ottimo suggerimento a cui non avevo pensato.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required