Arduino UNO R4 - RGB LED

Deze tutorial leert u hoe u Arduino kunt gebruiken om de RGB LED te besturen. In detail zullen we leren:

Arduino UNO R4 RGB LED

Over RGB LED

De RGB LED kan elke kleur creëren door de drie primaire kleuren te mengen: rood, groen en blauw. Het bevat drie afzonderlijke LEDs: één rode, één groene en één blauwe. Alle zijn samen gehuisvest in één unit.

Pinout

Een RGB LED heeft vier pinnen.

  • Sluit de Common (Cathode-) pin aan op GND (0V).
  • De R (red) pin bestuurt de rode kleur.
  • De G (green) pin bestuurt de groene kleur.
  • De B (blue) pin bestuurt de blauwe kleur.
RGB LED Pinout

Om een RGB LED aan te sluiten op een Arduino UNO R4, moeten we weerstanden gebruiken die de stroom beperken, wat de opstelling een beetje gecompliceerd maakt. We kunnen echter de RGB LED module gebruiken die deze weerstanden al ingebouwd heeft.

De RGB LED module heeft ook vier pinnen.

  • Common (Cathode-) pin moet worden aangesloten op GND (0V).
  • R (red) pin bestuurt de rode kleur.
  • G (green) pin bestuurt de groene kleur.
  • B (blue) pin bestuurt de blauwe kleur.
RGB LED Module Pinout

※ Notiz:

Deze tutorial gebruikt een RGB LED met een gemeenschappelijke kathode. Dit betekent dat de gemeenschappelijke pin de kathode is. Verschillende RGB LEDs kunnen de gemeenschappelijke pin als anode hebben.

Hoe het werkt

In de fysica bestaat een kleur uit drie waarden: Rood (R), Groen (G) en Blauw (B). Elke waarde kan van 0 tot 255 zijn.

⇒ Er zijn in totaal 256 x 256 x 256 kleuren gemaakt door het combineren van drie verschillende waarden.

⇒ Als we PWM-signalen (met een duty cycle tussen 0 en 255) naar de R-, G- en B-pinnen sturen, kunnen we de RGB LED elke gewenste kleur laten weergeven. De duty cycle van PWM-signalen naar de R-, G- en B-pinnen komt overeen met de kleurwaarden van Rood (R), Groen (G) en Blauw (B).

Bedradingsschema

  • Bedradingsschema tussen Arduino UNO R4 en een RGB LED.
Arduino UNO R4 RGB LED wiring diagram

This image is created using Fritzing. Click to enlarge image

Gebruik geen enkele weerstand op de gemeenschappelijke pin van een RGB LED. Gebruik in plaats daarvan drie afzonderlijke weerstanden op de andere pinnen zoals in het bovenstaande schema. Verschillende LEDs in het RGB-pakket hebben niet exact dezelfde eigenschappen, wat betekent dat ze de stroom niet gelijkmatig delen. Dit kan ongelijke helderheid veroorzaken en mogelijk de LEDs beschadigen als u een enkele weerstand op de gemeenschappelijke pin gebruikt.

  • Bedradingsschema tussen Arduino UNO R4 en een RGB LED module
Arduino UNO R4 RGB LED module wiring diagram

This image is created using Fritzing. Click to enlarge image

Zie De beste manier om Arduino Uno R4 en andere componenten van stroom te voorzien.

RGB LED Besturen

Laten we stap voor stap leren hoe we de RGB LED naar elke kleur kunnen veranderen, bijvoorbeeld de kleur #00979D.

  • Kies de kleur die u wilt gebruiken en zoek de kleurcode op.
  • Converteer de kleurcode naar RGB-waarden met behulp van deze tool. Onthoud deze waarden: R = 0, G = 151, B = 157.
RGB LED color picker
  • Definieer de Arduino UNO R4 pinnen die verbinding maken met de R-, G- en B-pinnen. Bijvoorbeeld:
#define PIN_RED 9 // Arduino UNO R4 pin connected to the LED's red pin #define PIN_GREEN 6 // Arduino UNO R4 pin connected to the LED's green pin #define PIN_BLUE 3 // Arduino UNO R4 pin connected to the LED's blue pin
  • Configureer deze Arduino UNO R4 pinnen als uitgangen.
pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT);
  • Programmeer Arduino pin om PWM-signaal te genereren om de kleur te tonen (#00979D; R = 0, G = 151, B = 157).
analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 151); analogWrite(PIN_BLUE, 157);

Arduino UNO R4 - RGB LED Voorbeeldcode

De onderstaande code verandert de LED-kleur in deze volgorde:

  • #00C9CC (R = 0, G = 201, B = 204)
  • #F7788A (R = 247, G = 120, B = 138)
  • #34A853 (R = 52, G = 168, B = 83)
/* * Deze Arduino UNO R4 code is ontwikkeld door newbiely.nl * Deze Arduino UNO R4 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-uno-r4/arduino-uno-r4-rgb-led */ #define PIN_RED 9 // Arduino UNO R4 pin connected to the LED's red pin #define PIN_GREEN 6 // Arduino UNO R4 pin connected to the LED's green pin #define PIN_BLUE 3 // Arduino UNO R4 pin connected to the LED's blue pin void setup() { pinMode(PIN_RED, OUTPUT); // Set red LED pin as an output pinMode(PIN_GREEN, OUTPUT); // Set green LED pin as an output pinMode(PIN_BLUE, OUTPUT); // Set blue LED pin as an output } void loop() { // Set RGB LED to teal color #00C9CC (R = 0, G = 201, B = 204) analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 201); analogWrite(PIN_BLUE, 204); delay(1000); // Maintain color for 1 second // Set RGB LED to salmon pink #F7788A (R = 247, G = 120, B = 138) analogWrite(PIN_RED, 247); analogWrite(PIN_GREEN, 120); analogWrite(PIN_BLUE, 138); delay(1000); // Maintain color for 1 second // Set RGB LED to Google green #34A853 (R = 52, G = 168, B = 83) analogWrite(PIN_RED, 52); analogWrite(PIN_GREEN, 168); analogWrite(PIN_BLUE, 83); delay(1000); // Maintain color for 1 second }

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

/* * Deze Arduino UNO R4 code is ontwikkeld door newbiely.nl * Deze Arduino UNO R4 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-uno-r4/arduino-uno-r4-rgb-led */ #define PIN_RED 9 // Arduino UNO R4 pin connected to the LED's red pin #define PIN_GREEN 6 // Arduino UNO R4 pin connected to the LED's green pin #define PIN_BLUE 3 // Arduino UNO R4 pin connected to the LED's blue pin void setup() { pinMode(PIN_RED, OUTPUT); // Set RED LED pin as an output pinMode(PIN_GREEN, OUTPUT); // Set GREEN LED pin as an output pinMode(PIN_BLUE, OUTPUT); // Set BLUE LED pin as an output } void loop() { // Set RGB color to teal setColor(0, 201, 204); delay(1000); // Wait for 1 second // Set RGB color to soft red setColor(247, 120, 138); delay(1000); // Wait for 1 second // Set RGB color to green setColor(52, 168, 83); delay(1000); // Wait for 1 second } void setColor(int R, int G, int B) { analogWrite(PIN_RED, R); // Write RED value to RED LED analogWrite(PIN_GREEN, G); // Write GREEN value to GREEN LED analogWrite(PIN_BLUE, B); // Write BLUE value to BLUE to LED }

Aanvullende Kennis

  • Om een RGB LED met een gemeenschappelijke Anode in te stellen:
    • Sluit de gemeenschappelijke pin aan op de 3.3V pin van de Arduino UNO R4.
    • Pas in de analogWrite() functie de R-, G- en B-waarden aan naar respectievelijk 255 - R, 255 - G en 255 - B.
  • Een reeks RGB LEDs die samen zijn verbonden vormt een RGB LED Strip. Er zijn twee typen LED Strips: adresseerbaar en niet-adresseerbaar. We zullen tutorials voor elk type leveren.

Opmerkingen

※ 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!