Świetny opis działania i programowania diod wszelakich znalazłem na stronie Kurs Arduino. Stamtąd pochodzą kody, które delikatnie zmieniłem.
Wyprowadzenia diody RGB:
najdłuższa nóżka to katoda i wspólna masa trzech diód z których składa się dioda RGB.
Tak podłączamy do Arduino UNO:
Przykładowy pobór prądu przy 1 kOhm podłączonym do GND i przy napięciu 3V3 (ESP8266) wynosi:
- RED 1.21mA
- GREEN 0.65 mA
- BLUE 0.53 mA
KOD1 (świecimy trzema kolorami):
#define czerwona 3 #define zielona 5 #define niebieska 6 void setup() { pinMode(czerwona, OUTPUT); // Piny, podłączone do diody jako wyjścia pinMode(zielona, OUTPUT); pinMode(niebieska, OUTPUT); } void loop() { digitalWrite(czerwona, HIGH); // Świecimy tylko na czerwono delay(1000); digitalWrite(czerwona, LOW); // Świecimy tylko na zielono digitalWrite(zielona, HIGH); delay(1000); digitalWrite(zielona, LOW); // Świecimy tylko na niebiesko digitalWrite(niebieska, HIGH); delay(1000); digitalWrite(niebieska, LOW); digitalWrite(czerwona, HIGH); // Świecimy każdą po kolei, bez gaszenia poprzednich delay(1000); digitalWrite(zielona, HIGH); delay(1000); digitalWrite(niebieska, HIGH); delay(1000); digitalWrite(czerwona, LOW); // Wyłączamy wszystkie diody digitalWrite(niebieska, LOW); digitalWrite(zielona, LOW); }
KOD2 (płynna zmiana kolorów z zielonego na niebieski):
#define czerwona 3 #define zielona 5 #define niebieska 6 void setup() { pinMode(czerwona, OUTPUT); //Konfiguracja wyprowadzeń jako wyjścia pinMode(zielona, OUTPUT); pinMode(niebieska, OUTPUT); } void loop() { int zmiana = 0; for (zmiana = 0; zmiana < 255; zmiana++) { //Płynna zmiana kolorów analogWrite(czerwona, 0); analogWrite(zielona, zmiana); analogWrite(niebieska, 255 - zmiana); delay(10); //Krótkie opóźnienie, aby efekt był widoczny dla ludzkiego oka } }