Jeżeli najdłuższa nóżka diody jest katodą, to pozostałe muszą być anodami. Pierwsza z nich 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 przez podłączenie do źródła zasilania, które wyprowadzenia odpowiadają poszczególnym kolorom.
Rx8qLSwhW5ZVy
Dioda RGB jest bardzo ciekawym urządzeniem – może 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 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 pamiętać, gdzie ją nabyliśmy lub wziąć notę katalogową. Jest to 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 Ωomega dla koloru czerwonego oraz dwa po 62 Ωomega 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. 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 się odnosi 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
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
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. Podane wartości są przykładowe i można przyjąć dowolną – mniejszą lub większą.
R1X27wBVCxzK5
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 Ωomega,
rezystory 62 Ωomega (2 sztuki),
przewody i zworki połączeniowe.
Instrukcja:
Wpinamy diodę tak, aby każda nóżka znalazła się w innym wierszu szyny danych płytki stykowej.
Katodę łączymy bezpośrednio (lub przez szynę ujemną, jeżeli tak będzie wygodniej) z pinem GND płytki Arduino.
Pierwszą anodę łączymy przez rezystor (120 Ωomega) z pinem 9., drugą (czyli trzecią nóżkę) przez rezystor 62 Ωomega z pinem 10., a ostatnią, również przez rezystor 62 Ωomega, z pinem 11. W naszym przykładzie zamieniliśmy miejscami dwa ostatnie połączenia, ponieważ w naszej diodzie kolory są ułożone następująco: czerwony, niebieski, zielony.
R1CcBQKRvq7nL
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.
Deklarujemy zmienne, czyli piny, do których podłączone są poszczególne anody. Przyjęliśmy nazwy angielskie, pochodzące od składowych RGB, ale można zastosować polskie.
Linia 1. int RedPin znak równości 9 średnik.
Linia 2. int BluePin znak równości 10 średnik.
Linia 3. int GreenPin znak równości 11 średnik.
W ciele funkcji setup() ustalamy, że wszystkie piny są wyjściami.
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.
Linia 1. void loop otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 2. digitalWrite otwórz nawias okrągły RedPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 3. digitalWrite otwórz nawias okrągły GreenPin przecinek LOW zamknij nawias okrągły średnik.
Linia 4. digitalWrite otwórz nawias okrągły BluePin przecinek LOW zamknij nawias okrągły średnik.
Linia 5. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Linia 6. zamknij nawias klamrowy.
W taki sam sposób włączamy kolejne dwa kolory.
Linia 1. digitalWrite otwórz nawias okrągły RedPin przecinek LOW zamknij nawias okrągły średnik.
Linia 2. digitalWrite otwórz nawias okrągły GreenPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 3. digitalWrite otwórz nawias okrągły BluePin przecinek LOW zamknij nawias okrągły średnik.
Linia 4. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Linia 6. digitalWrite otwórz nawias okrągły RedPin przecinek LOW zamknij nawias okrągły średnik.
Linia 7. digitalWrite otwórz nawias okrągły GreenPin przecinek LOW zamknij nawias okrągły średnik.
Linia 8. digitalWrite otwórz nawias okrągły BluePin przecinek HIGH zamknij nawias okrągły średnik.
Linia 9. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Możemy włączyć wszystkie kolory jednocześnie, aby uzyskać białe światło.
Linia 1. digitalWrite otwórz nawias okrągły RedPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 2. digitalWrite otwórz nawias okrągły GreenPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 3. digitalWrite otwórz nawias okrągły BluePin przecinek HIGH zamknij nawias okrągły średnik.
Linia 4. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Następnie wymieszamy kolor czerwony z niebieskim, a wyłączymy barwę zieloną.
Linia 1. digitalWrite otwórz nawias okrągły RedPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 2. digitalWrite otwórz nawias okrągły GreenPin przecinek LOW zamknij nawias okrągły średnik.
Linia 3. digitalWrite otwórz nawias okrągły BluePin przecinek HIGH zamknij nawias okrągły średnik.
Linia 4. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Zmieszamy kolor czerwony z zielonym; niebieski w tym czasie ma być wyłączony.
Linia 1. digitalWrite otwórz nawias okrągły RedPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 2. digitalWrite otwórz nawias okrągły GreenPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 3. digitalWrite otwórz nawias okrągły BluePin przecinek LOW zamknij nawias okrągły średnik.
Linia 4. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
Wreszcie wyłączymy kolor czerwony, a zielony zmieszamy z niebieskim.
Linia 1. digitalWrite otwórz nawias okrągły RedPin przecinek LOW zamknij nawias okrągły średnik.
Linia 2. digitalWrite otwórz nawias okrągły GreenPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 3. digitalWrite otwórz nawias okrągły BluePin przecinek HIGH zamknij nawias okrągły średnik.
Linia 4. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik.
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.
Zróbmy symulację układu do sterowania diodą RGB ze wspólną katodą, za pomocą środowiska Tinkercad.
Na liście komponentów, znajdującej się po prawej stronie okna, znajdź płytkę stykową.
Kliknij na nią i umieść w głównym oknie.
R16ALwvETtq72
Na liście komponentów znajdź diodę RGB i wstaw ją na płytkę stykową.
R21chpIHi1lQQ
Jeśli nie wiesz, które wyprowadzenie odpowiada jakiemu kolorowi, wystarczy najechać kursorem na nóżkę w miejscu, w którym jest ona wpięta do płytki stykowej.
R1DMtHdJIz6dc
Znajdź rezystor i dodaj go do każdej anody diody LED. Dla koloru czerwonego ustaw wartość 120 Ωomega. Dla koloru zielonego i niebieskiego wartość rezystora wynosi 62 Ωomega.
R1AWXyffIBsvk
Dodaj teraz moduł Arduino Uno do okna symulacji.
R12h73WKJQccU
Zacznijmy od podpięcia katody diody LED z pinem GND Arduino Uno.
RX6pFA30bZqIi
Wolne nóżki rezystorów wpiętych w anody diody podpinamy do Arduino Uno:
kolor czerwony diody do pinu D9,
kolor niebieski diody do pinu D10,
kolor zielony diody do pinu D11.
RIGwJyhZ54e7j
Przejdźmy teraz do pisania kodu. W tym celu klikamy na przycisk Kod, z listy rozwijanej wybieramy Tekst, potwierdzamy chęć zmiany widoku i czyścimy zawartość.
Przepisz kod układu do sterowania diodą RGB ze wspólną katodą i uruchom symulację.
Kolor czerwony:
RMo5JfYNDVqAO
Kolor zielony:
R1JKYtrtmwnbZ
Podczas symulacji koloru zielonego uszkodziliśmy diodę.
Na szczęście to tylko symulacja. Zmieńmy wartość rezystora koloru zielonego. Dla bezpieczeństwa zmienimy też wartość rezystora dla koloru niebieskiego. Wartości rezystorów dla tych kolorów ustawmy na 120 Ωomega.
Sprawdźmy czy teraz nie uszkodzimy diody. Uruchom symulację.
R1Q0dyaiO2ZFY
Kolor niebieski:
RqIyzbcaOhLtD
Kolor biały:
RXYS9lJc3JfL1
Kolor czerwony i niebieski:
RUNMZktYANIzV
Kolor czerwony i zielony:
R14dOtMbpah3E
Kolor zielony i niebieski:
R6K3aVNWsk2hr
Wpiszmy w kodzie wszystkie możliwe warianty świecenia diody.
Film z działania programu.
R4s6mTb1iUrG3
Słownik
piny PWM
piny PWM
piny umożliwiające modulację szerokości impulsu (z ang. Pulse Width Modulation)