Styra 100-tals LEDs med Arduino?

Permalänk
Medlem

Styra 100-tals LEDs med Arduino?

Hej,

Jag skulle vilja kunna styra 100-tals LEDs med endast en Arduino. Till varje LED finns även en Rotary Encoder. Jag har en prototyp med 1 Arduino, 1 Rotary Encoder och 1 LED som funkar bra men vet inte riktigt hur jag ska skala upp det...

Strömmen får jag ta från något gammalt nätagg tänkte jag.

Men hur ska man koppla ihop det? Jag är ganska så mycket nybörjare men har förstått att man kan använda något som kallas "multiplexing"(?) med en sådan här grej - https://www.sparkfun.com/products/11723

Kan man stacka dem? Hur? Tänker jag ens rätt i att detta är en fungerande lösning? Alla tips är välkomna!

Visa signatur
Permalänk
Medlem

Vill du styra dem alla på en gång eller en för en?
Du kan PWM styra stora grupper med en NPN transistor med emmitern mot jord. Så länge du har en bra NPN transistor som klarar lite mer ström så går det bra

Visa signatur

Speldator: Ryzen 5800x3d | Asus B550m TUF Gaming Wi-Fi | G.Skill TridentZ Neo 2x16GB 3600MHz CL16 (hynix djr) | In Win 301 | Scythe Fuma 2 I Asus RTX 3070 Dual OC | Seasonic GX750 | Lots of unicorn vomit Laptop: Thinkpad E14 G2 4700U Kringutrustning: Cooler master Quickfire TK MX-Brown | Sennheiser HD598cs | Sony WH1000XM3 | Logitech G900 | ASUS PB278QR | Rift CV1 | Audio Pro Addon T14

Permalänk
Medlem

En och en är kravet. Med Rotary Encodern då.

Visa signatur
Permalänk
Medlem

Jag har inte använt sköld mer än till 2 H-bryggor så det kan jag tyvärr inte svara på

Visa signatur

Speldator: Ryzen 5800x3d | Asus B550m TUF Gaming Wi-Fi | G.Skill TridentZ Neo 2x16GB 3600MHz CL16 (hynix djr) | In Win 301 | Scythe Fuma 2 I Asus RTX 3070 Dual OC | Seasonic GX750 | Lots of unicorn vomit Laptop: Thinkpad E14 G2 4700U Kringutrustning: Cooler master Quickfire TK MX-Brown | Sennheiser HD598cs | Sony WH1000XM3 | Logitech G900 | ASUS PB278QR | Rift CV1 | Audio Pro Addon T14

Permalänk
Moderator
Festpilot 2020, Antiallo
Skrivet av anarkizt:

Hej,

Jag skulle vilja kunna styra 100-tals LEDs med endast en Arduino. Till varje LED finns även en Rotary Encoder. Jag har en prototyp med 1 Arduino, 1 Rotary Encoder och 1 LED som funkar bra men vet inte riktigt hur jag ska skala upp det...

Strömmen får jag ta från något gammalt nätagg tänkte jag.

Men hur ska man koppla ihop det? Jag är ganska så mycket nybörjare men har förstått att man kan använda något som kallas "multiplexing"(?) med en sådan här grej - https://www.sparkfun.com/products/11723

Kan man stacka dem? Hur? Tänker jag ens rätt i att detta är en fungerande lösning? Alla tips är välkomna!

Identifiera vad du vill åstadkomma och återkom, att "styra" är en väldigt bred förklaring.

Vill du att de ska vara individuellt styrda? -> Multiplexer behövs eller annan lösning.

Ska alla bara drivas men köras med samma styrka?

Du kommer inte klara av att driva alla LEDs via Arduinon direkt utan behöver bygga en kraft-krets med en transistor. Bör inte behöva vara en för stor grej dock.

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin

Permalänk
Medlem
Skrivet av DavidtheDoom:

Identifiera vad du vill åstadkomma och återkom, att "styra" är en väldigt bred förklaring.

Vill du att de ska vara individuellt styrda? -> Multiplexer behövs eller annan lösning.

Ska alla bara drivas men köras med samma styrka?

Du kommer inte klara av att driva alla LEDs via Arduinon direkt utan behöver bygga en kraft-krets med en transistor. Bör inte behöva vara en för stor grej dock.

Jag hade tänkt driva dem med ett gammalt dator-nätagg till att börja med? Får såklart kolla på om det har tillräcklig ampere men borde funka väl funka?

Ja, de ska vara individuellt styrda. Varje Rotary Encoder styr färgen/styrkan på sin respektive LED. Har redan prototypen klar och vill "bara" skala upp hela lösningen. LEDarna jag använder är digitala förresten (neopixels), det kanske ställer andra krav på multiplex-lösningen?

Visa signatur
Permalänk

Behöver du styra varje enskild LED avseende intensitet, eller bara huruvida den ska vara av eller på?
Det senare fallet löses nog enklast med en bunt seriekopplade shiftregister. Det finns shiftregister som är speciellt anpassade för att driva LEDdar, vilket sparar lite utrymme på kretskortet -- strömbegränsningsmotstånd och transistorer för drivning av LEDdar är inbyggt i kretsen.

Det tidigare fallet kräver en lite fräsigare drivkrets. Jag har aldrig använt någon sådan, så jag kan inte uttala mig om hur smärtsamt det är att få den att göra det du vill.

Edit: Aha, varje LED. Då krävs en lösning med något mer kapabelt än ett vanligt skiftregister.

Permalänk
Medlem

Har beställt ett gäng 74HC595 samt 74HC165 för både input/output. Kommer bli ett satans kopplande men kanske fungerar Har lite att läsa på nu...

Visa signatur
Permalänk
Medlem
Skrivet av anarkizt:

Jag hade tänkt driva dem med ett gammalt dator-nätagg till att börja med? Får såklart kolla på om det har tillräcklig ampere men borde funka väl funka?

Ja, de ska vara individuellt styrda. Varje Rotary Encoder styr färgen/styrkan på sin respektive LED. Har redan prototypen klar och vill "bara" skala upp hela lösningen. LEDarna jag använder är digitala förresten (neopixels), det kanske ställer andra krav på multiplex-lösningen?

Är de digitala så styr du de med data och clock la? Bara att serierkoppla och sen ha rätt kod på arduinon?

Visa signatur

Hemmabio - LG C7 55", nVidia Shield TV 2017, Onkyo TX-NR656, Dynavoice DF-5, Dynavoice DX-5, Dynavoice DC-5
Server - Dell T20 /w E3-1225v3, 1050 TI 4GB, 24GB RAM, 30TB HDD /w parity + 628GB SSD
Bärbart Retina Macbook Pro 13" Early 2015 [i5, 512GB],Sony Xperia 5 II , MediaPad 5 10,8"

Permalänk
Medlem
Skrivet av Sweex:

Är de digitala så styr du de med data och clock la? Bara att serierkoppla och sen ha rätt kod på arduinon?

Hmm, hur menar du nu? Hur skickar jag data till en specifik Neopixel i slingan då?

Visa signatur
Permalänk
Medlem
Skrivet av anarkizt:

Hmm, hur menar du nu? Hur skickar jag data till en specifik Neopixel i slingan då?

Beror på vilket chip det är i den, men har för mig det är WS2812 eller?
Se denna isf: http://www.instructables.com/id/Bitbanging-step-by-step-Ardui...

tänk dig ett första dioden i slingan får nummer 0, andra nummer (0+1) och tredje (0+1)+1. På så sätt kan du få diod n att lysa genom att den vet själv vilken nummer den har beroende på vad dioden innan den hade för nummer.

Visa signatur

Hemmabio - LG C7 55", nVidia Shield TV 2017, Onkyo TX-NR656, Dynavoice DF-5, Dynavoice DX-5, Dynavoice DC-5
Server - Dell T20 /w E3-1225v3, 1050 TI 4GB, 24GB RAM, 30TB HDD /w parity + 628GB SSD
Bärbart Retina Macbook Pro 13" Early 2015 [i5, 512GB],Sony Xperia 5 II , MediaPad 5 10,8"

Permalänk
Medlem
Skrivet av Sweex:

Beror på vilket chip det är i den, men har för mig det är WS2812 eller?
Se denna isf: http://www.instructables.com/id/Bitbanging-step-by-step-Ardui...

tänk dig ett första dioden i slingan får nummer 0, andra nummer (0+1) och tredje (0+1)+1. På så sätt kan du få diod n att lysa genom att den vet själv vilken nummer den har beroende på vad dioden innan den hade för nummer.

Vill också minnas att det är WS2812. Dem seriekopplar du ja, data ut på den tidigare till data in på den senare. De är dock väldigt känsliga för timings..

Encoderna kan du koppla på skiftregister, parallell in, seriell ut. 74165 är bra för detta ändamål.

Permalänk
Medlem

Aha! Så det är det som data out på Neopixeln kan användas till! Undrade över den hehe. Så bitbanging skulle kunna funka för output då kanske. Får läsa på en del om det.

Visa signatur
Permalänk
Skrivet av anarkizt:

LEDarna jag använder är digitala förresten (neopixels)

Oj! Det här hade jag missat! Det blir ju en lite enklare uppgift för arduinon.

Permalänk
Medlem
Skrivet av anarkizt:

Jag hade tänkt driva dem med ett gammalt dator-nätagg till att börja med? Får såklart kolla på om det har tillräcklig ampere men borde funka väl funka?

Även jag är nybörjare och vet inte vad bästa lösningen är. tänkte bara påpeka att även om dator-nätagget har tillträckligt med ampere (vilket det troligen har och blir över) så kan man ändå inte mata all denna ström genom en arduino utan att bränna den. som sagt, är nybörjare själv och har inte direkt läst på om detta. Kan dock vara värt att googla lite så att du inte överbelastar arduinon.

Permalänk
Medlem
Skrivet av Tauc:

Även jag är nybörjare och vet inte vad bästa lösningen är. tänkte bara påpeka att även om dator-nätagget har tillträckligt med ampere (vilket det troligen har och blir över) så kan man ändå inte mata all denna ström genom en arduino utan att bränna den. som sagt, är nybörjare själv och har inte direkt läst på om detta. Kan dock vara värt att googla lite så att du inte överbelastar arduinon.

Har inte tänkt så noga på det här märker jag. Men hade tänkt att bara koppla 5V till LEDarna och inte via Arduinon alls, låta den få sin ström "som vanligt". Men det kanske inte funkar?

Visa signatur
Permalänk
Medlem
Skrivet av Tauc:

Även jag är nybörjare och vet inte vad bästa lösningen är. tänkte bara påpeka att även om dator-nätagget har tillträckligt med ampere (vilket det troligen har och blir över) så kan man ändå inte mata all denna ström genom en arduino utan att bränna den. som sagt, är nybörjare själv och har inte direkt läst på om detta. Kan dock vara värt att googla lite så att du inte överbelastar arduinon.

Skrivet av anarkizt:

Har inte tänkt så noga på det här märker jag. Men hade tänkt att bara koppla 5V till LEDarna och inte via Arduinon alls, låta den få sin ström "som vanligt". Men det kanske inte funkar?

Det är endast kontrollsignal som går från kontrollern till LED'arna. De har egna anslutningar till matning.
Beroende på version så kan du se datablad för LED'en:
WS2812 WS2812B

WS2812B har färre anslutningar, och enbart en matning. Troligtvis är det denna du har. Kontrollera dock hur många anslutningar LED'en har för att verifiera. Absolut maximum på matningsspänning för WS2812B är +3.5~+5.3 V, så det känns rimligt att mata den på 5V som du har väl tillhands på en PSU.

Om du skall ha en lång slinga skulle jag dock rekommendera dig att dra en matningsledning parallellt med din slinga (är det en "tape" eller kort med LED's på?) istället för att bara koppla vidare från terminaler på de förmodade modulerna. Detta då resistansen blir rätt så stor i ledningarna på kort/tape och du troligtvis kommer att se en färg/intensitetsskiftning mellan ändarna på din slinga om det är ett par meter. Koppla in din separata ledning med jämna mellanrum på slingan.
Resistansen i en ledare kan beräknas med formeln ρ*l/a (ρ * längden / arean) där ρ för koppar är 0,0175.

Ytterligare kan du sprida ut avkopplingskondensatorer över slingan för att motverka fluktuationer då strömstyrkan ändras till följd av intensitetsskiftningar. Du kan även mata dina skiftregister härifrån (74165)

Permalänk
Medlem
Skrivet av Mizcak:

Det är endast kontrollsignal som går från kontrollern till LED'arna. De har egna anslutningar till matning.
Beroende på version så kan du se datablad för LED'en:
WS2812 WS2812B

WS2812B har färre anslutningar, och enbart en matning. Troligtvis är det denna du har. Kontrollera dock hur många anslutningar LED'en har för att verifiera. Absolut maximum på matningsspänning för WS2812B är +3.5~+5.3 V, så det känns rimligt att mata den på 5V som du har väl tillhands på en PSU.

Om du skall ha en lång slinga skulle jag dock rekommendera dig att dra en matningsledning parallellt med din slinga (är det en "tape" eller kort med LED's på?) istället för att bara koppla vidare från terminaler på de förmodade modulerna. Detta då resistansen blir rätt så stor i ledningarna på kort/tape och du troligtvis kommer att se en färg/intensitetsskiftning mellan ändarna på din slinga om det är ett par meter. Koppla in din separata ledning med jämna mellanrum på slingan.
Resistansen i en ledare kan beräknas med formeln ρ*l/a (ρ * längden / arean) där ρ för koppar är 0,0175.

Ytterligare kan du sprida ut avkopplingskondensatorer över slingan för att motverka fluktuationer då strömstyrkan ändras till följd av intensitetsskiftningar. Du kan även mata dina skiftregister härifrån (74165)

Vilket kanonsvar! Tack för det Mizcak Blir lite fundersam över vad nu menar med " Kontrollera dock hur många anslutningar LED'en har för att verifiera. "?

Visa signatur
Permalänk
Medlem
Skrivet av anarkizt:

Vilket kanonsvar! Tack för det Mizcak Blir lite fundersam över vad nu menar med " Kontrollera dock hur många anslutningar LED'en har för att verifiera. "?

Har den 6 anslutningar så är det en WS2812, har den 4 anslutningar så är det en WS2812B

Permalänk
Medlem
Skrivet av Mizcak:

Har den 6 anslutningar så är det en WS2812, har den 4 anslutningar så är det en WS2812B
https://cpldcpu.files.wordpress.com/2014/01/ws2812_compared.jpg

Aha, jo det är B-versionen med 4 anslutningar. 5V, Gnd, DI och DO.

Visa signatur