Arduino Nano - RGB LED

Deze tutorial legt uit hoe u de Arduino Nano gebruikt om een RGB LED te bedienen. We leren in detail:

Hardware Benodigd

1×Official Arduino Nano
1×Alternatief: DIYables ATMEGA328P Nano Development Board
1×USB A naar Mini-B USB kabel
1×RGB LED
3×220 ohm weerstand
1×(Alternatief) RGB-LED-Module
1×Breadboard (experimenteerprint)
1×Jumperdraden
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Breakout Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Stromsplitter voor Arduino Nano

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 is in staat om elke kleur te produceren door de drie primaire kleuren te combineren: rood, groen en blauw. Hij bestaat uit drie afzonderlijke LEDs (rood, groen en blauw) die in één behuizing zijn ondergebracht.

De RGB LED Pinout

Een RGB LED heeft vier pinnen:

  • Common (Cathode-) pin: moet worden aangesloten op GND (0V)
  • R (red): pin wordt gebruikt voor het regelen van rood
  • G (green): pin wordt gebruikt voor het regelen van groen
  • B (blue): pin wordt gebruikt voor het regelen van blauw
RGB LED pinout

Om een RGB LED te laten werken met Arduino Nano, moeten we gebruikmaken van stroombegrenzende weerstanden. Dit kan soms wat ingewikkeld zijn om alles correct aan te sluiten. Gelukkig kunnen we ook de handige RGB LED module gebruiken die deze weerstanden al ingebouwd heeft!

De RGB LED Module heeft ook vier pinnen:

  • Common (Cathode-) pin: moet verbonden worden met GND (0V)
  • R (red): pin wordt gebruikt voor het bedienen van rood
  • G (green): pin wordt gebruikt voor het bedienen van groen
  • B (blue): pin wordt gebruikt voor het bedienen van blauw
RGB LED Module Pinout

※ Notiz:

De common pin van een RGB LED kan zowel een kathode als een anode zijn, afhankelijk van het type RGB LED. In deze tutorial gebruiken we een common cathode LED.

Hoe het werkt

In de natuurkunde bestaat een kleur uit drie componenten: Rood (R), Groen (G) en Blauw (B). De waarde van elke kleur ligt tussen 0 en 255. De combinatie van de drie waarden creëert in totaal 256 x 256 x 256 kleuren.

We kunnen de Arduino Nano gebruiken om elke gewenste kleur te maken door PWM-signalen (met een duty cycle van 0 tot 255) te leveren aan de R-, G- en B-pinnen van de RGB LED.

De duty cycle van de PWM-signalen die naar de R-, G- en B-pinnen worden gestuurd is evenredig aan de respectievelijke Rood (R), Groen (G) en Blauw (B) kleurwaarden.

Aansluitschema

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

This image is created using Fritzing. Click to enlarge image

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

This image is created using Fritzing. Click to enlarge image

Hoe RGB LED te besturen

Laten we leren hoe we de RGB LED kunnen instellen op elke kleur, bijvoorbeeld #00979D, stap voor stap:

  • Bepaal eerst welke kleur u wilt weergeven en zoek de kleurcode op. Tips:
    • U kunt de gewenste kleurcode vinden met de color picker
    • Wilt u een kleur gebruiken uit een afbeelding? Gebruik dan de online tool Colors From Image
  • Zet vervolgens de kleurcode om naar R, G en B waarden met behulp van de tool van w3schools. Noteer deze waarden. In dit voorbeeld: R = 0, G = 151, B = 157
RGB LED color picker
  • Geef de Arduino Nano pinnen aan die verbonden zijn met de R-, G- en B-pinnen. Bijvoorbeeld:
const int PIN_RED = 11; const int PIN_GREEN = 10; const int PIN_BLUE = 9;
  • Zet de Arduino Nano pinnen in output-modus:
pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT);
  • Stuur signalen naar de LED zodat deze de kleur #00979D uitstraalt, bestaande uit Rood = 0, Groen = 151 en Blauw = 157.
analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 151); analogWrite(PIN_BLUE, 157);

Arduino Nano - RGB LED Voorbeeldcode

De volgende Arduino Nano code verandert de kleur van de LED in een vaste volgorde:

  • #00C9CC (Rood = 0, Groen = 201, Blauw = 204)
  • #F7788A (Rood = 247, Groen = 120, Blauw = 138)
  • #34A853 (Rood = 52, Groen = 168, Blauw = 83)
/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-led-rgb */ const int PIN_RED = 11; const int PIN_GREEN = 10; 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 behouden // 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 behouden // 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 behouden }

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

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-led-rgb */ const int PIN_RED = 11; const int PIN_GREEN = 10; 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 behouden // kleurcode #F7788A (R = 247, G = 120, B = 138) setColor(247, 120, 138); delay(1000); // kleur 1 seconde behouden // kleurcode #34A853 (R = 52, G = 168, B = 83) setColor(52, 168, 83); delay(1000); // kleur 1 seconde behouden } 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 common Anode moet u:

  • De common pin aansluiten op 3.3V van de Arduino Nano.
  • De functie analogWrite() gebruiken met R-, G- en B-waarden als 255 minus de gewenste waarde per kleur respectievelijk.

Een reeks RGB LEDs die aan elkaar gekoppeld zijn, vormt een RGB LED Strip. LED-strips kunnen worden onderverdeeld in adresseerbare LED-strips en niet-adresseerbare LED-strips. We zullen tutorials maken voor beide types LED-strips.

※ Notiz:

Gebruik geen enkele weerstand op de common pin van een RGB LED in plaats van drie weerstanden op de andere pinnen.

Dit komt doordat, hoewel het theoretisch toegestaan is om één weerstand in de common pin te gebruiken, dit in de praktijk niet werkt. De LEDs in een RGB-behuizing zijn namelijk niet identiek, waardoor de weerstanden per LED verschillend moeten zijn. Dit leidt tot ongelijke stroomverdeling, verschillende helderheidsniveaus en kan schade veroorzaken aan één of meer LEDs en uiteindelijk ook aan de anderen.

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