Arduino – zdalne sterowanie za pomocą podczerwieni. Własne klasy

Ponieważ w ostatnich dwóch dniach nauczyłem się zarówno wysyłać jak i odbierać cyfrowe sygnały postanowiłem wykonać układ na którego realizację czekałem jeszcze przed zakupem Arduino.

Celem projektu jest zdalne sterowanie trzema diodami przez np. pilot od TV, dvd, czy głośników. Natomiast efekt końcowy zobaczcie tutaj (akurat rozszerzyłem opisany poniżej układ o czwartą diodę):

Układ

Do zmontowania układu będą nam potrzebne następujące elementy z zestawu elektroprzewodnika:

  • 3 x czerwona dioda LED
  • 3 x rezystor 1,2kΩ (szeregowo z diodami)
  • 1 x odbiornik podczerwieni TSOP2236 – 36 kHz
  • 1 x rezystor 100Ω (do ograniczenia prądu)

Głównym elementem jest w tym przypadku odbiornik podczerwieni (obrazek z Botlandu):

 

 

Patrząc od frontu elementu kolejne nóżki to: wyjście, zasilanie, masa.

 

podczerwien_sterowanie

 

Program

Do realizacji obsługi odczytów wysyłanych sygnałów z pilota wykorzystamy gotową bibliotekę do Arduino (http://shirriff.github.io/Arduino-IRremote/). Pobrany ze strony plik należy rozpakować i wgrać do katalogu libraries który znajduje się w katalogu instalacyjnym środowiska do Arduino.

Uwaga! Jeżeli w katalogu libraries znajduje się katalog RobotIRremote to zawiera on już bibliotekę IRemote jednak nieco zmodyfikowaną która w moim przypadku powodowała błędy kompilacji których nie analizowałem. Przeniosłem cały katalog w inne miejsce i wgrałem bibliotekę IRemote do której odnośnik podałem wyżej.

 

Na samym początku trzeba wykonać program który wypisze na wyjście terminala wciśnięty przycisk pilota:

Po wgraniu programu otwieramy szeregowy monitor, zaczynamy naciskać klawisze na pilocie i w oknie terminala ukazują się nam ich kody:

terminal_kody_pilot

 

Wybrałem z mojego pilota trzy przyciski, których kody to: FF6897, FF9867 i FFB04F. Dlatego pierwszą czynnością będzie zdefiniowanie wyjść dla diod i przypisanie im odpowiednie wartości kodów pilota.

Postanowiłem jednak trochę zwiększyć uniwersalność takiego programu i zrealizowałem go przez napisanie własnej klasy. W tym celu należy utworzyć nowy katalog w katalogu Libraries środowiska Arduino i utworzyć dwa pliki definiujące klasę:

  • plik nagłówkowy (.h)
  • plik klasy (.cpp).

Moja klasa powinna przechowywać takie informacje jak:

  1. Numer pinu wyjściowego (dla sterowania sygnałem diody).
  2. Przypisany kod klawisza pilota.
  3. Aktualny stan diody.

Dodatkowo dodałem metody do inicjacji wyjść, zmiany stanu na przeciwny i gettery.

Plik nagłówkowy

 

 

Plik klasy

 

Kompletny program:

Zwróćcie uwagę jak prosto w tym momencie po zastosowaniu własnej klasy dodać do programu obsługę kolejnych wyjść i przycisków pilota – wystarczy zaktualizować poniższy fragment kodu:

Gotowa bibliotekę z klasą można pobrać stąd. Wystarczy rozpakować zawartość do katalogu libraries Arduino a następnie utworzyć nowy sketch z powyższym kodem.

 

Podumowanie

Dzięki open hardware i open source możemy wykonać w krótkim czasie z pozoru dosyć skomplikowane projekty. Mam niezmierną satysfakcję, że po dwóch wieczorach zabawy z Arduino byłem w stanie (jako kompletny amator) wykonać prostą obsługę zdalnego sterowania dowolnym pilotem na podczerwień. Taki układ można dalej rozwijać: np. wmontować przekaźniki i podpiąć oświetlenie domu. Oczywiście zabawa z napięciem 230V to już nie zabawa i trzeba o tym pamiętać.

 

Natomiast jeśli ktoś chciałby zagłębić się w szczegóły to polecam poniższy materiał. Od siebie dodam, że mamy w tym przypadku do czynieniem ze standardem RC5 (wikipediaopis standardu RC5) z kodowaniem Manchester. Dioda podczerwieni w pilocie po naciśnięciu dowolnego przycisku wysyła stałą ilość impulsów, a dokładniej 14-stu. Jest to sygnał o przebiegu prostokątnym o konkretnej charakterystyce. Ta suma 14 bitów czy impulsów wysłanych pod rząd nazywa się ramką w telekomunikacji. Zawarty jest tam m.in kod rozkazu (w 6 bitach), który właśnie mówi odbiornikowi o tym który przycisk został wciśnięty.

To również może Cię zainteresować:

  • Trochę elektroniki – od czego zacząć?Trochę elektroniki – od czego zacząć? Korzystając z ostatniego dnia promocji w ebookpoint.pl kupiłem sobie książkę: "Arduino. 65 praktycznych projektów" Johna Boxalla za zaledwie 32,99 zł. Tym samym rozpoczynam swoją przygodę […]
  • Arduino ‚Hello World’ – pierwszy programArduino ‚Hello World’ – pierwszy program Dotarła do mnie w czwartek przesyłka z Botlandu z zestawem od ElektroPrzewodnika dlatego od razu po pracy postanowiłem zmontować prosty układ i napisać do niego program. Migające diody […]
  • Arduino – przyciski i szeregowy monitorArduino – przyciski i szeregowy monitor W drugim dniu zabawy z Arduino postanowiłem przede wszystkim wykonać coś do odczytu wejść. Zmontowałem układ realizujący dwa cele: Wysyłka informacji do komputera przez szeregowy […]
  • Arduino – flagi bitoweArduino – flagi bitowe Pamiętacie jak miesiąc temu wspominałem o flagach bitowych w javie? Arduino jest właśnie świetnym przykładem możliwości ich wykorzystania. Mamy tutaj ograniczoną pamięć, dlatego w prosty […]
  • Adafruit Flora łączenie kilku diod RGB Smart NeoPixel v.2Adafruit Flora łączenie kilku diod RGB Smart NeoPixel v.2 Rozpoczynając zabawę z Adafruit Flora (dzięki uprzejmości firmy kamami.pl) podłączyłem jedną diodę RGB Smart NeoPixel. Tym razem wziąłem do ręki igłę, nici przewodzące i wszyłem w koszulkę […]
  • Robot oparty o Arduino układa kostkę Rubika poniżej sekundyRobot oparty o Arduino układa kostkę Rubika poniżej sekundy W styczniu tego roku (2016) Jay Flatland i Paul Rose opublikowali na Youtube film przedstawiający robota układającego kostkę rubika w czasie poniżej dwóch sekund. Do […]

One thought on “Arduino – zdalne sterowanie za pomocą podczerwieni. Własne klasy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *