Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

Dioda RGB ze wspólną katodą

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 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 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
Ź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. Podane wartości są przykładowe i 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
Schemat podłączenia jednej diody RGB ze wspólną katodą do płytki Arduino Uno.

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:

  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 tak będzie wygodniej) z pinem GND płytki Arduino.

  3. 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
Dioda RGB podłączona do płytki Arduino.
Ź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. 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.
  1. W ciele funkcji setup() ustalamy, że wszystkie piny są wyjściami.

Linia 1. void setup otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy. Linia 2. pinMode otwórz nawias okrągły RedPin przecinek OUTPUT zamknij nawias okrągły średnik. Linia 3. pinMode otwórz nawias okrągły GreenPin przecinek OUTPUT zamknij nawias okrągły średnik. Linia 4. pinMode otwórz nawias okrągły BluePin przecinek OUTPUT zamknij nawias okrągły średnik. Linia 5. zamknij nawias klamrowy.
  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.

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.
  1. 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.
  1. 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.
  1. 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.
  1. 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.
  1. 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.
  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.

Zróbmy symulację układu do sterowania diodą RGB ze wspólną katodą, za pomocą środowiska Tinkercad.

Zaloguj się na swoje konto na https://www.tinkercad.com/

R1L2zXZZlKVWI

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
Film nawiązujący do treści lekcji dotyczącej diody RGD. Na filmie uruchomiono program przechodzący przez wszystkie kolory po kolei - dioda świeci kolejno na czerwono, zielono, niebiesko, biało, fioletowo, żółto i błękitno.

Słownik

piny PWM
piny PWM

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