WS2812B IKEA-lamp met Arduino en FastLED

WS2812B IKEA-lamp met Arduino en FastLED

Gepubliceerd op: 03-05-2019 13:12

Hé, jij houdt niet van advertenties maar wél van kwaliteitscontent? Dat mag, maar misschien wil je dan een donatie doen via PayPal of creditcard?

Of doe je aankopen via één van onze winkelpartner-links in de zijbalk.

Sommige IKEA producten vragen er gewoon om, ze willen gehackt worden! Omdat Ikea producten vrijwel altijd bouwpakketten zijn kun je gemakkelijk onderdelen aanpassen of vervangen om zo jouw eigen unieke product te maken, op internet is dit fenomeen beter bekend onder de naam IKEA hack.

Vanaf het moment dat ik de Holmö lamp voor het eerst zag dacht ik meteen aan een coole ledlamp, de papieren diffuser is perfect geschikt voor het gebruik van ledstrip. Nog mooier wordt het natuurlijk wanneer je voor een individueel programmeerbare ledstrip kiest zoals de WS2812b, je kunt dan alle LED’s per stuk aansturen in plaats van de hele strip in één keer zoals bij een gewone analoge led-strip. De mogelijkheden voor kleur en animaties zijn eindeloos!

WS2812B LED strip voor Arduino

Digitale programmeerbare ledstrips voor Arduino zijn er in een aantal varianten zoals de WS2811, WS2812 en WS2812b en WS2813. De Adafruit Neopixel serie van Arduino led-strips en led-ringen is ook gebaseerd op WS2812 LED’s, daardoor kun je de Neopixel library ook met WS2812 strips van andere fabrikanten gebruiken.

Een digitale ledstrip verschilt van een ‘gewone’ analoge ledstrip in de manier van aansturen en ook het voltage. De analoge ledstrips werken vaak op 12 Volt omdat de SMD 5050 leds in groepjes van 3 in serie staan. Daarom kun je de ledstrip vaak per 3 leds inkorten en niet per stuk. De hele 12V ledstrip stuur je aan met een 3 kanaals led controller en de hele strip brand dan in dezelfde kleur.

De digitale WS28 ledstrips werken ook met SMD 5050 RGB leds alleen is er per led (in de led!) een controller opgenomen. Hierdoor kun je via een serieel protocol met de LED’s communiceren en kan elke led dus ook individueel worden bediend. Doordat elke led een eigen chip heeft en niet in serie staat is de voedingsspanning van een digitale strip vaak 5 Volt. Let wel op dat de stroom behoorlijk kan oplopen met veel leds!

FastLED Library

De WS2812 leds zijn erg populair, daardoor is er gelukkig ook veel software voor beschikbaar. Zoals hierboven aangehaald kun je ze vaak met de Neopixel library van Adafruit aansturen. Een (naar mijn mening) mooier alternatief is de Fastled library, deze code werkt niet alleen op de Arduino (Uno/Mega/Nano/etc.) maar ook op bijvoorbeeld de ESP8266 modules zoals de NodeMCU of Wemos D1 Mini, die je weer kunt programmeren met de Arduino ontwikkelomgeving. De Fastled library beschikt daarnaast over heel veel code voorbeelden van diverse animaties waaronder de standaard knipper, fade en looplichten, maar ook geavanceerde animaties zoals vuureffect en random noise.

Het vuur effect van de FastLED library met gebruik van een diffuser

Je kunt de FastLED library eenvoudig downloaden en installeren in de Arduino IDE door naar sketch > include library > manage libraries te gaan en daar te zoeken op fastled, makkelijk kan niet! Vervolgens vind je bij file > examples > fastled de verschillende voorbeeldcodes. In de foto's maak ik gebruik van een Arduino Uno met de FastLED voorbeeldcode DemoReel100, dan komen zo'n beetje alle effecten voorbij.

Ikea Holmö hack

De WS2812 strips zijn natuurlijk fantastisch om mee te spelen, maar naast dat ze echt veel te fel zijn om tegen aan te kijken worden de effecten veel mooier wanneer de leds een beetje diffuus worden gemaakt. Ook met de gehele ledlamp er nog een beetje woonkamerwaardig uitzien, het oog wil ook wat. Daar komt de Holmö lamp met zijn papieren diffuser goed van pas!

Holmö van Ikea is de perfecte lamp voor WS2812b ledstrips aangestuurd door Arduino FastLED

Ik maak gebruik van de lampvoet en de diffuser van de lamp. De tussenliggende buis met fitting en de witte beugel rond de (gloei)lamp gebruik ik niet. Deze vervang ik voor een gewone rechte buis, bijvoorbeeld een 16mm verwarmingsbuis of koperen waterleiding van de juiste lengte. Over de totale lengte plak ik een WS2812b ledstrip van 60 leds per meter, in mijn geval afgeknipt na 45 leds. Op de tegenoverliggende zijde plak ik nog zo’n ledstrip, bij nader inzien had ik nog een derde ledstrip op moeten plakken aangezien de afstraalhoek van de 5050 led’s ongeveer 120 graden is: 3 x 120 = 360 graden, voor een mooie egale verlichting.

Arduino WS2812 Ikea hack

De papieren diffuser zet ik bovenop in de buis vast door er een simpele bout in te laten zakken. Deze zit verder niet vastgeschroefd maar dat geeft niet, het gaat hier tenslotte om een lamp die op een en dezelfde plaats staat.

NodeMCU met FastLED

Omdat de FastLED library ook prima op een ESP8266 draait en ik de lamp graag met m’n telefoon wil bedienen was dit een mooi excuus om eens een NodeMCU te gebruiken. De NodeMCU V3 CH340 is een handig ontwikkelbord waar naast een ESP8266 SoC ook een 5 Volt voeding en CH340 USB-serial converter op zit. Zo kun je direct aan de slag als je een micro-usb-kabel hebt.

De ESP8266 heeft Wifi aan boord en is een stuk krachtiger dan een Arduino. Zo kun je de ESP probleemloos met je Wifi-netwerk laten verbinden en er een webinterface op draaien om de RGB-leds te bedienen. Met behulp van de voorbeeldcodes is me dat al gelukt, nu nog de tijd vinden om er zelf iets moois van te maken.

Tot slot nog even over de voeding: mijn Holmö WS2812 ledlamp wordt gevoed met een instelbare 2250mA adapter. Deze 2,25A is nog niet genoeg om alle 90 led’s op maximale vermogen te laten branden. Ik heb de brightness in FastLED dan ook op 123 (50%) staan dit is meer dan genoeg licht voor mijn toepassing.

Reageer als eerste op dit artikel »

Meer van dit soort artikelen lezen?