Uniwersalny pilot do Arduino. Arduino Uno. Podłączenie odbiornika podczerwieni Programowanie pilota za pomocą Arduino

Pilot na podczerwień to jeden z najprostszych sposobów interakcji 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 na 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 „C:\Program Files (x86)\Arduino”). Następnie do folderu biblioteki: …\Arduino\biblioteki\RobotIRremote i usuń pliki: IRremoteTools.cpp I IRremoteTools.h. Następnie restartujemy 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. Do tego potrzebne są nam kody (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, HIGH); break; case 0xFFE01F: digitalWrite(13, LOW); break; ) irrecv.resume(); // zaakceptuj następujące polecenie ) ) Prześlij 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!

W Internecie jest wiele artykułów na temat tego, jak zrobić własny pilot do telewizora za pomocą Arduino, ale ja potrzebowałem uniwersalnego pilota do sterowania moim telewizorem i odtwarzaczem multimedialnym. Główną zaletą mojego uniwersalnego pilota jest to, że przyciski w aplikacji na telefon z Androidem są dwufunkcyjne, ale spójrzcie na film.



Pilot jest bardzo wygodny, ponieważ do sterowania telewizorem i odtwarzaczem służą prawie te same przyciski na ekranie. Jedna różnica polega na tym, że „ AV„w trybie sterowania telewizorem zmienia się w przycisk” " (stop) przy przejściu do trybu sterowania odtwarzaczem. Zdjęcia przedstawiają dwa tryby, po lewej stronie tryb sterowania telewizorem, po prawej tryb sterowania odtwarzaczem.

Cóż, teraz opowiem ci trochę o stworzeniu takiego pilota. Do urządzenia użyłem pilota do telewizora ERGO oraz pilota do odtwarzacza multimedialnego DUNE HD TV101W.

Do odbioru danych z pilotów użyłem czujnika podczerwieni TSOP1138 (analogicznie do TSOP4838) o częstotliwości roboczej 38 kHz i podłączyłem go do płytki Arduino według schematu:

Szkic ten nie będzie potrzebny do określenia kodowania transmisji danych i odczytania kodu przycisków pilota.

Na szkicu w linii int RECV_PIN = 11; podaj nasz numer PIN 4

Po przesłaniu szkicu otwórz „monitor portu” i naciskając przyciski pilota spójrz na otrzymane dane.

Na zdjęciu przykładowe skanowanie przycisku zasilania z pilota telewizora i pilota odtwarzacza. Teraz tworzymy tabelę kodów przycisków.

U mnie wyszło tak jak na zdjęciu powyżej. Pod napisem telewizja kody przycisków pilota telewizora; pod napisem Gracz- kody z pilota odtwarzacza multimedialnego.

Teraz odłączamy nasz odbiornik sygnału podczerwieni od płytki Arduino i podłączamy do niego moduł Bluetooth HC-05 oraz diodę podczerwieni zgodnie ze schematem na zdjęciu.

Następnie przechodzimy bezpośrednio do szkicu.

Naszkicować

#włączać IRwyślij irs; int y = 1; void setup() ( Serial.begin(9600); ) void pętli() ( if (Serial.available() > 0) ( int x = Serial.read(); if (x == 49) ( y = 1; ) if (x == 50) ( y = 2; ) if (y == 1) ( // kody przycisków pilota telewizora if (x == 97) ( irsend.sendNEC(0x807F08F7, 32); opóźnienie(40 ); ) if (x == 98) ( irsend.sendNEC(0x807FA857, 32); opóźnienie(40); ) if (x == 99) ( irsend.sendNEC(0x807F708F, 32); opóźnienie(40); ) jeśli (x == 100) ( irsend.sendNEC(0x807FF00F, 32); opóźnienie(40); ) if (x == 101) ( irsend.sendNEC(0x807F30CF, 32); opóźnienie(40); ) if (x == 102) ( irsend.sendNEC(0x807FB04F, 32); opóźnienie(40); ) if (x == 103) ( irsend.sendNEC(0x807F9867, 32); opóźnienie(40); ) if (x == 104) ( irsend .sendNEC(0x807F58A7, 32); opóźnienie(40); ) if (x == 105) ( irsend.sendNEC(0x807FD827, 32); opóźnienie(40); ) if (x == 106) ( irsend.sendNEC(0x807F38C7 , 32); opóźnienie(40); ) if (x == 107) ( irsend.sendNEC(0x807F48B7, 32); opóźnienie(40); ) if (x == 108) ( irsend.sendNEC(0x807FB847, 32); opóźnienie(40); ) if (x == 109) ( irsend.sendNEC(0x807F6897, 32); opóźnienie(40); ) ) if (y == 2) ( //kody przycisków pilota odtwarzacza multimedialnego if (x == 97) ( irsend.sendNEC(0xFDC23D, 32); opóźnienie(40); ) if (x == 98) ( irsend. sendNEC(0xFDE01F, 32); opóźnienie(40); ) if (x == 99) ( irsend.sendNEC(0xFD18E7, 32); opóźnienie(40); ) if (x == 100) ( irsend.sendNEC (0xFDE817, 32); opóźnienie(40); ) if (x == 101) ( irsend.sendNEC(0xFDA857, 32); opóźnienie(40); ) if (x == 102) ( irsend.sendNEC(0xFD6897, 32 ); opóźnienie (40); ) if (x == 103) ( irsend.sendNEC(0xFDA857, 32); opóźnienie(40); ) if (x == 104) ( irsend.sendNEC(0xFD6897, 32); opóźnienie( 40); ) if (x == 105) ( irsend.sendNEC(0xFDE817, 32); opóźnienie(40); ) if (x == 106) ( irsend.sendNEC(0xFD18E7, 32); opóźnienie(40); ) if (x == 107) ( irsend.sendNEC(0xFD9867, 32); opóźnienie(40); ) if (x == 108) ( irsend.sendNEC(0xFD28D7, 32); opóźnienie(40); ) if (x = = 109) ( irsend.sendNEC(0xFD20DF, 32); opóźnienie(40); ) ) ) )


Na szkicu będziesz musiał edytować kody przycisków, a mianowicie w liniach:

If (x == 97) ( irsend.sendNEC(0x807F08F7, 32); opóźnienie(40);
Zmień wartość 807F08F7 na:

If (y == 1) ( //kody przycisków pilota telewizora if (x == 97) ( irsend.sendNEC(0x12345678, 32); opóźnienie(40); )
Gdzie 12345678 to kod Twojego przycisku.

Po edycji szkicu za pomocą kodów przycisków wgraj szkic na płytkę Arduino i przystąp do instalacji aplikacji na swoim telefonie.

Włączamy Bluetooth w telefonie, szukamy naszego urządzenia, tworzymy parę, po czym uruchamiamy aplikację Pult na telefonie.

Po uruchomieniu pojawi się ekran z czerwoną ikoną bluetooth w prawym dolnym rogu, która sygnalizuje, że nie jesteśmy połączeni z naszym urządzeniem.

Następnie kliknij tę ikonę. Powinniśmy zobaczyć okno z listą wszystkich dostępnych urządzeń Bluetooth, gdzie wybieramy nasze urządzenie do połączenia.

Teraz wracamy do ekranu głównego i możemy już sterować telewizorem:

Aby przejść do trybu sterowania należy nacisnąć przycisk oznaczony "Gracz". Jak powiedziałem wcześniej, nasz przycisk oznaczony „AV” zmieni się w przycisk „ ":

Aby odłączyć się od naszego urządzenia, wystarczy przytrzymać przycisk „Zasilanie” przez kilka sekund.

No i kilka zdjęć mojego gotowego urządzenia.

Wygląda na to, że wyszło całkiem nieźle. Czekam na komentarze do artykułu.

W każdym domu znajduje się pilot do telewizora lub inny pilot. Urządzenie to umożliwia sterowanie dowolnym urządzeniem na odległość, co jest bardzo wygodne. Nie ma potrzeby marnować cennych kalorii i wykonywać niepotrzebnych ruchów. Jeśli posiadasz jakieś urządzenie i chciałbyś nim sterować na odległość, możesz zdalnie sterować tym urządzeniem. Jeśli chcesz, możesz zrobić pilota własnymi rękami, ale nie ma takiej potrzeby i to już inna historia. Dlaczego możesz potrzebować pilota?! - To proste:

Lenistwo to cecha, która zmusza nas do podejmowania ogromnych wysiłków w celu zmniejszenia ogólnych kosztów energii.

Po raz pierwszy zdalne sterowanie w działaniu pokazał światu wynalazca Nikola Tesla, który w 1898 roku na wystawie w Madison Square Garden zaprezentował sterowaną radiowo łódź zwaną „teleautomatyczną”. Dziś technologia ta stała się powszechna, dodano jedynie różne metody przekazywania poleceń (kanał komunikacyjny).

Do głównych kanałów komunikacji należą:

  • Kanał radiowy
  • Ultradźwiękowy
  • Podczerwień

W tym artykule porozmawiamy o sterowaniu urządzeniem za pomocą pilota na podczerwień. Promieniowanie podczerwone to promieniowanie elektromagnetyczne zajmujące obszar widmowy pomiędzy czerwonym końcem światła widzialnego a promieniowaniem mikrofalowym. Promieniowanie podczerwone nie jest widoczne dla ludzkiego oka, ale można je zobaczyć za pomocą aparatu lub kamery wideo. Często w ten sposób sprawdzają w domu funkcjonalność pilota do telewizora.

Pewnego razu w mojej starej pracy odebrałem pilota i „wizjer” (odbiornik podczerwieni) z spisywanego systemu bezpieczeństwa, długo leżał nieużywany i w końcu zabrałem się za sprawdzenie, czy działa .

Po rozebraniu tego odbiornika wpadłem na pewien trik: w tym „oku” zlutowano ze sobą 4 odbiorniki IR. Dokonano tego w celu odbioru fal IR z czterech stron. I to jest wygodne, nie musisz ograniczać się do określonego kąta odbioru.

Narysowałem także podobny obwód z czterema odbiornikami, na wypadek gdybym tego potrzebował. Użyłem odbiorników IR TSOP1836, ale możesz użyć innych. Aby zapewnić odbiór w promieniu 360 stopni, należy dobrać odpowiednie odbiorniki podczerwieni (o szerokim kącie odbioru) i umieścić je jak najbliżej siebie. Nie zauważyłem żadnych problemów z odbiorem w moich odbiornikach. W załączniku zamieściłem również płytkę drukowaną i rozmieszczenie elementów.

Do przetwarzania poleceń będę oczywiście używać arduino uno;mogę używać odbiornika podczerwieni
TSOP34836 (ma duży zasięg odbioru, ale jest droższy) lub TL1838. Możesz sterować dowolnym pilotem na podczerwień, nawet z telewizora. Cóż, jeśli potrzebujesz własnego pilota, możesz kupić zestaw do arduino.

Zasada działania:
Po naciśnięciu przycisku na pilocie wysyła on kod przycisku w świetle podczerwonym, po czym odbiornik odbiera ten kod przycisku i wysyła go do siłownika, który w zależności od przycisku wykona określoną akcję.

Informacje można także przesyłać na niewielką odległość za pomocą fal podczerwonych. Do przesyłania poleceń lub informacji możesz użyć drugiego Arduino z nadajnikiem podczerwieni. Ale prędkość takiej transmisji jest bardzo mała. Zaletami kanału podczerwieni jest niewrażliwość na zakłócenia elektromagnetyczne.

Aby odbierać sygnały Arduino IR, podłączymy odbiornik IR w następujący sposób:

Należy pamiętać, że położenie nóg odbiornika może się różnić.


Odbiornik ma 3 nogi, zasilanie „+” i „-” (głównie napięcie 3,3-5 V), a noga danych przekazuje informacje do urządzenia (w naszym przypadku arduino). Napięcie zasilania dla TSOP34836 wynosi 2,7–5,5 wolta. Użyję 5 woltów ze standardowego wyjścia Arduino.

Cóż, oczywiście, że potrzebujesz oprogramowania sprzętowego dla Arduino. Algorytm działania będzie następujący: po naciśnięciu górnego przycisku pilota arduino włącza przekaźnik, a po ponownym naciśnięciu wyłącza go. Za pomocą tego przekaźnika można zasilić np. podświetlenie, ale nie jest konieczne programowanie wciśnięcia przycisku na przekaźniku, można wyprowadzić polecenie do komputera lub wykonać określoną operację w arduino itp.
Aby uprościć pracę, skorzystamy z gotowej biblioteki. Kod oprogramowania:

#włączać int RECEIVE_PIN = 11;//styk odbiornika int RELAY_PIN = 3;//styk przekaźnika IRrecv irrecv(RECEIVE_PIN);//przypisz pin odbiornika decode_results wyniki;//otrzymane dane

unieważnij konfigurację() (
Serial.begin(9600);
nieodbiór.włączIRIn(); // włącz odbiornik
tryb pin(RELAY_PIN, WYJŚCIE); // skonfiguruj przekaźnik dla wyjścia
digitalWrite (RELAY_PIN, WYSOKI); //ustaw wysoką wartość
}

pusta pętla() (
if (irrecv.decode(&results)) (//jeśli dane zostaną odebrane
Serial.print("0x");
Serial.println(results.value, HEX);//wyślij otrzymaną wiadomość do terminala
if ((results.value == 0x8FF40BF) ||(results.value == 0xD72040BF)) digitalWrite(RELAY_PIN, !digitalRead(RELAY_PIN));//jeśli kod przycisku to 0x8FF40BF lub 0xD72040BF zmień stan przekaźnika na przeciwny
opóźnienie (200); // opóźnienie przy podwójnym uruchomieniu
irrecv.resume();// Uzyskaj następną wartość
}
}

Wyjaśnię trochę na podstawie szkicu:



if ((wartość.wyników == 0x8FF40BF) ||(wartość.wyników == 0xD72040BF))

Otrzymaną wartość porównuje się z „0x8FF40BF” i „0xD72040BF” – są to kody przycisków w zapisie szesnastkowym. Tylko dwa znaczenia, bo używam dwóch pilotów z unikalnymi kodami.



digitalWrite(RELAY_PIN, !digitalRead(RELAY_PIN));

Standardowa procedura zapisu kodu PIN z wyjątkiem „!digitalRead(RELAY_PIN)”. Podpisać "!" oznacza inwersję, w naszym przypadku inwersję stanu wyjścia cyfrowego „RELAY_PIN”.



Serial.print("0x");
Serial.println(results.value, HEX);//wyślij otrzymaną wiadomość do terminala

Linie te wysyłają wszystkie odebrane kody do terminala. W działającym programie nie jest to konieczne, ale konieczne jest znalezienie wymaganego kodu dla konkretnego przycisku. Oznacza to, że najpierw przesyłamy szkic do Arduino, przechodzimy do terminala i klikając przycisk otrzymamy żądany kod.


W bibliotece IRremote znajduje się także kilka różnych przykładów, które mogą być przydatne.


W załączniku do artykułu:


  • szkic dla Arduino

  • Płytka PCB na 4 czujniki

Dzisiejszy artykuł poświęcony będzie podłączeniu odbiornika IR TSOP34836 do płytki Aduino UNO. W tym celu możesz użyć dowolnego posiadanego odbiornika, który jest kompatybilny z częstotliwością Twojego pilota. Przyporządkowanie pinów pokazano na rysunku.

1. Vout – wyjście odbiornika.
2. GND – „masa”, przewód wspólny.
3. Vcc – zasilanie.
Przesyłanie danych z pilota IR do odbiornika odbywa się za pomocą protokołu RC5, który jest ciągiem impulsów. Podłączenie wykonujemy według poniższego schematu.

Po zebraniu otrzymujemy coś takiego:

Do przetwarzania danych przesyłanych przez pilota wykorzystujemy bibliotekę IRremote, biblioteka ta jest załączona do artykułu. Wklej następujący kod:

#include „IRremote.h” IRrecv irrecv(11); // Określ 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 przybył ( Serial .println(results.value, HEX); // Wyślij odebrane dane do konsoli irrecv.resume(); // Zaakceptuj kolejne polecenie ) )

Teraz w konsoli portu COM możesz zobaczyć kod wciśniętego klawisza w formacie HEX.


To wszystko, teraz możesz używać tego obwodu w swoich urządzeniach. Poniżej przykład jednego z praktycznych zastosowań odbiornika IR.

W ramach demonstracji zostanie pokazane, jak sterować serwomechanizmem za pomocą pilota na podczerwień.

Schemat urządzenia:

Tak to powinno wyglądać:

Do obsługi urządzenia używamy następującego kodu:

#include "Servo.h" #include "IRremote.h" IRrecv irrecv(11); wyniki decode_results; SerwoserwoGłówny; int serwPoz = 90; //Początkowa pozycja serwa int lastPoz = 0; void setup() ( irrecv.enableIRIn(); servoMain.attach(10); // Serwo jest podłączone do pinu 10 servoMain.write(servPoz); ) void pętli() ( if (irrecv.decode(&results)) ( int res =results.value; Serial.println(res, HEX); if(res==0xFFFF906F) // Jeśli naciśnięto przycisk „+” ( lastPoz=res; servPoz++; servoMain.write(servPoz); ) else if( res== 0xFFFFA857) // Jeśli naciśnięty zostanie przycisk „-” ( servPoz--; lastPoz=res; servoMain.write(servPoz); ) else if(res==0xFFFFFFFF) // Jeśli przycisk zostanie przytrzymany ( if( lastPoz==0xFFFF906F) servPoz++; // Przytrzymaj „+” if(lastPoz==0xFFFFA857) servPoz--;// Przytrzymaj „-” servoMain.write(servPoz); ) irrecv.resume(); opóźnienie(100); ) )

Zastosowany pilot to jakiś chiński, po naciśnięciu „+” serwo kręci się w jednym kierunku, po naciśnięciu „-” obraca się w drugim.

Ostatnio potrzebowałem sterować pilotem telewizora do małego projektu Arduino. Pomysł polegał na sterowaniu klimatyzatorem poprzez Arduino z czujnikiem temperatury. Mój klimatyzator jest wyposażony w dość wygodny pilot, ale musimy zautomatyzować jego włączanie, ustawianie temperatury i wyłączanie. W wyniku długich poszukiwań udało mi się znaleźć rozwiązanie dla siebie. Więcej szczegółów na ten temat pod nacięciem.

Jak to działa

Złączony Odbiornik podczerwieni, kierujemy pilot do odbiornika, nagraj sygnał i wyślij go do Seryjny. (ponieważ jest to pierwsza część artykułu, nie rozważamy wysłania sygnału. O wysłaniu porozmawiamy w drugiej części).

Czego potrzebujemy

  • Arduino(lub analogi, używam Tosduino- 2 razy tańsze, w pełni kompatybilne ze zwykłym arduino)
  • Dioda LED ( PROWADZONY)
  • Rezystor 220 kOhm
  • Odbiornik podczerwieni z tej serii

Połączenie

Odbiornik podczerwieni

PROWADZONY

Arduino Deska do krojenia chleba Arduino
numer pinu 11 rezystor 220 kOhm GND (UZIEMIENIE)

Technologia podczerwieni

Najtańszy sposób na zdalne sterowanie urządzeniem w zasięgu widzialnym za pomocą promieniowania podczerwonego. W ten sposób można sterować prawie każdym sprzętem audio i wideo. Dzięki powszechnej dostępności wymagane komponenty są dość tanie, co czyni tę technologię idealną dla nas, którzy lubią wykorzystywać pilota na podczerwień do własnych projektów.

Promieniowanie podczerwone to tak naprawdę normalne światło o określonej barwie. My, ludzie, nie widzimy tego koloru, ponieważ jego długość fali wynosi 950 nm, czyli poniżej widma widzialnego. To jeden z powodów, dla których na potrzeby telemechaniki wybiera się IR, chcemy z niego korzystać, ale nie jesteśmy zainteresowani jego oglądaniem. Chociaż nie widzimy światła podczerwonego emitowanego przez pilota, nie oznacza to, że nie możemy sprawić, by było ono widoczne.

Kamera wideo lub aparat cyfrowy „widzi” światło podczerwone, jak widać na poniższym filmie. Nawet najtańsze telefony komórkowe mają wbudowane aparaty. Wystarczy skierować pilota na taką kamerę, nacisnąć dowolny przycisk, a dioda LED zacznie migać.

Seria miniaturowych odbiorników do systemów zdalnego sterowania na podczerwień. Dioda PIN i przedwzmacniacz są zamontowane na ramie prowadzącej i są zaprojektowane jako Filtr podczerwieni. Demodulowany sygnał wyjściowy może być bezpośrednio dekodowany przez mikroprocesor. - Jest to odbiornik standardowy, obsługujący wszystkie główne kody transmisji.

Część Częstotliwość nośna
30 kHz
33 kHz
36 kHz
36,7 kHz
38 kHz
40 kHz
56 kHz

IRremote.h

Pobierz bibliotekę IRzdalny możesz to zrobić z mojego repozytorium na Github.com

Aby zainstalować tę bibliotekę należy skopiować zawartość archiwum do: arduino-1.x/libraries/IRremote Gdzie arduino-1.x to folder, w którym zainstalowane jest Arduino IDE, następnie plik arduino-1.x/libraries/IRremote /IRremote.cpp powinien być dostępny, a IRremote.h

Przykład nr 1 - uzyskanie kodu do przycisku pilota

Ten szkic odczyta kod wciśniętego przycisku na pilocie i wyśle ​​informację o tym przycisku do portu szeregowego, abyśmy mogli następnie użyć tego kodu.

#włączać int ODBIÓR_PIN = 2; IRrecv irrecv(RECEIVE_PIN); wyniki decode_results; void setup() ( Serial.begin(9600); irrecv.enableIRIn(); // Uruchom odbiornik ) void pętli() ( if (irrecv.decode(&results)) ( Serial.print("0x"); Serial. println(results.value, HEX); opóźnienie(50); irrecv.resume();// Otrzymaj następną wartość ) )

Użyję tych kodów przycisków we wszystkich poniższych przykładach:

Przykład nr 2 - nadanie nazwy przyciskowi pilota

Wyślijmy nazwy przycisków do portu szeregowego. (najpierw musimy złapać kody tych przycisków i nadać im nazwy, spójrz na kod, myślę, że tam wszystko będzie jasne).

#włączać int ODBIÓR_PIN = 2; IRrecv irrecv(RECEIVE_PIN); wyniki decode_results; void setup() ( Serial.begin(9600); irrecv.enableIRIn(); ) void pętli() ( if (irrecv.decode(&results)) ( przełącznik (results.value) ( ​​​​case 0x77E1A0CB: Serial.println( "Centrum "); przerwa; przypadek 0x77E160CB: Serial.println("Prawy"); przerwa; przypadek 0x77E190CB: Serial.println("Lewy"); przerwa; przypadek 0x77E150CB: Serial.println("W górę"); przerwa; przypadek 0x77E130CB: Serial.println("W dół"); przerwa; ) irrecv.resume(); ) )

Przykład nr 3 - włącz diodę LED przyciskiem pilota

Teraz nauczmy nasze Arduino włącz diodę LED na PIN 11 za pomocą przycisku na pilocie

#włączać int dioda = 11; stan int = 0; // 0 = dioda wyłączona podczas 1 = dioda włączona int RECEIVE_PIN = 2; IRrecv irrecv(RECEIVE_PIN); wyniki decode_results; void setup() ( Serial.begin(9600); irrecv.enableIRIn(); pinMode(LED, OUTPUT); ) void pętla() ( if ((irrecv.decode(&results)) && (results.value==0x77E1A0CB) ) ( if (stan == 0) ( stan = 1; digitalWrite(LED, WYSOKI); Serial.println("Centrum - WYSOKI"); ) else ( stan = 0; digitalWrite(LED, NISKI); Serial.println( "Centrum - NISKI"); ) opóźnienie(50); nierecv.resume(); ) )

Przykład nr 4 - PWM z pilotem

Teraz kontrolujmy jasność naszej diody LED (ponieważ jest ona podłączona do portu 11, który ma PWM, nie powinno być problemów). Do regulacji jasności służą przyciski góra i dół na pilocie.

#włączać int ODBIÓR_PIN = 2; int jasność = 0; int dioda = 11; IRrecv irrecv(RECEIVE_PIN); wyniki decode_results; void setup() ( Serial.begin(9600); irrecv.enableIRIn(); ) void pętli() ( if (irrecv.decode(&results)) ( switch (results.value) ( ​​​​case 0x77E150CB: if(jasność< 255) { brightness+=15; Serial.println(brightness); } break; case 0x77E130CB: if(brightness >0) ( jasność-=15; Serial.println(jasność); ) przerwa; ) analogWrite(LED, jasność); recv.resume(); ) )

Jakoś tak. W drugiej części artykułu omówimy w jaki sposób możemy przesłać odebrany sygnał do naszego sprzętu. W moim przypadku była to klimatyzacja. Również w drugiej części pojawi się film, który pokaże montaż pod klucz, od początku do końca + przykład pracy.

Publikacje na ten temat