Wróć do informacji o e-podręczniku Udostępnij materiał Wydrukuj

Dioda RGB ze wspólną katodą

Jeżeli najdłuższa nóżka diody jest katodą, to pozostałe muszą być anodami. Pierwsza odpowiada za emitowanie światła czerwonego (R, z ang. red), trzecia – zielonego (G, z ang. green), a czwarta – niebieskiego (B, z ang. blue). Może się też zdarzyć, że ustawienie anod jest inne. W takiej sytuacji pierwsza z nich odpowiada za kolor czerwony, trzecia za niebieski, a czwarta za zielony (tak właśnie jest w przypadku diody, którą będziemy się posługiwać).

Ważne!

Sprawdź w karcie katalogowej lub poprzez podłączenie do źródła zasilania, które wyprowadzenia odpowiadają poszczególnym kolorom.

Rx8qLSwhW5ZVy
Dioda RGB ze wspólną katodą
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Dioda RGB jest bardzo ciekawym urządzeniem – może w rzeczywistości emitować światło o każdej barwie. Dzieje się tak, ponieważ w diodzie wbudowano trzy chipy; każdy z nich jest zasilany osobno. Jeżeli przez wszystkie anody popłynie taki sam prąd, to jednocześnie zostanie włączone światło czerwone, zielone i niebieskie. Po zmieszaniu tych barw otrzymamy kolor biały. Jeżeli natomiast zasilimy na przykład jedynie pierwszy chip, to dioda będzie świeciła tylko na czerwono. Można to regulować zarówno sprzętowo, jak i programowo.

Przy zakupie diody RGB warto zapamiętać, gdzie ją nabyliśmy, lub wziąć notę katalogową. Jest to bardzo istotne podczas obliczania, jakie rezystory są nam potrzebne. W przypadku diody, której używamy, parametry pracy to:

  • kolor czerwony:  prąd 25 mA, napięcie 2 V,

  • kolor zielony: prąd 25 mA, napięcie 3,5 V,

  • kolor niebieski: prąd 25 mA, napięcie 3,5 V.

Obliczamy rezystancję, korzystając z prawa Ohma lub z kalkulatora rezystorów. Oczywiście napięcie zasilania to 5 V. Potrzebne nam będą następujące rezystory: 120 Ω dla koloru czerwonego oraz dwa po 62 Ω dla barw zielonej i niebieskiej.

Jeżeli będziemy włączać światło białe, czerwone, zielone lub niebieskie, to nie ma znaczenia, z których pinów płytki Arduino skorzystamy. Gdy jednak chcemy uzyskać kolory pośrednie, używamy pinów o numerach, przy których umieszczono oznaczenie „~” (tylda). Są to piny PWMpiny PWMpiny PWM (z ang. Pulse Width Modulation), czyli umożliwiające modulowanie szerokości impulsu.

Zatrzymajmy się na chwilę. W schemacie barw RGB składowe mogą przyjmować wartości z zakresu 0–255. Załóżmy, że składowe mają wartości: 255, 0, 0. W efekcie uzyskamy kolor czerwony. Przyjmując: 0, 255, 0, otrzymamy kolor zielony. Oczywiście analogicznie postępujemy z kolorem niebieskim, który uzyskamy, zakładając wartości: 0, 0, 255. Gdybyśmy wszystkie składowe ustawili na 0, otrzymalibyśmy kolor czarny. Natomiast trzy składowe o wartości 255 dałyby kolor biały.

Jak to ma się do pinów PWM? Cechą charakteryzującą sygnał PWM jest współczynnik wypełnienia. Opisuje on, jaką część sygnału stanowi stan niski, a jaką wysoki. Stan niski odpowiada składowej RGB o wartości 0, a stan wysoki – składowej równej 255. Nie zamieścimy tu żadnego wzoru, lecz narysujemy impulsy.

Jeżeli impuls złożony jest w 100% ze stanu wysokiego, czyli składowa koloru wynosi 255, to dioda świeci pełnią blasku. Każda zmiana stanu procentowego na niższy powoduje słabsze świecenie diody. Otrzymujemy więc zupełnie inny kolor światła. W rezultacie jesteśmy w stanie sterować barwą światła emitowanego przez diodę RGB.

Rlob1OA5rexQN
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Zobaczmy, jak schemat RGB działa w przypadku monitora. Użyjemy wartości, które zostały pokazane na rysunku powyżej, przy założeniu, że schemat dotyczy tylko pierwszego chipu, odpowiedzialnego za barwę czerwoną.

R1PaEtqCeMcl6
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Skoro wiemy, że jaskrawością koloru można sterować, a poszczególne kolory możemy wygaszać, zobaczmy, jak wygląda mieszanie barw przy zadanych wartościach. Oczywiście podane wartości są przykładowe. Można przyjąć dowolną – mniejszą lub większą.

R1X27wBVCxzK5
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Budowa układu do sterowania diodą RGB ze wspólną katodą

Znając sposób działania diod, możemy narysować prosty schemat podłączenia jednej diody RGB ze wspólną katodą do płytki Arduino Uno.

RdiwQ8TpiwCsn

Elementy potrzebne do budowy układu:

  • płytka Arduino Uno

  • płytka stykowa

  • kabel USB typu A‑B

  • dioda RGB ze wspólną katodą

  • rezystor 120 Ω

  • rezystory 62 Ω (2 sztuki)

  • przewody i zworki połączeniowe

  1. Wpinamy diodę tak, aby każda nóżka znalazła się w innym wierszu szyny danych płytki stykowej.

  2. Katodę łączymy bezpośrednio (lub przez szynę ujemną, jeżeli będzie ci wygodniej) z pinem GND płytki Arduino.

  3. Pierwszą anodę łączymy poprzez rezystor (120 Ω) z pinem 9., drugą (czyli trzecią nóżkę) poprzez rezystor 62 Ω z pinem 10., a ostatnią, również poprzez rezystor 62 Ω, z pinem 11. My zamieniliśmy miejscami dwa ostatnie połączenia, ponieważ w naszej diodzie kolory są ułożone następująco: czerwony, niebieski, zielony.

R1CcBQKRvq7nL
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Podłączamy płytkę Arduino do komputera. Następnie uruchamiamy aplikację Arduino IDE i tworzymy nowy szkic. Zapisujemy go na przykład pod nazwą rgb_katoda. Najpierw sprawdzimy, jak działa dioda. Nieco później spróbujemy sterować szerokością impulsu.

  1. Deklarujemy zmienne, czyli piny, do których podłączone są poszczególne anody. Można zastosować polskie nazwy – my przyjęliśmy angielskie, pochodzące od składowych RGB.

int RedPin = 9;
int BluePin = 10;
int GreenPin = 11;
  1. W ciele funkcji setup() ustalamy, że wszystkie piny są wyjściami.

void setup() {
	pinMode(RedPin, OUTPUT);
	pinMode(GreenPin, OUTPUT);
	pinMode(BluePin, OUTPUT);
}
  1. Wewnątrz funkcji loop() włączamy kolor czerwony. Aby dioda świeciła tylko tą barwą, dla pozostałych należy wyłączyć napięcie. Warto też określić opóźnienie.

void loop() {
	digitalWrite(RedPin, HIGH);
	digitalWrite(GreenPin, LOW);
	digitalWrite(BluePin, LOW);
	delay(1000);
}
  1. W taki sam sposób włączamy kolejne dwa kolory.

digitalWrite(RedPin, LOW);
digitalWrite(GreenPin, HIGH);
digitalWrite(BluePin, LOW);
delay(1000);
  
digitalWrite(RedPin, LOW);
digitalWrite(GreenPin, LOW);
digitalWrite(BluePin, HIGH);
delay(1000);
  1. Możemy włączyć wszystkie kolory jednocześnie, aby uzyskać białe światło.

digitalWrite(RedPin, HIGH);
digitalWrite(GreenPin, HIGH);
digitalWrite(BluePin, HIGH);
delay(1000);
  1. Następnie wymieszamy kolor czerwony z niebieskim, a wyłączymy barwę zieloną.

digitalWrite(RedPin, HIGH);
digitalWrite(GreenPin, LOW);
digitalWrite(BluePin, HIGH);
delay(1000);
  1. Zmieszamy kolor czerwony z zielonym; niebieski w tym czasie ma być wyłączony.

digitalWrite(RedPin, HIGH);
digitalWrite(GreenPin, HIGH);
digitalWrite(BluePin, LOW);
delay(1000);
  1. Wreszcie wyłączymy kolor czerwony, a zielony zmieszamy z niebieskim.

digitalWrite(RedPin, LOW);
digitalWrite(GreenPin, HIGH);
digitalWrite(BluePin, HIGH);
delay(1000);
  1. Weryfikujemy poprawność kodu, a następnie przesyłamy szkic do płytki.

Kolory powinny zmieniać się w podanej wyżej kolejności. Najlepiej widać to, gdy patrzymy na diodę z góry, a nie z boku. Pamiętaj jednak, że napięcie, które otrzymują poszczególne chipy, jest maksymalne i dioda świeci pełnią blasku. Nie wpatruj się w nią zatem zbyt długo, ponieważ naprawdę bardzo razi w oczy.

Słownik

piny PWM
piny PWM

piny umożliwiające modulację szerokości impulsu (z ang. Pulse Width Modulation)