Een RGB LED besturen met een Raspberry Pi microcontroller
Wat is een RGB LED eigenlijk?
Een RGB LED is de combinatie van drie LED's met verschillende kleuren in één behuizing. De term RGB verwijst naar de kleuren "rood", "groen" en "blauw". De respectievelijke LED's kunnen worden aangestuurd met pulsbreedtemodulatie (PWM). Dit maakt een veelheid aan kleurencombinaties mogelijk.
Een RGB LED heeft vier pootjes, één voor elke kleur en één gemeenschappelijke voor alle drie de kleuren. Afhankelijk van de uitvoering is de langste van de vier pootjes de gemeenschappelijke anode (+) of kathode (-). De enkele poot naast deze langste poot is de aansluiting voor de rode component. De groene en blauwe componenten worden aangestuurd via de pootjes aan de andere kant.
Welk type RGB LED je hebt, gemeenschappelijke anode of gemeenschappelijke kathode, is aan de buitenkant niet te zien. Gelukkig kan er met vallen en opstaan niets beschadigd raken. De RGB LED licht niet op in de blokkeerrichting. Belangrijk: De drie geïmplementeerde LED's hebben ook serieweerstanden nodig. Als je het academisch wilt doen, kun je verschillende serieweerstanden berekenen uit de respectieve fluxspanningen. Voor de eenvoud kun je ook dezelfde weerstanden tussen 100 en 330 Ω (Ohm) gebruiken.
Versie a: "Gemeenschappelijke kathode" - De langste poot van de LED is "-" en de drie kortere poten worden aangestuurd op de GPIO's met "+" (spanning).
Versie b: "Gemeenschappelijke anode" - De langste poot van de LED is "+" en de drie kortere poten worden aangestuurd met "-" (GND) op de GPIO's.
Door de kleuren te mengen kunnen veel meer kleuren worden gemaakt. Door bijvoorbeeld de kleuren "blauw" en "groen" te mengen ontstaat de kleur "turquoise", rood en groen produceren geel, rood en blauw produceren magenta en alle drie de kleuren in gelijke hoeveelheden produceren wit.
Het schakelschema: RGB LED op de Raspberry Pi
De programmacode: RGB LED op de Raspberry Pi
Voorbeeldprogramma voor een RGB-LED met een gemeenschappelijke kathode:
uit gpiozero importeer RGBLED
van tijd importeer sleep
led = RGBLED(rood=14, groen=15, blauw=18)
duur = 2
# langzaam intensiteit van alle kleuren verhogen (5sec)
voor n in range(100):
led.blauw = n/100
led.rood = n/100
led.groen = n/100
slaap(0.05)
led.kleur =(0, 0, 0) # uit
slaap(duur)
led.rood = 1 # volledig rood
slaap(duur)
led.rood = 0.5 # half rood
slaap(duur)
led.kleur =(1, 1, 0) # geel
slaap(duur)
led.kleur =(0, 1, 0) # volledig groen
slaap(duur)
led.kleur = (0, 1, 1) # cyaan
slaap(duur)
led.color = (0, 0, 1) # volledig blauw
slaap(duur)
led.color = (1, 0, 1) # magenta
slaap(duur)
led.color = (1, 1, 1) # wit
slaap(duur)
led.color = (0, 0, 0) # uit
slaap(duur)
Later zullen we zien hoe we drie potentiometers kunnen gebruiken om de kleurcomponenten in te stellen. Hiervoor hebben we echter een externe analoog-digitaal converter nodig, omdat de Raspberry Pi alleen digitale signalen kent - HIGH of LOW.