Styra 100-tals LEDs med Arduino?

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Dec 2003

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!

AMD Phenom II X6 1090T @ 4100MHz @ 1.56v
2x 460 GTX @ 940/1100Mhz @ 1.212v

Plexibygge | Hemma hos mig | Flipperspel | Bilstereo

Trädvy Permalänk
Medlem
Plats
Västerås
Registrerad
Feb 2013

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

Speldator: Intel core i5 3570k 4,4GHz@1,272V| Asus P8Z77-I DELUXE | Gigabyte GTX1060 6GB Windforce 2X | Fractal Design Node 304 | Cooler Master Hyper 212 EVO |Crucial MX300 525GB SSD | 2TB Seagate Barracuda 3,5 HDD | Corsair Vengeance LP 16GB (2x8) 1600MHz cl10 | Be Quiet! Straight power 600w 80+ Gold |Windows 8.1| Laptop: Lenovo T420ip + 660Ti eGPU Kringutrustning: Qpad MK-85 Pro MX-Brown | Sennheiser HD598cs | Logitech G900 | ASUS PB278QR | Audio Pro Addon T14

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Dec 2003

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

AMD Phenom II X6 1090T @ 4100MHz @ 1.56v
2x 460 GTX @ 940/1100Mhz @ 1.212v

Plexibygge | Hemma hos mig | Flipperspel | Bilstereo

Trädvy Permalänk
Medlem
Plats
Västerås
Registrerad
Feb 2013

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

Speldator: Intel core i5 3570k 4,4GHz@1,272V| Asus P8Z77-I DELUXE | Gigabyte GTX1060 6GB Windforce 2X | Fractal Design Node 304 | Cooler Master Hyper 212 EVO |Crucial MX300 525GB SSD | 2TB Seagate Barracuda 3,5 HDD | Corsair Vengeance LP 16GB (2x8) 1600MHz cl10 | Be Quiet! Straight power 600w 80+ Gold |Windows 8.1| Laptop: Lenovo T420ip + 660Ti eGPU Kringutrustning: Qpad MK-85 Pro MX-Brown | Sennheiser HD598cs | Logitech G900 | ASUS PB278QR | Audio Pro Addon T14

Trädvy Permalänk
Festpilot, Geeks Gaming
David Kvist
Plats
Göteborg
Registrerad
Jun 2012
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.

Synpunkter på min moderering? Kontakt:
| PM:a mig | Maila mig | PM:a Moderatorerna | Kontaktformuläret |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin
| Geeks Officiella Discord-server |
Forumregler

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Dec 2003
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?

AMD Phenom II X6 1090T @ 4100MHz @ 1.56v
2x 460 GTX @ 940/1100Mhz @ 1.212v

Plexibygge | Hemma hos mig | Flipperspel | Bilstereo

Trädvy Permalänk
Medlem
Registrerad
Jan 2014

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.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Dec 2003

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

AMD Phenom II X6 1090T @ 4100MHz @ 1.56v
2x 460 GTX @ 940/1100Mhz @ 1.212v

Plexibygge | Hemma hos mig | Flipperspel | Bilstereo

Trädvy Permalänk
Medlem
Plats
Lund
Registrerad
Mar 2010
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?

HemmaBio - LG C7 55", nVidia Shield TV 2017, Onkyo TX-NR656, Dynavoice DF-5, Dynavoice DX-5, Dynavoice DC-5
UnRaid 6 Server - Dell T20 /w E3-1225v3, 8GB RAM, 12TB HDD + 120GB SSD
Bärbart Retina Macbook Pro 13" Early 2015 [i5, 128GB], Xiaomi Redmi Note 3 Pro, Teclast x98 3G 64GB

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Dec 2003
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å?

AMD Phenom II X6 1090T @ 4100MHz @ 1.56v
2x 460 GTX @ 940/1100Mhz @ 1.212v

Plexibygge | Hemma hos mig | Flipperspel | Bilstereo

Trädvy Permalänk
Medlem
Plats
Lund
Registrerad
Mar 2010
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.

HemmaBio - LG C7 55", nVidia Shield TV 2017, Onkyo TX-NR656, Dynavoice DF-5, Dynavoice DX-5, Dynavoice DC-5
UnRaid 6 Server - Dell T20 /w E3-1225v3, 8GB RAM, 12TB HDD + 120GB SSD
Bärbart Retina Macbook Pro 13" Early 2015 [i5, 128GB], Xiaomi Redmi Note 3 Pro, Teclast x98 3G 64GB

Trädvy Permalänk
Medlem
Plats
Västerås
Registrerad
Mar 2012
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.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Dec 2003

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.

AMD Phenom II X6 1090T @ 4100MHz @ 1.56v
2x 460 GTX @ 940/1100Mhz @ 1.212v

Plexibygge | Hemma hos mig | Flipperspel | Bilstereo

Trädvy Permalänk
Medlem
Registrerad
Jan 2014
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.

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Aug 2009
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.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Dec 2003
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?

AMD Phenom II X6 1090T @ 4100MHz @ 1.56v
2x 460 GTX @ 940/1100Mhz @ 1.212v

Plexibygge | Hemma hos mig | Flipperspel | Bilstereo

Trädvy Permalänk
Medlem
Plats
Västerås
Registrerad
Mar 2012
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)

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Dec 2003
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. "?

AMD Phenom II X6 1090T @ 4100MHz @ 1.56v
2x 460 GTX @ 940/1100Mhz @ 1.212v

Plexibygge | Hemma hos mig | Flipperspel | Bilstereo

Trädvy Permalänk
Medlem
Plats
Västerås
Registrerad
Mar 2012
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

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Dec 2003
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.

AMD Phenom II X6 1090T @ 4100MHz @ 1.56v
2x 460 GTX @ 940/1100Mhz @ 1.212v

Plexibygge | Hemma hos mig | Flipperspel | Bilstereo