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: |
|
||||||||||
Parametre: |
|
||||||||||
Príkladový kód: |
// Kód pre čítanie signálov z KY-022 Infraprivekčného senzora prijímača
const 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 <Arduino.h>
/*
* Makros für Eingangs- und Ausgangspin definieren etc.
*/
#include "PinDefinitionsAndMore.h"
#include <IRremote.h>
void setup() {
Serial.begin(115200);
// Nur um zu wissen, welches Programm auf meinem Arduino läuft
Serial.println(F("START " __FILE__ " von " __DATE__ "\r\nUsing 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");
}
}
}