Kolorowa dioda RGB

Ś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
  }
}

Dodaj komentarz