Агуулгын хүснэгт:

Дахин боловсруулагч Les Codes Infra-Rouge Et 433mhz: 4 алхам
Дахин боловсруулагч Les Codes Infra-Rouge Et 433mhz: 4 алхам

Видео: Дахин боловсруулагч Les Codes Infra-Rouge Et 433mhz: 4 алхам

Видео: Дахин боловсруулагч Les Codes Infra-Rouge Et 433mhz: 4 алхам
Видео: Горячие пляжи Рио-де-Жанейро. Опасно ли в Бразилии. Солнечный Рио 2024, Долдугаар сарын
Anonim
Дахин боловсруулагч Les Codes Infra-Rouge Et 433mhz
Дахин боловсруулагч Les Codes Infra-Rouge Et 433mhz

Ламп, гараж, порт 433 МГц (RX433) програм хангамжийн инфра-rouge de télévision au autre-д зориулсан хэв маягийн командууд байдаг.

Нэвтрүүлэгт хамрагдсанаар, монтаж хийх, код илгээгч, нисгэгчийг илгээх боломжтой!

Алхам 1: Ле Монтаж

Ле Монтаж
Ле Монтаж

Энгийн бөгөөд Arduino Nano-ийн хувьд 433 МГц давтамжтай диафрагмын инфра-rouge et un récepteur.

Алхам 2: Le Code Arduino

// InfraRouge

#оруулах

int recvPin = 11; // зүү Arduino асгах хүлээн авагч InfraRouge (TOSP4838)

IRrecv irrecv (recvPin);

// RX433

#оруулах

RCSwitch mySwitch = RCSwitch ();

decode_results үр дүн;

хүчингүй тохиргоо ()

{

Цуваа эхлэх (9600);

irrecv.enableIRIn ();

irrecv.blink13 (үнэн); // allume la LED interne lors de l'envoie InfraRouge

mySwitch.enableReceive (0); // Récepteur RX433 (XY-MK-5V) pin pin 2 de Arduino Uno et Nano

}

// InfraRouge кодын affichage des

хүчин төгөлдөр бус код (decode_results *үр дүн)

{

// Panasonic

хэрэв (үр дүн-> decode_type == PANASONIC) {

Serial.print (үр дүн-> хаяг, HEX);

Serial.print (":");

}

Serial.print (үр дүн-> утга, HEX);

} // хүчингүй

// afficahge des encodés кодууд

хүчингүй кодчилол (decode_results *үр дүн)

{

шилжих (үр дүн-> декодын_төрөл) {

анхдагч:

үл мэдэгдэх тохиолдол: Serial.print ("Inconnu"); завсарлага;

кейс NEC: Serial.print ("NEC"); завсарлага;

кейс SONY: Serial.print ("SONY"); завсарлага;

тохиолдолд RC5: Serial.print ("RC5"); завсарлага;

тохиолдолд RC6: Serial.print ("RC6"); завсарлага;

case DISH: Serial.print ("DISH"); завсарлага;

тохиолдолд SHARP: Serial.print ("SHARP"); завсарлага;

тохиолдолд JVC: Serial.print ("JVC"); завсарлага;

тохиолдол SANYO: Serial.print ("SANYO"); завсарлага;

тохиолдол MITSUBISHI: Serial.print ("MITSUBISHI"); завсарлага;

тохиолдолд SAMSUNG: Serial.print ("SAMSUNG"); завсарлага;

тохиолдол LG: Serial.print ("LG"); завсарлага;

кейс WHYNTER: Serial.print ("WHYNTER"); завсарлага;

тохиолдол AIWA_RC_T501: Serial.print ("AIWA_RC_T501"); завсарлага;

тохиолдол PANASONIC: Serial.print ("PANASONIC"); завсарлага;

кейс DENON: Serial.print ("Denon"); завсарлага;

}

}

// dump les résultats

void dumpInfo (decode_results *үр дүн)

{

// Буфер дүүрсэн эсэхийг шалгана уу

if (үр дүн-> халих) {

Serial.println ("IR код хэт урт байна. IRremoteInt.h засварлаж RAWBUF -ийг нэмэгдүүлэх");

буцах;

}

// Кодлох стандартыг харуулах

Serial.print ("Encodage:");

кодлох (үр дүн);

Serial.println ("");

// Код ба уртыг харуулах

Serial.print ("Код:");

иркод (үр дүн);

Serial.print ("(");

Цуваа.хэвлэх (үр дүн-> бит, DEC);

Serial.println ("бит" ");

}

// бүтэц

void dumpRaw (decode_results *үр дүн)

{

// Түүхий өгөгдлийг хэвлэх

Serial.print ("Хугацаа [");

Цуваа.хэвлэх (үр дүн-> rawlen-1, DEC);

Serial.println ("]:");

for (int i = 1; i rawlen; i ++) {

гарын үсэг зураагүй урт x = үр дүн-> rawbuf * USECPERTICK;

if (! (i & 1)) {// бүр

Serial.print ("-");

if (x <1000) Serial.print ("");

if (x <100) Serial.print ("");

Цуваа.хэвлэх (x, DEC);

} өөр {// сондгой

Serial.print ("");

Serial.print ("+");

if (x <1000) Serial.print ("");

if (x <100) Serial.print ("");

Цуваа.хэвлэх (x, DEC);

if (i rawlen-1) Serial.print (","); // ',' сүүлийнхэд хэрэггүй

}

if (! (i % 8)) Serial.println ("");

}

Serial.println (""); // Шинэ мөр

}

//+=============================================================================

// decode_results бүтцийг устгах.

//

void dumpCode (decode_results *үр дүн)

{

// Тунхаглал эхлүүлэх

Serial.print ("unsigned int"); // хувьсагчийн төрөл

Serial.print ("rawData ["); // массивын нэр

Цуваа.хэвлэх (үр дүн-> rawlen - 1, DEC); // массивын хэмжээ

Serial.print ("] = {"); // Тунхаглал эхлүүлэх

// Өгөгдлийг хаях

for (int i = 1; i rawlen; i ++) {

Serial.print (үр дүн-> rawbuf * USECPERTICK, DEC);

if (i rawlen-1) Serial.print (","); // ',' сүүлийнхэд хэрэггүй

if (! (i & 1)) Serial.print ("");

}

// Тунхаглалыг дуусгах

Serial.print ("};"); //

// Сэтгэгдэл

Serial.print ("//");

кодлох (үр дүн);

Serial.print ("");

иркод (үр дүн);

// Шинэ мөр

Serial.println ("");

// Одоо "мэдэгдэж байгаа" кодыг хаяна уу

if (results-> decode_type! = Мэдээгүй) {

// Зарим протоколууд хаягтай байдаг

хэрэв (үр дүн-> decode_type == PANASONIC) {

Serial.print ("unsigned int addr = 0x");

Serial.print (үр дүн-> хаяг, HEX);

Serial.println (";");

}

// Бүх протоколууд өгөгдөлтэй байдаг

Serial.print ("unsigned int data = 0x");

Serial.print (үр дүн-> утга, HEX);

Serial.println (";");

}

}

хоосон давталт ()

/*********************************************** *InfraRouge ****************************************/

{

decode_results үр дүн; // Үр дүнг хадгалах хаа нэг газар

if (irrecv.decode (& үр дүн)) {// IR код авах

dumpInfo (& үр дүн); // Үр дүнг гаргана

dumpRaw (& үр дүн); // Үр дүнг RAW форматаар гаргана

dumpCode (& үр дүн); // Үр дүнг эх код болгон гаргана

Serial.println (""); // Бичлэгийн хоорондох хоосон мөр

irrecv. resume (); // Дараагийн үнэ цэнийг бэлтгэ

}

/*********************************************** *** RX433 ******************************************/

хэрэв (mySwitch.available ())

{

int утга = mySwitch.getReceivedValue ();

Serial.println ("RX433");

хэрэв (утга == 0) {

Serial.print ("Codage inconnu");

} өөр

{

Serial.print ("Reçu");

Serial.print (mySwitch.getReceivedValue ());

Serial.print (" /");

Serial.print (mySwitch.getReceivedBitlength ());

Serial.print ("бит");

Serial.print ("Protocole:");

Serial.println (mySwitch.getReceivedProtocol ());

}

mySwitch.resetAvailable ();

} // RX433

} // давталт

Алхам 3: Inf Les-Codes Infra-Rouge-ийн мэдээлэл

Ил y a plusieurs протоколууд:

NEC: 32 бит (протоколын дэлгэрэнгүй мэдээлэл)

Sony: 12 ou 20 bit (протоколын дэлгэрэнгүй мэдээлэл) (Sony IR алсын кодыг ойлгох.)

RC5: 12 бит (протоколын дэлгэрэнгүй мэдээлэл)

RC6: 20 ou 36 бит (протоколын дэлгэрэнгүй мэдээлэл)

Sony et RC5/6, 3 дамжуулалтыг хийнэ үү!

Анхаарна уу: la librairie IRremote.h ne semble pas pouvoir envoyer desodes codés sur plus de 32bits. Les RC6, 36 doivent donc êtres envoyer en raw, quen prennent plus de taille mémoire.

L’envoie desodes se fera avec la librairie IRremote.h

Жишээ нь: (0x devant le code) et le nombre de bits irsend.sendNEC (0xA55A38C7, 32);

Алхам 4: Мэдээллийн Sur Codes RX433

L'envoie se fera avec la librairie RCSwitch.h

Жишээ нь mySwitch.send (1975778, 24);

Peut facilement дээр нисгэгч avec cela des prises commandés.

Зөвлөмж болгож буй: