Arduino - RGB LED

In deze tutorial leert u:

Hardware Benodigd

1×Arduino Uno R3
1×USB 2.0 kabel type A/B
1×RGB LED
1×(Alternatief) RGB-LED-Module
1×Breadboard (experimenteerprint)
1×Jumperdraden (mannelijk-mannelijk)
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

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
RGB LED Pinout

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
RGB LED Module Pinout

※ 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
Arduino RGB LED wiring diagram

This image is created using Fritzing. Click to enlarge image

  • Aansluitschema tussen Arduino en RGB LED module
Arduino RGB LED module wiring diagram

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:
  • 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
RGB LED color picker
  • Definieer de Arduino-pinnen die verbonden zijn met de R, G en B pinnen, bijvoorbeeld:
const int PIN_RED = 5; const int PIN_GREEN = 6; const int PIN_BLUE = 9;
  • Stel deze Arduino-pinnen in als output:
pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT);
  • Zorg dat de LED deze kleur uitstraalt (#00979D → R = 0, G = 151, B = 157):
analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 151); analogWrite(PIN_BLUE, 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)
/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-rgb-led */ const int PIN_RED = 5; const int PIN_GREEN = 6; const int PIN_BLUE = 9; void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); } void loop() { // kleurcode #00C9CC (R = 0, G = 201, B = 204) analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 201); analogWrite(PIN_BLUE, 204); delay(1000); // kleur 1 seconde tonen // kleurcode #F7788A (R = 247, G = 120, B = 138) analogWrite(PIN_RED, 247); analogWrite(PIN_GREEN, 120); analogWrite(PIN_BLUE, 138); delay(1000); // kleur 1 seconde tonen // kleurcode #34A853 (R = 52, G = 168, B = 83) analogWrite(PIN_RED, 52); analogWrite(PIN_GREEN, 168); analogWrite(PIN_BLUE, 83); delay(1000); // kleur 1 seconde tonen }

Bij het gebruik van veel kleuren kunnen we de code inkorten door een functie te maken:

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-rgb-led */ const int PIN_RED = 5; const int PIN_GREEN = 6; const int PIN_BLUE = 9; void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); } void loop() { // kleurcode #00C9CC (R = 0, G = 201, B = 204) setColor(0, 201, 204); delay(1000); // kleur 1 seconde tonen // kleurcode #F7788A (R = 247, G = 120, B = 138) setColor(247, 120, 138); delay(1000); // kleur 1 seconde tonen // kleurcode #34A853 (R = 52, G = 168, B = 83) setColor(52, 168, 83); delay(1000); // kleur 1 seconde tonen } void setColor(int R, int G, int B) { analogWrite(PIN_RED, R); analogWrite(PIN_GREEN, G); analogWrite(PIN_BLUE, B); }

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.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!