REGENBOOGLEDS

Een regenboogled is een led die vele kleuren kan weergeven. Ze worden ook wel RGB leds genoemd. Dat is een betere naam, want de led gebruikt drie kleuren: Rood, Groen en Blauw om een mengkleur te maken. De prijs ligt (ver) onder de euro. Er zijn ook tweekleuren leds. Hiermee kun je een beperkt aantal mengkleuren maken, maar geen wit. Voor enkele euro's kun je strips kopen met regenboogleds daarop, waarvan de kleur en intensiteit per led te regelen zijn. Hiervoor heb je maar één signaaldraad nodig. Dergelijke leds worden vaak neopixels genoemd. Ze zijn ook los of in de vorm van displays, te koop met bijvoorbeeld 8 × 8 leds. Er zijn ook neopixels die er uitzien als gewone RGB-leds. Die kunnen dus ook met één signaaldraad worden bediend. Ze zijn erg duur, maar er is inmiddels een goedkoop alternatief: leds met een ingebouwde processor. Deze kun je doorgaans hetzelfde programmeren als neopixels.

Niet-programmeerbare regenboogleds (2 pootjes)

De regenboogleds met twee pootjes worden hetzelfde aangesloten als iedere andere led. Test ze even door een 3 volt knoopcel tussen de pootjes te houden (de + bij het lange pootje). Als het goed is zie je de kleur veranderen. Er zijn leds met snelle en met langzame verandering. Als je een set met identieke leds hebt gekocht en die gelijktijdig aanzet dan zullen alle leds gedurende een aantal minuten dezelfde kleuren blijven tonen. Als je wilt dat de leds meteen verschillende kleuren geven dan moet je elke led starten na een verschillende wachttijd.

Programmeerbare regenboogleds (4 pootjes) - zonder ingebouwde processor

Er zijn twee soorten van deze regenboogleds: Er is geen verschil in kwaliteit, maar ze moeten wel anders aangesloten en geprogrammeerd worden. Kies bij voorkeur voor de gemeen­schappelijke kathode uitvoering, omdat dan geldt: hoe hoger de spanning hoe meer licht. Bij een gemeen­schappelijk anode is het: hoe minder spanning hoe meer licht, zodat je je makkelijk kunt vergissen. De langste pin is altijd de gemeen­schappelijke, dus anode of kathode. Als je de diode zo neerlegt dat die lange pin op de tweede plaats ligt dan zijn de andere pinnen rood, groen en blauw (bijna altijd in die volgorde). Gebruik een voorschakel­weerstand bij de R, G en B pin. Bij de rode pin heb je een iets grotere weerstand nodig. Als de led niet genoeg licht geeft dan kun je de waarde verlagen.* De pootjes van een RGB led staan meestal dicht bij elkaar. Om ze in een breadboard te gebruiken moet je ze dus buigen.

Testen van een regenboogled

Voor het testen van de led heb je de Arduino niet nodig, maar als je geen geschikte spanningsbron hebt kun je de Arduino gebruiken als spanningsbron van 5 volt.

Programmeerbare regenboogleds (4 pootjes) - met ingebouwde processor

Tien WS2811 leds op 5 volt.
Is in het echt veel mooier!
Tot deze groep horen de dure neopixels, maar recent zijn er zeer goedkope alternatieven op de markt gekomen. Deze leds kun je gewoon op 5 volt aansluiten, maar ze werken ook op 3,3 volt.
Dit zijn de belangrijkste types: WS2811, APA106 en P9823. Ze zijn verkrijgbaar is verschillende groottes. Ik heb verschillende groottes van deze drie types getest. Ze kunnen met dezelfde software-instellingen werken en kunnen dus desgewenst door elkaar gebruikt worden. Probleem is wel dat ze verschillende aansluitingen hebben.
Aansluitingen (met de platte zijkant rechts):
APA106, WS2822 en PL9823: bijna altijd is het linkse pootje data_in, daarna komt VCC, dan GND en het meest rechtse pootje is data_uit.
Helaas doen sommige fabrikanten dit anders, waardoor je in de problemen kunt komen. Ik heb exemplaren met de volgende specificaties: het linkse pootje is data_in, daarna komt GND, dan VCC en het meest rechtse pootje is data_uit.
Data_uit gaat altijd naar data_in van de volgende led.
Ontplofte led
Ik sluit niet uit dat bepaalde fabrikanten de pootjes nog anders aansluiten. Als je twijfelt probeer het dan zo kort mogelijk uit met een weerstand in de VCC leiding. De led kan goed warm worden, en zelfs uit elkaar springen als hij verkeerd is aangesloten.
Deze leds zijn heel erg slim! Je hoeft alleen maar een 24-bits getal (met de 24-bits kleur erin) naar de eerste led te sturen. Zolang je binnen korte tijd meer data stuurt zal de eerste led deze naar de volgende led doorsturen en zo vervolgens. Als je even wacht met data te versturen, dan zal de eerste led aannemen dat de eerstvolgende 24 bits voor hem bedoeld zijn. Je hebt dus maar één pin van je Arduino nodig om alle leds te besturen. Omdat er toch wat haken en ogen zitten aan het versturen van de data en omdat er meerdere uitvoeringen zijn is het verstandig om een bibliotheek te gebruiken. Een goed werkende bibliotheek is de Adafruit_Neopixel.h bibliotheek, die je ook bij neopixel linten kunt gebruiken. Zie verderop hoe je deze bibliotheek makkelijk kunt installeren.
Als twee fabrikanten iets op verschillende manieren kunnen doen dan zullen ze dat niet nalaten, hoe vervelend dat ook is voor de gebruiker. Zo kan de kleurvolgorde RGB of BGR zijn. Soms heeft de led een aparte wit kleur. Als je controle wilt hebben over de kleur dan moet je dit alles weten. Je kunt dan in de Adafruit_Neopixel programma's de juiste volgorde kiezen. Als je het niet weet dan is het meestal GBR, maar probeer het gewoon: de led gaat er niet kapot als je het verkeerd doet, alleen kloppen de kleuren dan niet.
Er zijn andere bibliotheken die je gemakkelijk kunt installeren. Zoek binnen bibliotheekbeheer op Neopixel en je vindt vele bibliotheken. Ik testte onder andere NeoPixelBus van Makuna. Deze lijkt eenvoudiger en werkt ook goed.
Ik testte ook de populaire bibliotheek EasyNeoPixels.h. Deze bibliotheek heeft als voordeel dat je de soort RGB led die je hebt kunt opgeven. Het programma weet dan de kleurvolgorde en dergelijke. Helaas zitten er fouten in de voorbeeldprogramma's, die overigens wel makkelijk te vinden en te repareren zijn.
Mijn conclusie, na uitgebreid testen: als je de leds eenmaal goed hebt aangesloten dan werken ze fantastisch: mooie kleuren en maar één pin van de Arduino nodig.

Tweekleuren leds (3 pootjes)

Links: RG; rechts RB
De meeste tweekleuren leds zijn rood-groen of rood-blauw, maar ook groen-geel bestaat. Het middelste pootje is de gemeenschappelijke anode of kathode. Als u goed kijkt naar de foto hiernaast, dan kunt u aan de batterij zien dat mijn RG leds een gemeenschappelijke anode hebben en de RB leds een gemeenschappelijke anode. Behalve dat er minder kleuren mogelijk zijn werken deze leds hetzelfde als RGB leds.

Strips met regenboogleds

Het voordeel van sommige types ledstrips is dat je ze in stukken kunt knippen, met daarop het door jou gewenst aantal leds. Als het goed is blijft elk deel van de strip gewoon werken, al moet je natuurlijk wel aan elk deel zelf een connector bevestigen. Test de string met de voorbeeldprogramma's bij bibliotheek FastLED.h. Bij deze bibliotheek kun je opgeven welke strip je hebt. Ik testte de WS2812B RGB strip. Dit is een goedkope, uitstekende strip.
Led strip met 60 leds
Klik erop om af te spelen
Voor toepassingen met de Arduino is deze ideaal omdat met één draad alle ledjes individueel aan te sturen zijn. De strips zijn verkrijgbaar in verschillende lengtes en met een verschillend aantal leds per meter. Als eerste ga je natuurlijk de hele strip testen. Daarvoor sluit je de vrouwelijke connector aan op je Arduino (dat is de connector waar een driehoekig soort pijltje vanaf wijst; als je de andere connector aansluit dan werkt het niet; die connector kun je wel gebruiken om meerdere strips aan elkaar te bevestigen. Je hoeft de collector niet te vervangen door een andere, want gewone jumperkabeltjes met vierkante stekkers passen er goed in. Het middelste kabeltje sluit je aan op een digitale pin van je Arduino. De andere twee sluit je aan op VCC en GND van de Arduino. De strip heeft ook nog een losse witte en rode draad. Deze kun je op een extra 5 volt voeding aansluiten, want lange ledstrips kunnen behoorlijk veel stroom trekken. Ik testte een strip van 1 meter met 30 ledjes en een met 60 ledjes (zie video). Met mijn 60 ledjes heeft mijn Arduino Uno geen moeite en hoef ik niet "bij te voeden". Dat betekent dat de ledjes gemiddeld minder dan 20 mA trekken (mijn helderheid staat op 64 dus ongeveer 25% van het maximum; dat is helder genoeg zelfs bij daglicht - zie het filmpje). Ik heb ook nog even de stekkers in elkaar geschoven zodat ik een string kreeg van 2 meter met 90 ledjes. Ook dat liep als een zonnetje. Al met al: fantastische ledstrips, vooral de zwarte 60 leds uitvoering vind ik ook nog erg mooi..
Neopixel voorbeeldprogramma's
Je kunt de ledstrip goed testen met de Adafruit_Neopixel bibliotheek, die je via de bibliotheekbeheer rechtstreeks kunt installeren. Daarna vind je onder het menu → Voorbeelden → Adafruit Neopixel een aantal aantrekkelijke voorbeeld programma's...

*LET OP: het volgende is niet van toepassing voor leds met een ingebouwde processor.
Het is mogelijk om de juiste weerstandswaarde te berekenen als je de eigenschappen van de led kent. Die berekening gaat ervan uit dat de spanning van de Arduino bekend is en dat je maximaal licht wilt hebben. Vooral heldere leds geven echter soms zoveel licht dat je er niet in kunt kijken. Als je bijvoorbeeld een dobbelsteen maakt dan moet je de stroom echt behoorlijk terugbrengen met een weerstand van enkele kΩ. Als je leds kortstondig aan zet dan mogen ze juist veel meer stroom krijgen dan nominaal. Terug