Obsługa czujnika podczerwieni VS1838B za pomocą Arduino

Poradnik prezentuje w jaki sposób podłączyć czujnik podczerwieni do Arduino i odbierać transmisje wysyłane za pomocą pilota. W przykładzie zostanie wykorzystany układ VS1838B.
Potrzebne części
- Arduino bądź jakikolwiek kompatybilny klon, ja używam Arduino Uno
- Dioda VS1838B lub jakakolwiek inna
- Pilot do transmisji – w artykule będzie używany pilot od samochodowego odtwarzacza mp3, może być nawet pilot od telewizora
- Płytka stykowa i 3 sztuki kabelków połączeniowych
Podłączenie
Podłączamy według schematu:
VS1838B PIn | VS1838B Nazwa | Arduino Pin | Arduino Nazwa |
---|---|---|---|
1 | Signal | 2 | PD2 |
2 | GND | GND | GND |
3 | VCC | 5V | 5V |
(Uwaga: na rysunku jest przedstawiona jest układ TSOP312 z innym rozkładem wyjść niż mój odbiornik, najlepiej na wszelki wypadek znaleźć w internecie pinout danego układu)
Oprogramowanie
Uruchamiamy Arduino studio i wklepujemy kod:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#include <IRremote.h> int input_pin = 2; // wpisujemy nazwę pinu, po którym nastepuje komunikacja IRrecv irrecv(input_pin); decode_results signals; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // włączenie odbierania danych } void loop() { if (irrecv.decode(&signals)) { Serial.println(signals.decode_type); // typ nadajnika Serial.print(F("wynik = 0x")); Serial.println(signals.value, HEX); // wynik w systemie szesnatkowym Serial.println(signals.bits); // ilość przesłanych danych irrecv.blink13(true); // mrugamy diodami w arduino // Przykładowe porównanie: if (signals.value == 0x9716BE3F) { Serial.println("Wcisnieto klawisz 1"); } // ... i tak dalej irrecv.resume(); // nasłuchujemy na następne nadanie } } |
Następnie kompilujemy całość. Jeżeli dostaniemy błąd typu:
1 |
'TKD2' was not declared in this scope |
to ściągamy paczkę:
IRemote (25,1 KiB, 2 980 hits)
i rozpakowujemy ją do katalogu libraries, znajdującego się w głównym folderze gdzie zainstalowano Arduino Studio.
Następnie kasujemy / przenosimy z powyższego folderu katalog o nazwie „RobotIRremote”. Po tej czynności kompilacja powinna odbyć się bezproblemowo:
Po poprawnej kompilacji i wgraniu kodu do Arduino przechodzimy do „Szeregowego monitora” (Narzędzia -> Szeregowy monitor). Jeżeli wszystko jest dobrze podłączone, po skierowaniu pilota na diodę i naciśnięciu jakiekolwiek przycisku, powinny pojawiać się odebrane wartości:
Kod jest odpowiednio skomentowany, więc nie będzie problemu z dalszą rozbudową wedle własnych upodobań.
2 komentarze
Na rysunku nogę 2 podłączasz do 5V, w tabelce noga 2 opisana jest jako GND. To jak w końcu to ma być?
Błąd jak się patrzy, tabelka prawidłowa od początku, rysunek poprawiony.