Co to jest odbiornik podczerwieni? W odbiorniku satelitarnym instalujemy dodatkowy odbiornik podczerwieni. Schemat podłączenia odbiornika podczerwieni

schemat z magazynu „Młody Technik”.

Ciekawy kierunek w elektronice radiowej, który uzupełnił tę elektronikę o nowe zalety światła „niewidzialnego” (światło podczerwone). Proponuję więc układ prostego (na przykład) odbiornika i nadajnika wykorzystującego promienie podczerwone. Podstawy: wzmacniacz operacyjny k140ud7 (tu mam ud708), emitujące i odbierające fotodiody IR, ULF (k548un1a (b,c - indeksy) - dla dwóch kanałów) (choć gdzie „włączyć” drugi kanał wzmacniacza zależy od ciebie - nadajnik obwód jest przeznaczony dla jednego kanału, tj. mono). Zasilanie urządzenia: Generalnie polecam z przyzwoitą stabilizacją prądu (w przeciwnym razie „elegancki” zasilacz drażni tło „sieci”). Metoda: sygnał nadajnika o modulowanej amplitudzie jest wzmacniany przez odbiornik 1000 razy.

Jak działa urządzenie. Proponuję obejrzeć krótki film testujący pilota na podczerwień „na ucho”. Możesz szybko sprawdzić funkcjonalność i siłę sygnału za pomocą dźwięku.

Obwód odbiornika podczerwieni i nadajnika podczerwieni

Podczas montażu kondensatory C1 i C2 powinny znajdować się jak najbliżej wzmacniacza! Do wyjścia można podłączyć słuchawki o wysokiej impedancji (niskoomowe wymagają osobnego ULF). Fotodioda FD7 (mam FD263: „tablet” z soczewką skupiającą); Rezystory 0,125 W: R1 i R4 ustawiają współczynnik wzmocnienia sygnału 1000 razy. Odbiornik jest łatwy w konfiguracji: fotodioda jest kierowana na źródło promieniowania podczerwonego, np. lampę 220V-50 Hz: żarnik będzie zasilany częstotliwością 50 Hz lub pilot do telewizora (wideo itp.). Czułość odbiornika jest wysoka: normalnie odbiera sygnały odbite od ścian.

Nadajnik posiada diody LED IR AL107a: wystarczy każda. R2 2 kOhm, C1 1000μFx25V, C2 200μFx25V, dowolny transformator. Chociaż całkiem możliwe jest obejście się bez transformatora - doprowadź wzmocniony sygnał audio do kondensatora C2.

Schemat urządzenia

Obwód odbiornika podczerwieni z ULF

Niedawno z konieczności złożyłem odbiornik IR do testowania pilotów IR (telewizory i DVD). Po sfinalizowaniu obwodu zainstalowałem mono ULF TDA7056. Wzmacniacz ten ma dobrą charakterystykę wzmocnienia wynoszącą około 42 dB; pracuje w zakresie napięć od 3V do 18V, co pozwala na pracę odbiornika IR nawet przy napięciu 3V; Zakres wzmocnienia TDA od 20 Hz do 20 kHz (UD708 przechodzi do 800 kHz) jest wystarczający, aby używać amplitunera jako akompaniamentu audio; posiada zabezpieczenie przeciwzwarciowe na wszystkich „nogach”; ochrona przed „przegrzaniem”; słaby współczynnik samozakłóceń. Ogólnie podobał mi się ten kompaktowy i niezawodny ULF (nasza cena to 90 rubli).
Jest z nim szczegółowy opis. Rysunek 1 pokazuje przykład zastosowania wzmacniacza.


Zdjęcie TDA7056


Ryc.1. Obwód wzmacniacza z TDA7056

W rezultacie powstał odbiornik podczerwieni, rys. 2, który pracuje w zakresie napięcia od 3 V do 12 V. Do zasilania odbiornika zalecam używanie baterii lub akumulatorów. W przypadku korzystania z zasilacza wymagane jest stabilizowane źródło, w przeciwnym razie słychać będzie tło sieci 50 Hz, co wzmacnia UD708. Jeśli urządzenie znajduje się w pobliżu źródła napięcia sieciowego lub emisji radiowych, mogą wystąpić zakłócenia. Aby zmniejszyć zakłócenia, konieczne jest włączenie do obwodu kondensatora C5. TDA7056 jest przeznaczony do głośnika wyjściowego 16 omów, niestety nie mam takiego. Musiałem użyć 4-omowego 3-watowego głośnika, który został podłączony przez 1-watowy rezystor 50 omów. Zbyt mała rezystancja cewki głośnika powoduje nadmierną moc i przegrzewanie wzmacniacza. Ogólnie rzecz biorąc, dzięki dodatkowemu rezystorowi ULF nie nagrzewa się, ale zapewnia całkiem akceptowalne wzmocnienie.

Odbiornik poleceń pilota IR pilot Do jazdy sprzęt AGD można łatwo wykonać za pomocą licznika dziesiętnego CD4017, timera NE555 i odbiornika podczerwieni TSOP1738.

Za pomocą tego obwodu odbiornika podczerwieni można łatwo sterować urządzeniami gospodarstwa domowego za pomocą pilota do telewizora, odtwarzacza DVD lub za pomocą obwodu pilota opisanego na końcu artykułu.

Obwód odbiornika podczerwieni do pilota

Do jego zasilania służą piny 1 i 2 odbiornika IR TSOP1738. Rezystor R1 i kondensator C1 są zaprojektowane do stabilnej pracy i tłumienia różnych szumów w obwodzie zasilania.

Kiedy promienie podczerwone o częstotliwości 38 kHz padają na odbiornik podczerwieni TSOP1738, na jego wyjściu 3 pojawia się niski poziom napięcia, a gdy promienie podczerwone znikają, ponownie pojawia się wysoki poziom. Ten ujemny impuls jest wzmacniany przez tranzystor Q1, który przekazuje wzmocniony sygnał częstotliwościowy na wejście licznika dziesiętnego CD4017. Piny licznika 16 i 8 służą do jego zasilania. Pin 13 jest podłączony do masy, umożliwiając w ten sposób jego działanie.

Wyjście Q2 (pin 4) jest podłączone do pinu resetowania (pin 15), aby CD4017 działał w trybie bistabilnego multiwibratora. Podczas pierwszego impulsu log1 pojawia się na Q0, drugi sygnał zegara powoduje pojawienie się log1 na Q1 (Q0 spada), a przy trzecim sygnale ponownie wyprowadza log1 na Q0 (Q2 jest podłączony do MR, więc trzeci sygnał zegara resetuje się) Licznik).

Załóżmy, że licznik został zresetowany (Q0 jest wysoki, a pozostałe niskie). Po naciśnięciu przycisku pilota sygnał zegara wpływa na licznik, co prowadzi do wysokiego poziomu na Q1. W ten sposób zapala się dioda LED D1, włącza się tranzystor Q2 i przekaźnik zostaje aktywowany.

Po ponownym naciśnięciu przycisku pilota na pinie Q0 pojawia się log 1, przekaźnik wyłącza się i zapala się dioda D2. Dioda D1 wskazuje, kiedy urządzenie jest włączone, a dioda D2 wskazuje, kiedy urządzenie jest wyłączone.

Do sterowania możesz użyć pilota od telewizora lub zamontować osobny zgodnie ze schematem poniżej.

  • Napięcie wejściowe: 2,7...5,5 V
  • Pobór prądu: 0,65...1,05 mA (przy Vcc = 5V) nominalnie 0,9 mA
  • Częstotliwość nośna: 38 kHz
  • Długość fali światła: 850...1050 nm (przepuszczana przez filtr w ponad 80%)
  • Czułość: 0,17… 30000 mW/m2 (do mocy strumienia świetlnego)
  • Odległość odbioru: do 45 m
  • Temperatura pracy: -25…85°C
  • Kąt kierunkowy: ±45°

Wszystkie moduły linii „Trema” wykonane są w tym samym formacie

Połączenie:

Moduł podłącza się do dowolnego cyfrowego pinu Arduino. W zestawie znajduje się kabel umożliwiający szybkie i łatwe podłączenie do Trema Shield.

Moduł można wygodnie podłączyć na 3 sposoby, w zależności od sytuacji:

Metoda - 1: Za pomocą kabla przewodowego i Piranha UNO


Biblioteka wykorzystuje drugi zegar sprzętowy,

NIE WYSYŁAJ SYGNAŁÓW PWM NA WYJŚCIE 3 LUB 11!

Przeczytaj więcej o instalowaniu biblioteki w naszym...

Dodatkowe informacje dotyczące pracy z modułem:

Pakiety: Prawie wszystkie piloty wysyłają nie tylko pakiet informacyjny (wskazujący typ urządzenia i kod wciśniętego przycisku), ale także pakiety powtarzające, informujące urządzenie o przytrzymaniu przycisku. Dzięki temu urządzenie odbiorcze może reagować na jednokrotne naciśnięcie przycisku lub na cały czas jego trzymania.

Przykładowo: naciskając i przytrzymując przycisk z numerem kanału telewizyjnego, telewizor przełączy się na ten kanał tylko raz. Naciskając i przytrzymując przycisk zwiększania głośności, telewizor będzie ją zwiększał przez cały czas przytrzymywania przycisku.

Liczba pakietów informacyjnych Większość pilotów jest wyposażona w taki pilot, ale niektóre urządzenia, takie jak klimatyzatory, wykorzystują 2, 3 lub więcej pakietów informacji.

Zawartość Paczki: Pakiet informacyjny zawiera informacje o kodzie producenta, typie urządzenia, kodzie wciśniętego przycisku itp. Pakiety powtarzalne mogą częściowo lub całkowicie pokrywać się z pakietem informacyjnym, kopiować jego bity z inwersją lub nie zawierać żadnych informacji, reprezentując sekwencję kilku identycznych bitów dla każdego powtarzającego się pakietu.

Czas trwania przerw pomiędzy pakietami: zwykle nie przekracza 200 ms.

Protokoły przesyłania danych: określić następujące podstawowe parametry:

  • częstotliwość nośna;
  • sposób kodowania informacji, czas trwania impulsów i przerw przesyłanych bitów;
  • ilość pakietów informacyjnych:
  • skład pakietu informacyjnego i pakietów powtórkowych;
  • długość przerw pomiędzy pakietami;
  • obecność i forma sygnałów Start, Stop i Toggle;

Częstotliwość nośna: w przypadku większości pilotów jest to 38 kHz; jest to częstotliwość, do której dostrojony jest odbiornik Trema IR.

Kodowanie informacji: Taka jest zasada przesyłania bitów danych. Wyróżnijmy trzy główne typy kodowania, w których każdy bit jest przesyłany w sekwencji jednego impulsu i jednej przerwy:

  • kodowanie długości impulsu - najpierw transmitowany jest impuls, którego długość zależy od wartości przesyłanego bitu, po czym następuje pauza, której długość nie zależy od wartości bitu. Przykładowo: w protokole SIRC (Sony) długość impulsu dla bitu „1” = 1200 µs, a dla bitu „0” = 600 µs długość pauz wynosi zawsze 600 µs. W ten sposób można rozróżnić „1” od „0” na podstawie długości impulsu.
  • kodowanie długich przerw - najpierw transmitowany jest impuls, którego długość nie zależy od wartości przesyłanego bitu, następnie następuje pauza, której długość zależy od wartości bitu. Przykładowo: w protokole NEC długość przerwy dla bitu „1” = 1687,5 µs, a dla bitu „0” = 562,5 µs długość impulsu wynosi zawsze 562,5 µs. W ten sposób można odróżnić „1” od „0” po długości pauzy.
  • kodowanie dwufazowe – długość impulsu jest równa długości pauzy, a ich kolejność określa rodzaj przesyłanego bitu. Przykładowo: w protokole RS5 (Philips) dla bitu „1” po pauzie następuje impuls, a dla bitu „0” po impulsie następuje pauza. Natomiast w przypadku protokołu NRC (Nokia) dla bitu „1” po impulsie następuje pauza, a dla bitu „0” po pauzie następuje impuls.

Sygnały Start, Stop i Przełącz: zgodnie z nazwą znajdują się one na początku, na końcu lub w środku opakowania.

Zatrzymywać się: Podczas kodowania długiej pauzy nie da się określić wartości ostatniego bitu w pakiecie, gdyż po pakiecie następuje długa pauza, a ostatni bit zawsze będzie zdefiniowany jako „1”, dlatego dodawany jest sygnał Stop do pakietu, czyli impulsu nie niosącego żadnej informacji.

Początek: W przypadku kodowania dwufazowego wymagany jest sygnał Start, ponieważ rozpoczęcie transmisji pakietu od pauzy nie jest możliwe.

Przełącznik: Jest to bit, który zmienia swoją wartość przy każdym kolejnym naciśnięciu przycisku, stosowany w protokołach RS5, RS5X, RS6 (Philips), gdzie powtarzające się pakiety całkowicie powtarzają dane pakietu informacyjnego. W ten sposób urządzenie odbiorcze może rozróżnić przytrzymanie przycisku od jego ponownego naciśnięcia.

Przykłady:

Sprawdzenie dostępności danych otrzymanych z pilota na podczerwień odbywa się za pomocą funkcji check(). Funkcja ta reaguje na naciśnięcie przycisków pilota IR, jednak wywołana z parametrem true zareaguje także na przytrzymanie przycisków.

Odczytując dane z dowolnego pilota, reagujemy jedynie na naciśnięcia przycisków:

#włączać // Podłącz bibliotekę do pracy z odbiornikiem IR iarduino_IR_RX IR(7); // Zadeklaruj obiekt IR, wskazując pin, do którego podłączony jest odbiornik IR void setup())( Serial.begin(9600); // Rozpocznij przesyłanie danych do monitora portu szeregowego, z szybkością 9600 bps IR.begin (); / / Rozpocznij pracę z odbiornikiem IR) void pętli())( if(IR.check())( // Jeżeli w buforze znajdują się dane odebrane z pilota (naciśnięto przycisk) Serial.println(IR .data, HEX); // Wyświetl kod wciśniętego przycisku Serial.println(IR.length); // Wyświetl liczbę bitów w kodzie ) )

Na tym szkicu funkcja check() jest wywoływana bez argumentów, co oznacza, że ​​reaguje tylko na naciśnięcia przycisków na pilocie na podczerwień.

Odczytując dane z dowolnego pilota, reagujemy na naciśnięcie przycisków:

#włączać // Podłącz bibliotekę do pracy z odbiornikiem IR iarduino_IR_RX IR(6); // Zadeklaruj obiekt IR, wskazując pin, do którego podłączony jest odbiornik IR void setup())( Serial.begin(9600); // Rozpocznij przesyłanie danych do monitora portu szeregowego, z szybkością 9600 bps IR.begin (); / / Rozpocznij pracę z odbiornikiem podczerwieni) void pętli())( if(IR.check(true))( // Jeśli bufor zawiera dane odebrane z pilota (przytrzymanie przycisku) Serial.println (IR.data, HEX); // Wyświetl kod wciśniętego przycisku Serial.println(IR.length); // Wyświetl liczbę bitów w kodzie ) )

Na tym szkicu funkcja check() wywoływana jest z parametrem true, co oznacza, że ​​reaguje zarówno na naciśnięcie, jak i przytrzymanie przycisków pilota na podczerwień.

Odczyt danych z dowolnego pilota, wskazanie jak reagować na które przyciski.

#włączać // Podłącz bibliotekę do pracy z odbiornikiem IR iarduino_IR_RX IR(6); // Zadeklaruj obiekt IR, wskazując pin, do którego podłączony jest odbiornik IR // bool flgKey1 = false; uint32_t codKey1 = 0xFF30CF; // Zdefiniuj flagę kliknięcia i kod przycisku 1. bool flgKey2 = false; uint32_t codKey2 = 0xFF18E7; // Zdefiniuj flagę kliknięcia i kod przycisku 2 bool flgKey3 = false; uint32_t codKey3 = 0xFF7A85; // Zdefiniuj flagę kliknięcia i kod przycisku 3 bool flgKey = false; uint32_t tmrKey = 0; // Zdefiniuj flagę umożliwiającą przesłanie danych do monitora oraz czas ostatniego naciśnięcia przycisku. // void setup())( // Serial.begin(9600); // Rozpocznij przesyłanie danych do monitora portu szeregowego z prędkością 9600 bps IR.begin(); // Rozpocznij pracę z odbiornikiem podczerwieni) // / / / void pętli())( // if(IR.check(true))( // Jeżeli bufor zawiera dane odebrane z pilota (przytrzymaj przycisk), to... if(millis()- 200 > tmrKey)( / / Jeśli od ostatniego otrzymanego polecenia minęło więcej niż 200 ms, to flgKey1=false; // Weź pod uwagę, że przycisk 1 nie jest przytrzymany flgKey2=false; // Weź pod uwagę, że przycisk 2 nie jest przytrzymany flgKey3=false ; // Weź pod uwagę, że przycisk 3 nie jest przytrzymany) tmrKey = millis(); flgKey=true; // Zapisz czas ostatniej odpowiedzi na pilota i zezwól na przesyłanie danych if(IR.data==codKey1)( if( flgKey1)(flgKey=false;) flgKey1=true; )else(flgKey1= false;) // Zabraniamy wyprowadzania danych przycisku 1, gdy jest on przytrzymywany if(IR.data==codKey2)( if(flgKey2)( flgKey=false;) flgKey2=true; )else(flgKey2=false;) // Zabraniamy wyprowadzania przycisku danych 2 podczas jego trzymania if(IR.data==codKey3)( if(flgKey3)(flgKey=false;) flgKey3=true; )else(flgKey3=false;) // Zablokuj wydawanie danych przycisku 3, gdy jest on przytrzymywany if(flgKey)( // Jeśli wyprowadzenie danych jest dozwolone, to... Serial.println(IR.data, HEX); // Wypisz kod naciśniętego przycisku przyciski Serial.println(IR.length); // Wypisz liczbę bitów w kodzie ) // ) // ) //

Na tym szkicu funkcja check() wywoływana jest z parametrem true, co oznacza, że ​​reaguje zarówno na naciśnięcie, jak i przytrzymanie przycisków pilota na podczerwień. Jednak dane są wysyłane do monitora portu szeregowego tylko wtedy, gdy ustawiona jest flaga flgKey, która jest resetowana po przytrzymaniu przycisków o kodach 0xFF30CF, 0xFF18E7 i 0xFF7A85. Okazuje się, że szkic reaguje na 3 przyciski tylko po naciśnięciu, a na pozostałe przyciski zarówno po naciśnięciu, jak i przytrzymaniu.

Odczyt danych tylko z tych pilotów, które działają zgodnie z określonym protokołem:

#włączać // Podłącz bibliotekę do pracy z odbiornikiem IR iarduino_IR_RX IR(5); // Zadeklaruj obiekt IR, wskazując pin, do którego podłączony jest odbiornik IR void setup())( Serial.begin(9600); // Rozpocznij przesyłanie danych do monitora portu szeregowego, z szybkością 9600 bps IR.begin (); / / Rozpocznij pracę z odbiornikiem podczerwieni IR.protocol("Ae`` `|LJ` @@@@BPBp"); // Określ protokół przesyłania danych, na który ma odpowiadać) void pętla())( if( IR.check( true))( // Jeżeli bufor zawiera dane odebrane z pilota (przytrzymany przycisk) Serial.println(IR.data, HEX); // Wyprowadź kod wciśniętego przycisku Serial.println (IR.length); // Wyświetla liczbę bitów w kodzie) )

Na tym szkicu w kodzie setup() wskazany jest protokół przesyłania danych, który rzadko pokrywa się pomiędzy różnymi producentami pilotów na podczerwień. Oznacza to, że funkcja check() w kodzie pętli() będzie reagować tylko na te piloty na podczerwień, które obsługują określony protokół.

Uzyskanie protokołu przesyłania danych i typu kodowania:

#włączać // Podłącz bibliotekę do pracy z odbiornikiem IR iarduino_IR_RX IR(4); // Zadeklaruj obiekt IR, wskazując pin, do którego podłączony jest odbiornik IR void setup())( Serial.begin(9600); // Rozpocznij przesyłanie danych do monitora portu szeregowego, z szybkością 9600 bps IR.begin (); / / Rozpocznij pracę z odbiornikiem IR) void pętli())( if(IR.check())( // Jeżeli w buforze znajdują się dane odebrane z pilota (naciśnięto przycisk) Serial.println(IR .protocol()); / / Wyprowadź ciąg protokołu przesyłania danych ) )

W tym przykładzie opisano, jak uzyskać protokół przesyłania danych dla pilotów na podczerwień. W artykule opisano sposób przesyłania kodów przycisków przy użyciu określonego protokołu.

W ten sposób można utworzyć szkic nadajnika podczerwieni w celu symulacji sygnałów różnych pilotów na podczerwień. W rezultacie urządzenia będą reagować na nadajnik podczerwieni tak, jakby reagowały na własny pilot na podczerwień.

Opis głównych funkcji biblioteki:

Podłączenie biblioteki:

#włączać // Podłącz bibliotekę do pracy z odbiornikiem IR. iarduino_IR_RX IR(PIN#[, ODWRÓĆ]); // Zadeklaruj obiekt IR, wskazując numer pinu, do którego podłączony jest odbiornik podczerwieni. // Drugi parametr typu bool może wskazywać, że dane od odbiornika są odwrócone.

Funkcja rozpocząć();

  • Cel: inicjalizacja pracy z odbiornikiem IR
  • Składnia: rozpocząć();
  • Opcje: Brak.
  • Zwracane wartości: Brak.
  • Uwaga: wywoływane raz w kodzie instalacyjnym.
  • Przykład:
IR.begin(); // Rozpocznij pracę z odbiornikiem podczerwieni

Kontrola funkcji();

  • Cel: Sprawdzenie dostępności danych otrzymanych z pilota.
  • Składnia: check([ HOLD ]);
  • Opcje:
    • HOLD - parametr opcjonalny typu bool - wskazujący, że należy reagować na przytrzymanie przycisków pilota.
  • Zwracane wartości: bool - czy dane z pilota zostały przyjęte czy nie.
  • Uwaga: Jeżeli funkcja zostanie wywołana bez parametru lub ma wartość false, to funkcja będzie reagowała na sygnały z pilota dopiero po naciśnięciu jego przycisków, a jeśli podasz true, funkcja będzie reagować zarówno na naciśnięcie, jak i przytrzymanie klawisza przyciski pilota.
  • Przykład:
if(IR.check())( ... ;) // Jeśli dane zostaną odebrane z pilota, po naciśnięciu jego przycisku if(IR.check(true))( ... ;) // Jeśli dane zostaną odbierane z pilota, przytrzymując przycisk

Protokół funkcji();

  • Cel: Odbiór, ustawienie lub zresetowanie protokołu przesyłania danych.
  • Składnia: protokół([ PARAMETR ]);
  • Pobieranie protokołu: Jeśli funkcja zostanie wywołana bez parametru, zwróci ciąg 25 znaków + znak końca linii. Bity tej linii niosą informację o rodzaju protokołu transmisji danych pilota, którego dane zostały odebrane jako ostatnie. Lini tej można użyć do ustawienia protokołu dla nadajnika lub odbiornika podczerwieni IR (patrz poniżej).
  • Ustawienie protokołu: Jeżeli funkcja zostanie wywołana z parametrem w postaci ciągu 25 znaków protokołu + znak końca linii, to po tym funkcja chek() będzie reagować tylko na piloty, które spełniają podane dane protokół przekazania.
  • Reset protokołu: Jeżeli funkcja zostanie wywołana z parametrem IR_CLEAN, to funkcja chek() ponownie zareaguje na sygnały z dowolnego pilota.
  • Odbiór parametrów protokołu: Jeżeli funkcja zostanie wywołana z parametrem int od 0 do 17, to zwróci nie ciąg protokołu, ale wartość int z jednym z parametrów protokołu przesyłania danych konsoli, której dane zostały odebrane jako ostatnie :
    • 0 - typ kodowania:
      • IR_UNDEFINED - rodzaj kodowania nieokreślony;
      • IR_PAUSE_LENGTH - kodowanie długiej pauzy;
      • IR_PULSE_LENGTH - kodowanie długim (szerokościowym) impulsem (PWM);
      • IR_BIPHASIC - kodowanie dwufazowe;
      • IR_BIPHASIC_INV - kodowanie dwufazowe z odwróconymi bitami;
      • IR_NRC - pakiety powtórzone są identyczne, ale pierwszy i ostatni pakiet są specjalne;
      • IR_RS5 - kodowanie PHILIPS z bitem przełączającym;
      • IR_RS5X - kodowanie PHILIPS z bitem przełączającym;
      • IR_RS6 – kodowanie PHILIPS z bitem przełączającym.
    • 1 - częstotliwość nośna transmisji danych (w kHz);
    • 2 - deklarowana liczba bitów informacyjnych w 1 pakiecie;
    • 3 - zadeklarowana liczba bitów informacyjnych w pakiecie powtarzalnym;
    • 4 - czas trwania przerwy pomiędzy pakietami (w ms);
    • 5 - czas trwania impulsu w bicie startu (w μs);
    • 6 - czas trwania przerwy w bicie startu (w μs);
    • 7 - czas trwania impulsu w bicie stopu (w μs);
    • 8 - czas trwania przerwy w bicie stopu (w μs);
    • 9 - czas trwania impulsu w bicie restartu lub przełączania (w μs);
    • 10 - czas trwania pauzy w bicie restartu lub przełączania (w μs);
    • 11 - pozycja bitu restartu lub przełączania w pakiecie (nr bitu);
    • 12 - maksymalny czas trwania impulsu w bitach informacyjnych (w μs);
    • 13 - minimalny czas trwania impulsu w bitach informacyjnych (w μs);
    • 14 - maksymalny czas trwania przerwy w bitach informacyjnych (w μs);
    • 15 - minimalny czas trwania przerwy w bitach informacyjnych (w μs);
    • 16 - flaga obecności bitu startu (prawda/fałsz);
    • 17 - flaga obecności bitu stopu (prawda/fałsz);
    • 18 - flaga obecności bitu restartu lub przełączania (true/false);
    • 19 - typ pakietu powtórzeń (0-brak, 1-z odwróconymi bitami, 2-identyczny z informacyjnym, 3-unikalny);
  • Zwracane wartości: Zależy od obecności i typu parametru.
  • Uwaga: Jeżeli wcześniej ustawiono protokół, to próba pobrania protokołu, czyli parametrów protokołu, zwróci wartości wcześniej ustawionego protokołu, a nie protokołu przesyłania danych konsoli, z której dane zostały odebrane jako ostatnie.
  • Przykład:
IR.protocol("AeQQV~zK]Kp^KJp[@@@@@@@Bp"); // Ustaw protokół. Teraz odbiornik będzie odbierał dane wyłącznie z pilotów ELENBERG TV. Protokół IR(IR_CLEAN); // Zresetuj wcześniej zainstalowany protokół. Teraz odbiornik ponownie zareaguje na dowolny pilot. if(IR.check())( Serial.println(IR.protocol()); ) // Pobierz protokół. Gdy tylko odbiornik odbierze dane, na monitorze zostanie wyświetlony ciąg 25 znaków protokołu. if(IR.check())( Serial.println(IR.protokol(12)); ) // Pobierz jeden z parametrów protokołu. Gdy tylko odbiornik odbierze dane, monitor wyświetli maksymalny czas trwania impulsu bitu informacyjnego w mikrosekundach.

Zmienna danych

  • Wartość: Zwraca kod przycisku otrzymany z pilota;
  • Typ danych: uint32_t.
if(IR.check())( Serial.println(IR.data); ) // Wydrukuj kod wciśniętego przycisku, jeśli został zaakceptowany

długość zmienna

  • Wartość: Zwraca rozmiar kodu przycisku w bitach;
  • Typ danych: uint8_t.
if(IR.check())( Serial.println(IR.length); ) // Wydrukuj rozmiar kodu wciśniętego przycisku, jeśli został zaakceptowany

zmienna naciśnięcia klawisza

  • Znaczenie: Zwraca flagę wskazującą, że przycisk pilota jest wciśnięty, a nie przytrzymany;
  • Typ danych: bool.
if(IR.check(true))( if(IR.key_press)(Serial.println("PRESS");) // Tekst zostanie wydrukowany 1 raz po naciśnięciu przycisku w innym przypadku (Serial.println("HOLD " );) // Tekst będzie wyświetlany w sposób ciągły, dopóki przycisk będzie wciśnięty)

Aplikacja:

  • sterowanie robotami, modelami ruchomymi, latającymi i pływającymi, sprzętem gospodarstwa domowego i specjalistycznym.
  • włączanie/wyłączanie oświetlenia, ogrzewania, wentylacji, podlewania itp.
  • otwieranie/zamykanie drzwi, rolet, okien dachowych, nawiewników itp.

Odbiornik podczerwieni jest standardowym urządzeniem podłączanym do portu COM (RS-232) i służy do zdalnego sterowania robotem.

Jeden z możliwe schematy Odbiornik podczerwieni. Każdy odbiornik podczerwieni 5 V stosowany w sprzęcie gospodarstwa domowego (telewizory) będzie odpowiedni dla odbiornika podczerwieni. Na przykład: TSOP1836, IS1U60L, GP1U52X, SFH506-36 lub nasz domowy TK1833. Stabilizator napięcia KREN5A jest niezbędny do zasilania odbiornika IR napięciem 5 V, ponieważ Napięcie 12 V jest dostarczane z 7. styku portu COM. Rezystor można wybrać z zakresu 3-5 kOhm, kondensator 4,7-10 μF. Dowolna dioda małej mocy.

W powyższym obwodzie sygnał wyjściowy podawany jest na 1 styk Port COM(DCD). Styk ten nie jest używany przez standardową mysz do portu COM, więc jeśli nie masz wystarczającej ilości wolnego portu COM, ten obwód może być używany równolegle z myszą (ale nie z modemem)! Sygnał wyjściowy można wysłać nie tylko na DCD, ale także na inne piny, np. CTS czy DSR. Wszystkie te parametry można ustawić w programie pracującym w odbiorniku IR. Istnieje kilka opcji programu, najczęstszą jest WinLIRC. Mogę również polecić skorzystanie z programu Girder.

Pinout i wygląd głównych elementów obwodu

Od lewej do prawej - dwa typy 5-woltowych odbiorników podczerwieni i mikroukład stabilizatora napięcia KREN5A.

Pinout portu COM

Pinout i opis styków portu COM (25 pinów).

Odbiornik podczerwieni odgrywa ważną rolę w naszym codziennym życiu. Za pomocą tego mikroukładu jesteśmy w stanie sterować nowoczesnymi urządzeniami gospodarstwa domowego, telewizorem, wieżą stereo, radiem samochodowym i klimatyzacją. Pozwala nam to zrobić pilot zdalnego sterowania (RC), przyjrzyjmy się bliżej jego działaniu, obwodowi, przeznaczeniu i testowaniu. W artykule jak samodzielnie sprawdzić odbiornik IR.

Co to jest odbiornik podczerwieni i jak działa?

Jest to układ scalony, jego bezpośrednim i głównym zadaniem jest odbiór i przetwarzanie sygnału podczerwieni, czyli tego, co emituje pilot. Sygnał ten służy do sterowania urządzeniem.

Ten mikroukład opiera się na fotodiodzie pinowej, specjalnym elemencie, ze złączem p-n i obszarem między nimi, analogiem podstawy tranzystora, jak w kanapce, więc tutaj jest skrót pin, unikalny element w jego swoja droga.

Włącza się odwrotnie i nie przechodzi Elektryczność. Sygnał podczerwieni wchodzi do obszaru i i przewodzi prąd, przekształcając go w napięcie.


Kolejne etapy to filtr całkujący, detektor amplitudy, a na mecie czekają na nie tranzystory wyjściowe.

Z reguły nie ma szczególnego sensu kupowanie nowego odbiornika podczerwieni w sklepie, ponieważ można go łatwo odlutować z różnych płytek elektronicznych. Jeśli montujesz urządzenie do sprawdzania pilota ze złomu, nie znając dokładnego oznaczenia urządzenia, możesz samodzielnie określić piny.


Będziemy potrzebować multimetru, zasilacza lub kilku akumulatorów, przewodów łączących, montaż można wykonać wiszący.

Ma trzy wyjścia, jedno to GND, plus 5 woltów jest dostarczane do drugiego, a sygnał wyjściowy wychodzi z trzeciego. Podłączamy zasilanie odpowiednio do pierwszej i drugiej nogi i usuwamy napięcie z trzeciej.


Jest w stanie oczekiwania na sygnał z pilota, a na multimetrze widzimy pięć woltów. Zaczynamy przełączać kanały lub naciskać inne przyciski, kierując pilota w jego stronę.

Jeśli działa, napięcie spadnie o około 0,5-1 wolta. Jeśli wszystko dzieje się tak jak tu napisano, urządzenie działa, w przeciwnym razie element jest uszkodzony.

Jak określić pinout odbiornika podczerwieni

Na przykład wziąłem zupełnie nieznany mi mikroukład, który leżał w pudełku z elementami, „minus” został określony przez punkt znajdujący się z tyłu elementu, „plus” został określony eksperymentalnie za pomocą rezystora. Niczego nie ryzykowałem, bo początkowo był robotnikiem, nie było nadziei.

Aby określić pinout odbiornika podczerwieni, jeśli jest on wlutowany w płytkę, spójrz na niego, mogą znajdować się oznaczenia pinów. Jeśli nic tam nie jest napisane, sprawdź sam element, poszukaj jego nazwy, a następnie poszukaj w Internecie cech i danych, jest to bardzo kompetentny sposób działania. Postępuj zgodnie z instrukcją, jak samodzielnie sprawdzić odbiornik IR.

schemat z magazynu „Młody Technik”.

Ciekawy kierunek w elektronice radiowej, który uzupełnił tę elektronikę o nowe zalety światła „niewidzialnego” (światło podczerwone). Proponuję więc układ prostego (na przykład) odbiornika i nadajnika wykorzystującego promienie podczerwone. Podstawa: wzmacniacz operacyjny k140ud7 (mam tu ud708), emitujące i odbierające fotodiody IR, ULF (k548un1a (b,c - indeksy) - dla dwóch kanałów) (chociaż gdzie „włączyć” drugi kanał wzmacniacza to do decyzja należy do Ciebie - obwód nadajnika przeznaczony jest dla jednego kanału, czyli mono). Zasilanie urządzenia: Generalnie polecam z przyzwoitą stabilizacją prądu (w przeciwnym razie „elegancki” zasilacz drażni tło „sieci”). Metoda: sygnał nadajnika o modulowanej amplitudzie jest wzmacniany przez odbiornik 1000 razy.

Jak działa urządzenie. Proponuję obejrzeć krótki film testujący pilota na podczerwień „na ucho”. Możesz szybko sprawdzić funkcjonalność i siłę sygnału za pomocą dźwięku.

Obwód odbiornika podczerwieni i nadajnika podczerwieni

Podczas montażu kondensatory C1 i C2 powinny znajdować się jak najbliżej wzmacniacza! Do wyjścia można podłączyć słuchawki o wysokiej impedancji (niskoomowe wymagają osobnego ULF). Fotodioda FD7 (mam FD5.. jakiś „tablet” z soczewką skupiającą - nie pamiętam dokładnie nazwy); Rezystory 0,125 W: R1 i R4 ustawiają współczynnik wzmocnienia sygnału 1000 razy. Odbiornik jest łatwy w konfiguracji: fotodioda jest kierowana na źródło promieniowania podczerwonego, np. lampę 220V-50 Hz: żarnik będzie zasilany częstotliwością 50 Hz lub pilot do telewizora (wideo itp.). Czułość odbiornika jest wysoka: normalnie odbiera sygnały odbite od ścian.

Nadajnik posiada diody LED IR AL107a: wystarczy każda. R2 2 kOhm, C1 1000μFx25V, C2 200μFx25V, dowolny transformator. Chociaż całkiem możliwe jest obejście się bez transformatora - doprowadź wzmocniony sygnał audio do kondensatora C2.

Schemat urządzenia

Niedawno z konieczności złożyłem odbiornik IR do testowania pilotów IR (telewizory i DVD). Po sfinalizowaniu obwodu zainstalowałem mono ULF TDA7056. Wzmacniacz ten ma dobrą charakterystykę wzmocnienia wynoszącą około 42 dB; pracuje w zakresie napięć od 3V do 18V, co pozwala na pracę odbiornika IR nawet przy napięciu 3V; Zakres wzmocnienia TDA od 20 Hz do 20 kHz (UD708 przechodzi do 800 kHz) jest wystarczający, aby używać amplitunera jako akompaniamentu audio; posiada zabezpieczenie przeciwzwarciowe na wszystkich „nogach”; ochrona przed „przegrzaniem”; słaby współczynnik samozakłóceń. Ogólnie podobał mi się ten kompaktowy i niezawodny ULF (nasza cena to 90 rubli).
Jest z nim. Rysunek 1 pokazuje przykład zastosowania wzmacniacza.


Zdjęcie TDA7056



Ryc.1. Obwód wzmacniacza z TDA7056

W rezultacie powstał odbiornik podczerwieni, rys. 2, który pracuje w zakresie napięcia od 3 V do 12 V. Do zasilania odbiornika zalecam używanie baterii lub akumulatorów. W przypadku korzystania z zasilacza wymagane jest stabilizowane źródło, w przeciwnym razie słychać będzie tło sieci 50 Hz, co wzmacnia UD708. Jeśli urządzenie znajduje się w pobliżu źródła napięcia sieciowego lub emisji radiowych, mogą wystąpić zakłócenia. Aby zmniejszyć zakłócenia, konieczne jest włączenie do obwodu kondensatora C5. TDA7056 jest przeznaczony do głośnika wyjściowego 16 omów, niestety nie mam takiego. Musiałem użyć 4-omowego 3-watowego głośnika, który został podłączony przez 1-watowy rezystor 50 omów. Zbyt mała rezystancja cewki głośnika powoduje nadmierną moc i przegrzewanie wzmacniacza. Ogólnie rzecz biorąc, dzięki dodatkowemu rezystorowi ULF nie nagrzewa się, ale zapewnia całkiem akceptowalne wzmocnienie.



Ryc.2. Obwód odbiornika podczerwieni z ULF



Zdjęcie odbiornika podczerwieni

W tej lekcji przyjrzymy się podłączeniu odbiornika podczerwieni do Arduino. Podpowiemy, jaką bibliotekę zastosować w odbiorniku IR, zademonstrujemy szkic do testowania działania odbiornika podczerwieni z pilota oraz przeanalizujemy polecenia w C++ w celu odebrania sygnału sterującego.

Urządzenie odbiorcze podczerwieni. Zasada działania

Odebrane odbiorniki promieniowania podczerwonego szerokie zastosowanie w technice elektronicznej, ze względu na przystępną cenę, prostotę i łatwość obsługi. Urządzenia te pozwalają na sterowanie urządzeniami za pomocą pilota i można je znaleźć w niemal każdym typie sprzętu.

Zasada działania odbiornika podczerwieni. Przetwarzanie sygnału z pilota

Odbiornik podczerwieni w Arduino jest w stanie odbierać i przetwarzać sygnał podczerwieni w postaci impulsów o określonym czasie trwania i częstotliwości. Zazwyczaj odbiornik podczerwieni ma trzy nogi i składa się z następujących elementów: fotodiody PIN, wzmacniacza, filtra pasmowego, detektora amplitudy, filtra całkującego i tranzystora wyjściowego.

Pod wpływem promieniowania podczerwonego w fotodiodzie znajduje się pomiędzy P I N regiony utworzyły dodatkowy obszar półprzewodników ( I-region), prąd zaczyna płynąć. Sygnał trafia do wzmacniacza, a następnie do filtra pasmowo-przepustowego, który chroni odbiornik przed zakłóceniami. Zakłócenia mogą być spowodowane przez dowolne urządzenie gospodarstwa domowego.

Filtr pasmowy jest ustawiony na stałą częstotliwość: 30; 33; 36; 38; 40 i 56 kiloherców. Aby sygnał z pilota został odebrany przez odbiornik IR Arduino, pilot musi pracować na tej samej częstotliwości, na jaką ustawiony jest filtr w odbiorniku IR. Za filtrem sygnał trafia do detektora amplitudy, który integruje filtr i tranzystor wyjściowy.

Jak podłączyć odbiornik podczerwieni do Arduino

Obudowy odbiorników podczerwieni zawierają filtr optyczny chroniący urządzenie przed zewnętrznymi polami elektromagnetycznymi, mają specjalny kształt, który skupia odbierane promieniowanie na fotodiodzie. Aby podłączyć odbiornik podczerwieni do Arduino UNO Wykorzystują trzy nóżki podłączane do portów - GND, 5V i A0.

Do tej lekcji będziemy potrzebować następujących szczegółów:

  • płytka Arduino Uno;
  • Deska do pieczenia chleba;
  • Kabel USB;
  • Odbiornik podczerwieni;
  • Pilot;
  • 1 dioda;
  • 1 rezystor 220 omów;
  • Przewody „folder-folder” i „folder-żeński”.

Schemat podłączenia odbiornika IR do portu analogowego Arduino

Podłącz odbiornik IR zgodnie ze schematem oraz diody LED do pinów 12 i 13 i wgraj szkic.

#włączać // podłącz bibliotekę dla odbiornika podczerwieni IRrecv irrecv(A0); // wskazuje pin, do którego podłączony jest odbiornik podczerwieni wyniki decode_results; void setup () // konfiguracja procedury ( irrecv.enableIRIn (); // zacznij odbierać sygnał podczerwieni tryb pin(13, WYJŚCIE); // pin 13 będzie wyjściem tryb pin(12, WYJŚCIE); // pin 12 będzie wyjściem tryb pin(A0,WEJŚCIE); // pin A0 będzie wejściem (eng. „input”) Serial.begin(9600); // podłącz monitor portu) pusta pętla () // pętla proceduralna ( if (irrecv.decode (&results)) // jeśli dane dotarły, wykonaj polecenia(Serial.println(wyniki.wartość); // wyślij odebrane dane do portu //włączanie i wyłączanie diod LED w zależności od odbieranego sygnału if (results.value == 16754775) ( digitalWrite (13, WYSOKI); ) if (results.value == 16769055) ( digitalWrite (13, LOW); ) if (results.value == 16718055) ( digitalWrite (12, LOW); WYSOKI); ) if (results.value == 16724175) ( digitalWrite (12, LOW); ) irrecv.resume (); // odbierz następny sygnał na odbiorniku IR } }

Objaśnienia do kodu:

  1. Biblioteka IRremote.h zawiera zestaw poleceń i pozwala na uproszczenie szkicu;
  2. Instrukcja decode_results przypisuje nazwę zmiennej wyniki do sygnałów odbieranych z pilota.

Na co zwrócić uwagę:

  1. Aby móc kontrolować włączenie diody LED, musisz włączyć monitor portu i dowiedzieć się, jaki sygnał wysyła ten lub inny przycisk na pilocie;
  2. Uzyskane dane należy wprowadzić do szkicu. Zmień ośmiocyfrowy kod na szkicu po podwójnym znaku równości if (results.value == 16769055) na własny.

Odbiornik podczerwieni, działanie i testowanie

Odbiorniki podczerwieni promieniowania podczerwonego stały się powszechne w telewizorach, sprzęcie gospodarstwa domowego, sprzęcie medycznym i innym sprzęcie. Można je spotkać niemal w każdym typie sprzętu elektronicznego; steruje się nimi za pomocą pilota.


działanie i schemat blokowy odbiornika podczerwieni

Zazwyczaj mikrozespół odbiornika podczerwieni ma trzy lub więcej styków. Jeden jest wspólny i jest podłączony do minusa zasilania GND, drugi na plus Vs, a trzeci to wyjście odebranego sygnału Na zewnątrz.

W odróżnieniu od standardowej fotodiody podczerwieni, odbiornik podczerwieni może nie tylko odbierać, ale także przetwarzać sygnał podczerwieni w postaci impulsów o stałej częstotliwości i określonym czasie trwania. Chroni to urządzenie przed fałszywe alarmy, od promieniowania tła i zakłóceń pochodzących od innych urządzeń gospodarstwa domowego emitujących w zakresie podczerwieni. Świetlówki energooszczędne z elektronicznym obwodem statecznika mogą powodować dość silne zakłócenia dla odbiornika.

Mikrozespół typowego odbiornika promieniowania podczerwonego obejmuje: fotodiodę PIN, wzmacniacz zmienny, filtr pasmowoprzepustowy, detektor amplitudy, filtr całkujący, element progowy, tranzystor wyjściowy

Fotodioda PIN należy do rodziny fotodiod, w których pomiędzy obszarami n i p tworzony jest kolejny obszar własnego półprzewodnika (i-region) - jest to zasadniczo warstwa czystego półprzewodnika bez zanieczyszczeń. To właśnie nadaje diodzie PIN szczególne właściwości. W stanie normalnym przez fotodiodę PIN nie przepływa żaden prąd, ponieważ jest ona podłączona do obwodu w przeciwnym kierunku. Kiedy w obszarze i pod wpływem zewnętrznego promieniowania podczerwonego powstają pary elektron-dziura, przez diodę zaczyna płynąć prąd. Który następnie trafia do wzmacniacza zmiennego.

Następnie sygnał ze wzmacniacza trafia do filtra środkowoprzepustowego, który chroni przed zakłóceniami w zakresie IR. Filtr pasmowy jest ustawiony na ściśle stałą częstotliwość. Zwykle stosuje się filtry ustawione na częstotliwość 30; 33; 36; 36,7; 38; 40; 56 i 455 kiloherców. Aby sygnał emitowany przez pilota został odebrany przez odbiornik podczerwieni, musi być modulowany z tą samą częstotliwością, na jaką skonfigurowany jest filtr.

Za filtrem sygnał trafia do detektora amplitudy i filtra całkującego. To ostatnie jest niezbędne do blokowania krótkich pojedynczych impulsów sygnału, które mogą powstać w wyniku zakłóceń. Następnie sygnał trafia do urządzenia progowego i tranzystora wyjściowego. Aby zapewnić stabilną pracę, wzmocnienie wzmacniacza jest regulowane przez system automatycznej kontroli wzmocnienia (AGC).

Obudowy modułów IR posiadają specjalny kształt ułatwiający skupienie odbieranego promieniowania na wrażliwej powierzchni fotokomórki. Materiał obudowy przepuszcza promieniowanie o ściśle określonej długości fali od 830 do 1100 nm. Zatem w urządzeniu zastosowano filtr optyczny. Aby chronić elementy wewnętrzne przed wpływami zewnętrznymi. pól stosuje się ekran elektrostatyczny.

Sprawdzanie odbiornika podczerwieni

Ponieważ odbiornik sygnału podczerwieni jest wyspecjalizowanym mikrozespołem, aby zapewnić jego działanie, konieczne jest przyłożenie do mikroukładu napięcia zasilania, zwykle 5 woltów. Pobór prądu będzie wynosić około 0,4 - 1,5 mA.

Jeżeli odbiornik nie odbiera sygnału, to w przerwach pomiędzy seriami impulsów napięcie na jego wyjściu praktycznie odpowiada napięciu zasilania. To jest pomiędzy GND a pin wyjściowy sygnału można zmierzyć za pomocą dowolnego multimetru cyfrowego. Zaleca się również pomiar prądu pobieranego przez mikroukład. Jeśli przekracza standard (patrz książka referencyjna), najprawdopodobniej mikroukład jest uszkodzony.

Dlatego przed rozpoczęciem testu modułu należy określić układ pinów jego wyjść. Zwykle informacje te można łatwo znaleźć w naszym megakatalogu arkuszy danych elektroniki. Można go pobrać klikając na obrazek po prawej stronie.

Sprawdźmy to na chipie TSOP31236; jego układ pinów odpowiada powyższemu rysunkowi. Podłączamy zacisk dodatni domowego zasilacza do zacisku dodatniego modułu IR (Vs), a zacisk ujemny do zacisku GND. I podłączamy trzeci pin OUT do dodatniej sondy multimetru. Podłączamy sondę ujemną do wspólnego przewodu GND. Przełącz multimetr w tryb napięcia stałego przy 20 V.

Gdy tylko pakiety impulsów podczerwieni zaczną docierać do fotodiody mikrozespołu IR, napięcie na jej wyjściu spadnie o kilkaset miliwoltów. W takim przypadku będzie wyraźnie widoczne, jak wartość na ekranie multimetru spada z 5,03 wolta do 4,57. Jeśli zwolnimy przycisk pilota, na ekranie ponownie wyświetli się 5 woltów.

Jak widać odbiornik promieniowania IR prawidłowo reaguje na sygnał z pilota. Oznacza to, że moduł jest OK. W podobny sposób możesz sprawdzić dowolne moduły w zintegrowanym projekcie.

Pilot na podczerwień jest jednym z najbardziej popularnych proste sposoby interakcja z urządzeniami elektronicznymi. Tak więc prawie w każdym domu znajduje się kilka takich urządzeń: telewizor, wieża stereo, odtwarzacz wideo, klimatyzator. Ale najciekawszym zastosowaniem pilota na podczerwień jest zdalne sterowanie robotem. Właściwie w tej lekcji postaramy się zaimplementować tę metodę sterowania za pomocą popularnego kontrolera Arduino Uno.

1. Pilot na podczerwień

Czego potrzeba, aby nauczyć robota posłuszeństwa pilotowi na podczerwień (IR)? Po pierwsze potrzebujemy samego pilota. Można używać zwykłego pilota do telewizora lub kupić miniaturowy pilot do radia samochodowego. Tego typu piloty są często używane do sterowania robotami. Pilot posiada 10 przycisków cyfrowych i 11 przycisków do manipulowania muzyką: głośność, przewijanie do tyłu, odtwarzanie, zatrzymywanie itp. Więcej niż wystarczająco dla naszych celów.

2. Czujnik podczerwieni

Po drugie, aby odebrać sygnał z pilota potrzebny jest specjalny czujnik IR. Ogólnie rzecz biorąc, promieniowanie podczerwone możemy wykryć za pomocą konwencjonalnej fotodiody/fototranzystora, ale w przeciwieństwie do tego nasz czujnik podczerwieni odbiera sygnał podczerwieni tylko o częstotliwości 38 kHz (czasami 40 kHz). Ta właściwość pozwala czujnikowi ignorować wiele obcych szumów świetlnych pochodzących z lamp oświetleniowych i słońca. W tym samouczku użyjemy popularnego czujnika podczerwieni VS1838B, który ma następujące cechy:
  • częstotliwość nośna: 38 kHz;
  • napięcie zasilania: 2,7 - 5,5 V;
  • pobór prądu: 50 µA.
Można zastosować inne czujniki np.: TSOP4838, TSOP1736, SFH506.

3. Połączenie

Czujnik ma trzy przewody (trzy nóżki). Jeśli spojrzeć na czujnik od strony odbiornika sygnału IR, jak pokazano na rysunku,
  • następnie po lewej stronie będzie wyjście do sterownika,
  • w środku - ujemny styk mocy (masa),
  • a po prawej - dodatni styk zasilania (2,7 - 5,5 V).
Schemat ideowy podłączenia Wygląd układu

4. Program

Po podłączeniu czujnika IR napiszemy program dla Arduino Uno. W tym celu skorzystamy ze standardowej biblioteki IRzdalny, który został zaprojektowany specjalnie w celu uproszczenia pracy przy odbiorze i transmisji sygnałów IR. Korzystając z tej biblioteki otrzymamy polecenia z pilota i na początek po prostu wyświetlimy je w oknie monitora portu szeregowego. Ten program będzie dla nas przydatny, aby zrozumieć, jaki kod daje każdy przycisk. #include „IRremote.h” IRrecv irrecv(2); // wskazuje pin, do którego podłączony jest odbiornik decode_resultsresults; void setup() ( Serial.begin(9600); // ustaw prędkość portu COM irrecv.enableIRIn(); // rozpocznij odbieranie ) void pętli() ( if (irrecv.decode(&results)) ( // if dane dotarły Serial .println(results.value, HEX); // wydrukuj dane irrecv.resume(); // zaakceptuj następujące polecenie ) ) Załaduj program do Arduino. Następnie staramy się odbierać polecenia z pilota. Otwórz monitor portu szeregowego (Ctrl+Shift+M), podnieś pilota i skieruj go na czujnik. Naciskając różne przyciski, obserwujemy w oknie monitora kody odpowiadające tym przyciskom. Problem z ładowaniem programu W niektórych przypadkach przy próbie wczytania programu do sterownika może pojawić się błąd: TDK2 nie został zadeklarowany w swoim zakresie Aby to naprawić, po prostu usuń dwa pliki z folderu biblioteki. Przejdźmy do eksploratora. Przejdź do folderu, w którym zainstalowana jest aplikacja Arduino IDE (najprawdopodobniej jest to „C:\Program Files (x86)\Arduino”). Następnie do folderu biblioteki: …\Arduino\biblioteki\RobotIRremote i usuń pliki: IRremoteTools.cpp I IRremoteTools.h. Następnie ponownie uruchamiamy Arduino IDE i ponownie próbujemy załadować program do kontrolera.

5. Steruj diodą LED za pomocą pilota na podczerwień

Skoro już wiemy, które kody odpowiadają przyciskom pilota, staramy się zaprogramować kontroler tak, aby włączał i wyłączał diodę LED po naciśnięciu przycisków głośności. W tym celu potrzebujemy kodów (mogą się różnić w zależności od pilota):
  • FFA857 - zwiększ głośność;
  • FFE01F - zmniejsz głośność.
Jako diodę LED wykorzystujemy diodę wbudowaną na pinie nr 13, więc schemat podłączenia pozostanie taki sam. Zatem program: #include "IRremote.h" IRrecv irrecv(2); // wskazuje pin, do którego podłączony jest odbiornik decode_resultsresults; void setup() ( irrecv.enableIRIn(); // rozpocznij odbieranie ) void pętli() ( if (irrecv.decode(&results)) ( // jeśli dane dotarły, przełącz (results.value) ( ​​​​case 0xFFA857: digitalWrite( 13, WYSOKI); przerwa; przypadek 0xFFE01F: digitalWrite(13, NISKI); przerwa; // zaakceptuj następujące polecenie ) ) Pobierz do Arduino i przetestuj. Kliknij tom+— zapala się dioda LED. Kliknij tom-- wychodzi. Teraz, wiedząc, jak to wszystko działa, możesz zamiast diody LED sterować silnikami robota lub innymi domowymi urządzeniami mikroelektronicznymi!