SKU: 17405
KY-022 Infrared sensor receiver 3pin module TL1838 VS1838B HX1838
KY-022 Infraprivekčný senzor prijímača 3-pinový modul TL1838 VS1838B HX1838 Popis: KY-022 je modul infračerveného senzora prijímača, ktorý slúži na detekciu…
Popis
KY-022 Infraprivekčný senzor prijímača 3-pinový modul TL1838 VS1838B HX1838
Popis: KY-022 je modul infračerveného senzora prijímača, ktorý slúži na detekciu infračerveného žiarenia. Tento modul je vybavený čipom TL1838, VS1838B alebo HX1838, ktorý umožňuje prijímanie signálov z infrakamer. Je ideálny pre rôzne projekty, ako sú diaľkové ovládacie systémy, bezdotykové spínače, sledovanie pohybu a ďalšie.
Funkcie:
Prijíma infračervené signály pomocou čipu TL1838, VS1838B alebo HX1838
Detekuje infračervené žiarenie v okolí senzora
Jednoduché pripojenie a ovládanie pomocou Arduino alebo iných mikrokontrolérov
Vhodný pre rôzne projekty, ktoré vyžadujú detekciu infračerveného žiarenia
Parametre:
Čip: TL1838, VS1838B, HX1838
Napájanie: 3.3V – 5V DC
Pinová konfigurácia: GND, OUT, VCC
Formát výstupu: Digitálny signál
Rozsah detekcie: Infračervené žiarenie
Príkladový kód:
// Kód pre čítanie signálov z KY-022 Infraprivekčného senzora prijímačaconst int IR_PIN = 2; // Pin pre pripojenie výstupu senzora
void setup() {
Serial.begin(9600); // Inicializácia sériovej komunikácie
pinMode(IR_PIN, INPUT); // Nastavenie pinu ako vstup
}
void loop() {
int IR_value = digitalRead(IR_PIN); // Čítanie digitálneho signálu zo senzora
Serial.println(IR_value); // Výpis hodnoty na sériový port
delay(500); // Počká pol sekundy pred ďalším čítaním
}KY-022 Infračervený senzorový prijímač 3pinový modul TL1838 VS1838B HX1838
Tento modul môže prijímať infračervené signály a odosiela ich na výstup signálu ako digitálnu sekvenciu.
Okrem toho LED integrovaná na module krátko zabliká, keď je detekovaný infračervený signál.
Pomocou senzorového modulu KY-022 je možné zostaviť infračervený prijímač. Na to je potrebný iba modul infračerveného prijímača a jediné Arduino. Arduino funguje ako prijímač signálov a odosiela ich do sériovej konzoly.
Pre nasledujúci príklad kódu je potrebná ďalšia knižnica:
Arduino-IRremote od Ken Shirriff | publikované pod licenciou MIT .
Nižšie uvedený príklad používa túto knižnicu – na tento účel ju odporúčame stiahnuť z Github, rozbaliť a skopírovať do priečinka knižnice Arduino, ktorý sa štandardne nachádza na adrese (C:\User[používateľské meno]\Documents\Arduino\libraries) , aby bol dostupný pre tento príklad kódu a následné projekty. Prípadne je to zahrnuté aj v nižšie uvedenom balíčku na stiahnutie.
Pre systémy infračerveného vysielača a prijímača existujú rôzne protokoly, v ktorých je možné odosielať a prijímať údaje. V nasledujúcom príklade je na príjem použitý upravený príklad SimpleReceiver – použitá knižnica “Arduino-IRremote” sa sama postará o prevod do správnej sekvencie dát. V rámci knižnice však existujú aj iné protokoly/kódovania – tie sú identifikované v dokumentácii/kóde knižnice. Dokumentácia .
Aby ste mohli použiť nasledujúci kód, je potrebné vziať do úvahy niekoľko dôležitých vecí. Najprv musíte otvoriť už existujúci príklad z knižnice, pretože otvorí veľmi dôležitý súbor, ktorý je potrebný na príjem. Ak chcete otvoriť tento príklad, prejdite na Súbor -> Príklady -> IRremote -> SimpleReceiver . Keď to urobíte, všetko, čo musíte urobiť, je nahradiť kód v príklade nižšie uvedeným kódom pre prijímač. Potom už stačí len vybrať Arduino, ku ktorému ste pripojili váš prijímač. Urobíte to nasledovne, prejdete na Nástroje -> Port -> COM . Je dôležité, aby ste vybrali COM, ku ktorému je pripojené vaše Arduino, ktorý bude neskôr slúžiť ako prijímač. V tomto príklade je možné zmeniť riadky 88 na 93.
/* * SimpleReceiver.cpp * * Demonstriert den Empfang von NEC-IR-Codes mit IRrecv * * Copyright (C) 2020-2021 Armin Joachimsmeyer * armin.joachimsmeyer@gmail.com * * Diese Datei ist Teil von Arduino-IRremote https://github.com/Arduino-IRremote/Arduino-IRremote. * * MIT-Lizenz */
/* * Geben Sie an, welche(s) Protokoll(e) für die Dekodierung verwendet werden soll(en). * * Wenn kein Protokoll definiert ist, sind alle Protokolle aktiv. */ //#define DECODE_DENON // Enthält Sharp //#define DECODE_JVC //#define DECODE_KASEIKYO //#define DECODE_PANASONIC // dasselbe wie DECODE_KASEIKYO //#define DECODE_LG #define DECODE_NEC // Beinhaltet Apple und Onkyo //#define DECODE_SAMSUNG //#define DECODE_SONY //#define DECODE_RC5 //#define DECODE_RC6
//#define DECODE_BOSEWAVE //#define DECODE_LEGO_PF //#define DECODE_MAGIQUEST //#define DECODE_WHYNTER
//#define DECODE_DISTANCE // Universaldecoder für Impulsbreiten- oder Impulsabstandsprotokolle //#define DECODE_HASH // Spezialdecoder für alle Protokolle
#include
/*
* Makros für Eingangs- und Ausgangspin definieren etc.
*/
#include "PinDefinitionsAndMore.h"
#include
void setup() {
Serial.begin(115200);
// Nur um zu wissen, welches Programm auf meinem Arduino läuft
Serial.println(F("START " __FILE__ " von " __DATE__ "
Using library version " VERSION_IRREMOTE));
/*
* Starten des Empfängers, Aktivieren der Feedback-LED und Abgreifen des LED-Feedback-Pins von der internen Kartendefinition
*/
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK, USE_DEFAULT_FEEDBACK_LED_PIN);
Serial.print(F("Bereit zum Empfang von IR-Signalen an Pin "));
Serial.println(IR_RECEIVE_PIN);
}
void loop() {
/*
* Prüfen, ob empfangene Daten vorhanden sind und wenn ja, versuchen, diese zu dekodieren.
* Dekodiertes Ergebnis steht in der Struktur IrReceiver.decodedIRData.
*
* Z.B. Befehl ist in IrReceiver.decodedIRData.command
* Adresse ist in Befehl ist in IrReceiver.decodedIRData.address
* und bis zu 32 Bit Rohdaten in IrReceiver.decodedIRData.decodedRawData
*/
if (IrReceiver.decode()) {
// Drucken einer kurzen Zusammenfassung der empfangenen Daten
IrReceiver.printIRResultShort(&Serial);
if (IrReceiver.decodedIRData.protocol == UNKNOWN) {
// Wir haben hier ein unbekanntes Protokoll, drucken Sie weitere Informationen
IrReceiver.printIRResultRawFormatted(&Serial, true);
}
Serial.println();
/*
* !!!Wichtig!!! Aktivieren Sie den Empfang des nächsten Wertes,
* da der Empfang nach dem Ende des aktuell empfangenen Datenpakets gestoppt wurde.
*/IrReceiver.resume(); // Empfang des nächsten Wertes freigeben
/* * Abschließend prüfen Sie die empfangenen Daten und führen Aktionen entsprechend dem empfangenen Befehl aus */ if (IrReceiver.decodedIRData.command == 0x34) { Serial.println("Signal empfangen"); } else if (IrReceiver.decodedIRData.command == 0x36) { Serial.println("Signal empfangen und dieses Mal ist es ein anderes"); } else { Serial.println("Signal empfangen, aber leider nicht das richtige"); } } }