Minął kolejny tydzień prac nad projektem iLED. Pomimo tego, że w ostatnim czasie nie narzekałem na nadmiar wolnego, udało mi się znaleźć chwilę, aby opanować biblioteki do obsługi czujnika podczerwieni oraz taśmy LED – ws2812b.

Jednym z założeń projektu LED POI jest możliwość zdalnej komunikacji z urządzeniem. Na obecnym etapie tworzę prototyp – MVP produktu. Tym samym na razie nie zależy mi na zaawansowanych możliwościach komunikacji bezprzewodowej. Na tym etapie komunikację oparłem jedynie na wykorzystaniu pilota IR oraz odbiornika podczerwieni – 1838b.

Specyfikacja odbiornika:

  • Zasilanie odbiornika: 3,0 – 5,5 V
  • Pobór prądu odbiornika: do 1 mA
  • Częstotliwość pracy: 38 kHz

Podłączenie odbiornika do arduino wykonałem według następującego schematu:

Odbiornik umieściłem w widocznym miejscu:

Umiejscowienie odbiornika podczerwieni 1838b

Obsługę logiki odbiornika oparłem o bibliotekę IRremote. Użycie jej wymaga implementacji jedynie kilku prostych kroków. Na początku konieczne jest utworzenie obiektu odbiornika – irrecv(receivePin). Następnie uruchamiamy odbieranie kodów wywołując metodę enableIRIn(). Od tego momentu możemy dekodować przychodzące informacje przy użyciu decode(&results). Poniżej zamieszczam prosty kod umożliwiający odczytywanie z odbiornika podczerwieni kodów jakie wysyła pilot IR od telewizora.

WAŻNE!
Należy pamiętać, aby po każdorazowym odbiorze kodu wywołać metodę irrecv.resume(). Jest to metoda resetująca odbiornik, dzięki czemu jest gotowy do odbioru kolejnego kodu. Więcej na temat możliwości biblioteki przeczytacie TUTAJ.

Po uruchomieniu projektu od razu widać, że każdy z przycisków pilota wysyła sygnał zakodowany szesnastkowo. Mając informacje o tym jaki kod odpowiada odpowiedniemu przyciskowi pilota, możemy rozwinąć powyższy program o obsługę zdarzeń – reakcji na użycie konkretnych przycisków (w tym przypadku reakcją jest włączenie/wyłączenie diody LED podłączonej do pinu o numerze 13):

Na podstawie tych przykładów zaprogramowałem obsługę zmiany barw POI przy użyciu pilota od dekodera satelitarnego oraz taśmy z diodami LED ws2812b. Więcej informacji na temat wspomnianych diod LED przedstawię w kolejnym wpisie, tymczasem zachęcam do obejrzenia krótkiej prezentacji obecnego stanu projektu (działający prototyp, posiadający możliwość zmiany zahardkodowanych efektów przy użyciu przycisku lub pilota IR):

Jak Wam się podoba?
Zachęcam do komentowania!

Jeżeli nie wiecie dokładnie czego dotyczy mój projekt zapraszam do zapoznania się ze wcześniejszymi wpisami:
#Start
#Budujemy LED POI cz. 1
#Budujemy LED POI cz. 2

Author:

Programista, przedsiębiorca, tancerz ognia. Staram się ogarniać rzeczywistość wyciągając jak najwięcej wartości z tego co daje nam technologia. Jestem miłośnikiem produktywności i wyznawcą stwierdzenia "Done is better than perfect". Od ponad 5 lat staram rozwijać się oraz zdobywać doświadczenie jako programista. Najbliżej mi do aplikacji webowych i technologii .NET, ale od jakiegoś czasu stałem się entuzjastą rozwiązań JavaScriptowych.