Arduino - RGB LED
In deze tutorial leert u:
- Hoe een RGB LED werkt.
- Hoe u de RGB LED aansluit op Arduino.
- Hoe u Arduino programmeert om de kleur van de RGB LED te regelen.
Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over RGB LED
De RGB LED kan elke kleur uitstralen door de 3 basiskleuren rood, groen en blauw te mengen. Eigenlijk bestaat het uit 3 aparte LEDs (rood, groen en blauw) die samen in één behuizing zijn geplaatst.
Pinout
De RGB LED heeft vier pinnen:
- Common (Kathode-) pin: moet worden aangesloten op GND (0V)
- R (rood): pin wordt gebruikt om rood te regelen
- G (groen): pin wordt gebruikt om groen te regelen
- B (blauw): pin wordt gebruikt om blauw te regelen

Om de RGB LED op de Arduino aan te sluiten, moeten we stroombegrenzende weerstanden gebruiken. Dit kan de bedrading complex maken. Gelukkig kunnen we de RGB LED module gebruiken, die reeds ingebouwde stroombegrenzers heeft.
De RGB LED Module heeft ook vier pinnen:
- Common (Kathode-) pin: moet worden aangesloten op GND (0V)
- R (rood): pin wordt gebruikt om rood te regelen
- G (groen): pin wordt gebruikt om groen te regelen
- B (blauw): pin wordt gebruikt om blauw te regelen

※ Notiz:
De gemeenschappelijke pin kan een kathode of anode zijn, afhankelijk van het type RGB LED. Deze tutorial gebruikt een gemeenschappelijke kathode.
Hoe het werkt
Volgens de natuurkunde bestaat een kleur uit drie kleurwaarden: Rood (R), Groen (G) en Blauw (B). Elke kleurwaarde loopt van 0 tot 255.
De combinatie van drie waarden creëert in totaal 256 x 256 x 256 kleuren.
Als we PWM-signalen (met een duty cycle van 0 tot 255) sturen naar de R, G en B-pinnen, kan de RGB LED elke gewenste kleur weergeven.
De duty cycle van de PWM-signalen naar de R-, G- en B-pinnen komt overeen met de kleurwaarden van respectievelijk Rood (R), Groen (G) en Blauw (B).
Aansluitschema
- Aansluitschema tussen Arduino en RGB LED

This image is created using Fritzing. Click to enlarge image
- Aansluitschema tussen Arduino en RGB LED module

This image is created using Fritzing. Click to enlarge image
Hoe u de RGB LED aanstuurt
Laten we stap voor stap leren hoe u de RGB LED op elke gewenste kleur instelt, bijvoorbeeld #00979D:
- Bepaal welke kleur u wilt weergeven, en zoek de kleurcode. Tips:
- U kunt de kleurcode kiezen met de color picker
- Wilt u een kleur uit een afbeelding gebruiken? Gebruik dan de online tool Colors From Image
- Converteer de kleurcode naar R, G, B waarden met de tool van w3schools. Noteer deze waarden. In dit voorbeeld: R = 0, G = 151, B = 157

- Definieer de Arduino-pinnen die verbonden zijn met de R, G en B pinnen, bijvoorbeeld:
- Stel deze Arduino-pinnen in als output:
- Zorg dat de LED deze kleur uitstraalt (#00979D → R = 0, G = 151, B = 157):
Arduino - Voorbeeldcode voor RGB LED
De onderstaande code verandert de kleur van de LED achtereenvolgens in de volgende kleuren:
- #00C9CC (R = 0, G = 201, B = 204)
- #F7788A (R = 247, G = 120, B = 138)
- #34A853 (R = 52, G = 168, B = 83)
Bij het gebruik van veel kleuren kunnen we de code inkorten door een functie te maken:
Aanvullende kennis
- Voor een RGB LED met een gemeenschappelijke Anode moet u:
- De gemeenschappelijke pin verbinden met 3.3V van de Arduino.
- De R, G en B waarden in de functie analogWrite() aanpassen naar 255 - R, 255 - G en 255 - B, respectievelijk.
- Een reeks RGB LED's die samen zijn aangesloten vormen een RGB LED Strip. LED strips zijn onder te verdelen in aanstuurbare (addressable) LED strips en niet-aanstuurbare LED strips. We gaan tutorials maken voor beide soorten LED strips.
※ Notiz:
Vermijd het gebruik van één enkele weerstand in de gemeenschappelijke pin van een RGB LED in plaats van drie weerstanden per afzonderlijke pin.
Zoals bekend zitten drie LEDs in een RGB verpakking parallel geschakeld. In ideale omstandigheden is het wellicht acceptabel om één weerstand in de gemeenschappelijke pin te gebruiken. In de praktijk echter niet, omdat LEDs in de echte wereld niet allemaal dezelfde eigenschappen hebben. Drie LEDs in één RGB pakket zijn NIET identiek ⇒ weerstanden van de LEDs zijn verschillend ⇒ stroom verdeelt zich ongelijk per LED ⇒ de helderheid is niet gelijk, wat een LED kan beschadigen en vervolgens ook de andere LEDs.