
Hoe bouw je een RGB LED strip controller?
Nu LED-strips steeds goedkoper worden en je er eenvoudig aan kunt komen via Chinese websites of samenkoop acties stijgt de populariteit. Maar hoe kun je de RGB LED strip met je Arduino aansturen zonder dat er dingen stuk gaan?
RGB LED-strip
Een standaard RGB-ledstrip bestaat uit een heleboel RGB-LED’s die in groepjes van 3 parallel aangesloten zijn. De groepjes van 3 zijn echter wel in serie geschakeld, wat inhoud dat de benodigde spanning om de strip aan te sturen 9-12 Volt is, in plaats van de 3 tot 4 Volt die voor een enkele LED voldoende is. Als het goed is staat dit ook op je LED-strip.

Stroomverbruik van de LED-strip
Een SMD 5050 LED trekt ongeveer 20 milliAmpère per kleur, dus 60 mA per LED. Op mijn LED-strip zitten 30 LED’s per meter, dus de totale stroom kan oplopen tot wel 1,8 Ampère per meter. Gelukkig branden bijna nooit alle kleuren tegelijk voluit omdat ik met pulsebreedte modulatie de kleuren mix. Toch heb je best een fatsoenlijke voeding nodig om je LED-strip aan de praat te krijgen, ik gebruik zelf een 9 Volt 1 Ampère adapter.
Dit hoge stroomverbruik is ook de reden dat je de LED-strip niet direct aan de PWM-poorten van je Arduino wilt hangen, die kunnen maar zo’n 20 mA verdragen. Met behulp van een paar MOSFET’s is dit probleem snel opgelost. MOSFET’s zijn een soort transistors waarmee je een grote stroom kunt sturen. Omdat de LED-strip met de pluspolen aan elkaar geknoopt zit moeten we de kleuren via hun minpool sturen, daarom gebruiken we N-type MOSFET’s. Ik gebruik hier IRF3205 MOSFET’s, maar in principe kun je iedere FET gebruiken die voldoet aan de eisen wat spanning en stroom betreft.

Schema van de LED controller
Hieronder vind je het aansluitschema, check in de datasheet van jouw FET’s of de pinout klopt! Over het algemeen is pin 1 de gate, pin 2 de drain en pin 3 de source. Vergeet niet om, bij het gebruik van een externe voeding voor je LED-strip, de ground van deze voeding aan de ground van de Arduino te verbinden.

LED-strip programmeren
Als alles aangesloten is kun je de LED-strip aansturen met het analogWrite() commando in de Arduino programmeeromgeving. Met een simpel for-loopje kun je de LED’s bijvoorbeeld laten faden.
for(fadeValue=0; fadeValue<=255; fadeValue++) {
analogWrite(ledPin, fadeValue);
delay(30);
}
Een uitgebreider code-voorbeeld om RGB waardes te faden behandel ik in het artikel over de Arduino wake-up light.
Wil je het nog mooier maken? Ik heb de LED-strip controller aan mijn Arduino home automation system gekoppeld zodat ik de strip vanaf m’n telefoon kan bedienen!
Wil je bij nader inzien liever niet zelf bouwen, koop dan hier kant-en-klare LED-strips met controller.