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:
Met een gemeenschappelijke kathode
Met een gemeenschappelijke anode
Er is geen verschil in kwaliteit, maar ze moeten wel anders aangesloten en geprogrammeerd worden. Kies bij voorkeur voor de gemeenschappelijke kathode uitvoering, omdat dan geldt: hoe hoger de spanning hoe meer licht. Bij een gemeenschappelijk anode is het: hoe minder spanning hoe meer licht, zodat je je makkelijk kunt vergissen. De langste pin is altijd de gemeenschappelijke, 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 voorschakelweerstand 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.
Eerste simpele test
Ik garandeer NIET dat dit lukt: verbind alleen de langste pin met de GND van de Arduino als deze is aangesloten op een PC. Neem de led in je hand zodat deze afgesloten is van daglicht. Raak de pinnen blauw of groen aan. Als het goed is zie je al welke kleur het is. Soms lukt het ook rood te zien.
Testen met een 3 volt knoopcel
Op dezelfde manier als hierboven bij de tweekleuren leds kun je testen met een knoopcel (CR2032 bijvoorbeeld). Verbind een kort pootje en het langste pootje met de batterij. Je weet dan meteen of je een gemeenschappelijke kathode of gemeenschappelijke anode hebt. Plus van de knoopcel bij het langste pootjes: gemeenschappelijke anode, anders gemeenschappelijke kathode. Doe dit zo kort mogelijk want rood kan niet lang tegen 3 volt.
Testen van kleurencombinaties
Als je wilt zien welke gemengde kleuren de led kan weergeven dan werkt het het handigst als je per kleur een regelbare weerstand (potentiometer) gebruikt. Bij de gemeenschappelijke kathode sluit je daar GRD op aan en bij de gemeenschappelijk anode VCC (5 volt). De drie overige pinnen komen op de middelste pin van de regelbare weerstand. De weerstanden zijn voor de veiligheid, want als je per ongeluk 5 volt rechtstreeks op een van de kleuren zet heb je een goede kans dat de led dat niet overleeft. Vaak zie je als je rechtstreeks in de led kijkt de drie kleuren naast elkaar. Om de gemengde kleur goed te zien kun je op een wit papiertje schijnen.
Als je de potentiometers (regelbare weerstanden) goed hebt staan dan moet met de klok meedraaien voor meer licht zorgen. Als je een U103 regelbare weerstand hebt dan moet de tekst aan de achterkant zitten en de verticale sleuven aan de voorkant. Als je minder licht krijgt als je met de klok meedraait dan kun je de draden bij de eerste en de derde pin omwisselen. Als je eerst meer licht krijgt en later minder dan heb je een te kleine voorschakelweerstand genomen. De led kan dan op den duur kapot gaan. Meestal probeer ik het door een weerstand van een paar honderd ohm te nemen.
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