NeoPixels
Remsorna baserade på WS2812 / SK6812 och liknande chips, kända av vissa som NeoPixels , är smarta sätt att implementera helt adresserbara 24-bitars färg-lysdioder.
En av de smarta sakerna är att de bara kräver en datakabel, plus kraft och GND, dvs
Pixelinformationen skickas med exakt tidsinställda sekvenser på 24 bitar per pixel. Den första pixeln "avlägsnar" dessa 24 bitar (dvs. 3 x röd / grön / blå) och skickar sedan resten till nästa pixel och så vidare.
Bibliotek
Olika personer har skrivit bibliotek för att göra detta åt dig inklusive:
Power
Var och en pixel drar cirka 60 mA vid maximal ljusstyrka (visar vit) så du måste möjliggöra en kraftig strömförsörjning. Särskilt om du har 5m med 144 pixlar / m så är det 720 pixlar, vilket kräver 43,2 ampere!
Enligt Adafruit:
För att uppskatta behovet av strömförsörjning, multiplicera antalet pixlar med 20, dividera sedan resultatet med 1000 för "tumregel" -strömförsörjningen i Amps.
Även det betyder att du behöver 14,4 ampere för dina 720 pixlar!
Så kom ihåg det när du dimensionerar din strömförsörjning.
Adressmetoder
Adafruit-biblioteket (såvitt jag kan se) håller pixelinformationen i RAM och "dumpar" den sedan till NeoPixels i en operation. Detta låter dig göra snygga saker i minnet och kopiera resultaten till pixlarna. Men det betyder att du behöver tillräckligt med RAM för allt detta. Vid 3 byte per pixel (24 bitar), om du har 720 pixlar, blir det 2160 byte, vilket är mer RAM än de mindre processorerna (som Uno) har.
Större processorer (som Mega ) har mer RAM.
En alternativ metod, som förklaras här, behåller inte data i RAM utan genererar färgerna "procedurellt" direkt. Detta är mycket mindre RAM-intensivt, men kanske mindre flexibelt. På den sidan länkar han till en YouTube-video som visar en ödmjuk Arduino Duemilanove (liknar en Uno) som kör över 1000 pixlar!
Processgenerering kan dock göra mycket, för exempel kan du ställa in hela strängen till en enda färg, ändra det snabbt eller göra en regnbågseffekt genom att öka (säg) det röda värdet för varje på varandra följande pixel. Du kan också göra "chaser" -effekter helt enkelt.
biblioteket jag skrev är också utformat så att du kan använda minimalt RAM. Du kan tänka dig att lägga till i ditt eget lagringsschema, kanske bara lagra en byte per pixel, med mindre bitar per färg (t.ex. 2 bitar vardera för rött, grönt, blått) och det skulle minska RAM-kraven med en tredjedel.
Kabeldragning
Du kan försöka skicka data över 2 meter. Jag varnar dig för att tidpunkten för en nollbit är att den måste gå HÖG och sedan LÅG inom cirka 400 ns, så du har inte råd att låta datasignalen försämras för mycket.
När jag hade en liknande sträng av färgade lysdioder upprättade vid jultid (inte NeoPixels dock) Jag hade en lång ström av 5V strömförsörjning (bara med hjälp av ett par figur-8-ledare) och placerade processorn ganska nära pixlarna. Detta är förmodligen det säkraste sättet att göra det.