विषयसूची:

रेक्यूपेरर लेस कोड्स इंफ्रा-रूज एट 433mhz: 4 चरण
रेक्यूपेरर लेस कोड्स इंफ्रा-रूज एट 433mhz: 4 चरण

वीडियो: रेक्यूपेरर लेस कोड्स इंफ्रा-रूज एट 433mhz: 4 चरण

वीडियो: रेक्यूपेरर लेस कोड्स इंफ्रा-रूज एट 433mhz: 4 चरण
वीडियो: මිලියන 2.79 බලපු Amazing cunducter😅😅in privet bus වෝට ෆෝල්ස් කිව්වා නැග්ගා💪💪💪👍🏆🎵 #automobile #funny 2024, नवंबर
Anonim
रेक्यूपेरर लेस कोड्स इंफ्रा-रूज एट 433mhz
रेक्यूपेरर लेस कोड्स इंफ्रा-रूज एट 433mhz

Le but est d'afficher les codes des télécommandes du style Commande de lampe, porte de गेराज et autre fonctionnant sous 433 mhz (RX433) mais aussi ceux des télécommandes infra-rouge de télévision au autre.

पोरा डॉन इनसुइट पर, ग्रेस ए यून ऑट्रे असेंबल, एनवॉयर सेस कोड्स और पायलट एन'इम्पोर्ट क्वोई!

चरण 1: ले मोंटेज

ले मोंटेज
ले मोंटेज

सरल, बिना अरुडिनो नैनो, एक डायोड रिसेप्ट्रीस इंफ्रा-रूज और एक रिसेप्टर 433 मेगाहर्ट्ज।

चरण 2: ले कोड अरुडिनो

// इंफ्रारूज

#शामिल

int recvPin = 11; // पिन अरुडिनो ने रिसेप्टर इंफ्रारूज (TOSP4838) डाला

IRrecv irrecv (recvPin);

//आरएक्स४३३

#शामिल

RCSwitch mySwitch = RCSwitch ();

decode_results परिणाम;

व्यर्थ व्यवस्था ()

{

सीरियल.बेगिन (९६००);

ircv.enableIRIn ();

ircv.blink13(true);//allume la LED इंटर्न लॉर्स डे l'envoie InfraRouge

mySwitch.enableReceive(0); // रिसेप्टर RX433 (XY-MK-5V) सुर पिन 2 डे Arduino Uno et Nano

}

// affichage des codes InfraRouge

शून्य आईरकोड (decode_results *results)

{

// पैनासोनिक

अगर (परिणाम-> decode_type == पैनासोनिक) {

सीरियल.प्रिंट (परिणाम-> पता, हेक्स);

सीरियल.प्रिंट (":");

}

सीरियल.प्रिंट (परिणाम-> मूल्य, हेक्स);

}//शून्य

// afficahge des code encodes

शून्य एन्कोडिंग (decode_results *results)

{

स्विच (परिणाम-> decode_type) {

चूक जाना:

मामला अज्ञात: सीरियल.प्रिंट ("इनकोनू"); टूटना;

मामला एनईसी: सीरियल.प्रिंट ("एनईसी"); टूटना;

केस सोनी: सीरियल.प्रिंट ("सोनी"); टूटना;

केस RC5: सीरियल.प्रिंट ("RC5"); टूटना;

केस RC6: सीरियल.प्रिंट ("RC6"); टूटना;

केस डिश: सीरियल.प्रिंट ("डिश"); टूटना;

केस शार्प: सीरियल.प्रिंट ("शार्प"); टूटना;

मामला जेवीसी: सीरियल.प्रिंट ("जेवीसी"); टूटना;

केस सान्यो: सीरियल.प्रिंट ("सान्यो"); टूटना;

मामला मित्सुबिशी: सीरियल.प्रिंट ("मित्सुबिशी"); टूटना;

मामला सैमसंग: सीरियल.प्रिंट ("सैमसंग"); टूटना;

केस एलजी: सीरियल.प्रिंट ("एलजी"); टूटना;

मामला WHYNTER: Serial.print("WHYNTER"); टूटना;

मामला AIWA_RC_T501: सीरियल.प्रिंट ("AIWA_RC_T501"); टूटना;

केस पैनासोनिक: सीरियल.प्रिंट ("पैनासोनिक"); टूटना;

केस डेनॉन: सीरियल.प्रिंट ("डेनॉन"); टूटना;

}

}

// डंप लेस परिणाम

शून्य डंपइन्फो (decode_results *results)

{

// जांचें कि क्या बफर ओवरफ्लो हो गया है

अगर (परिणाम-> अतिप्रवाह) {

Serial.println ("IR कोड बहुत लंबा है। IRremoteInt.h संपादित करें और RAWBUF बढ़ाएं");

वापसी;

}

// एन्कोडिंग मानक दिखाएं

सीरियल.प्रिंट ("एन्कोडेज:");

एन्कोडिंग (परिणाम);

सीरियल.प्रिंट्लन ("");

// कोड और लंबाई दिखाएं

सीरियल.प्रिंट ("कोड:");

इरकोड (परिणाम);

सीरियल.प्रिंट ("(");

सीरियल.प्रिंट (परिणाम-> बिट्स, डीईसी);

Serial.println ("बिट्स)");

}

//संरचना

शून्य डंपरॉ (decode_results *results)

{

// कच्चा डेटा प्रिंट करें

सीरियल.प्रिंट ("समय [");

Serial.print(results->rawlen-1, DEC);

सीरियल.प्रिंट्लन ("]:");

के लिए (int i = 1; मैं रॉलेन; i++) {

अहस्ताक्षरित लंबा x = परिणाम-> रॉबफ * USECPERTICK;

अगर (!(i & 1)) {// यहां तक कि

सीरियल.प्रिंट ("-");

अगर (एक्स <1000) सीरियल.प्रिंट ("");

अगर (एक्स <100) सीरियल.प्रिंट ("");

सीरियल.प्रिंट (एक्स, डीईसी);

} और {// विषम

सीरियल.प्रिंट ("");

सीरियल.प्रिंट ("+");

अगर (एक्स <1000) सीरियल.प्रिंट ("");

अगर (एक्स <100) सीरियल.प्रिंट ("");

सीरियल.प्रिंट (एक्स, डीईसी);

अगर (मैं रॉलेन -1) सीरियल.प्रिंट ("", "); //', ' पिछले एक की जरूरत नहीं है

}

अगर (!(i% 8)) सीरियल.प्रिंट्लन ("");

}

सीरियल.प्रिंट्लन (""); // नई पंक्ति

}

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

// decode_results संरचना को डंप करें।

//

शून्य डंपकोड (decode_results *results)

{

// घोषणा शुरू करें

सीरियल.प्रिंट ("अहस्ताक्षरित इंट"); // चर प्रकार

सीरियल.प्रिंट ("रॉडाटा ["); // सरणी का नाम

Serial.print(results->rawlen-1, DEC); // सरणी आकार

सीरियल.प्रिंट ("] = {"); // घोषणा शुरू करें

// डंप डेटा

के लिए (int i = 1; मैं रॉलेन; i++) {

Serial.print(results->rawbuf * USECPERTICK, DEC);

अगर (मैं रॉलेन -1) सीरियल.प्रिंट ("", "); // ',' पिछले एक की जरूरत नहीं है

अगर (!(i & 1)) सीरियल.प्रिंट("");

}

// अंत घोषणा

सीरियल.प्रिंट ("};"); //

// टिप्पणी

सीरियल.प्रिंट ("//");

एन्कोडिंग (परिणाम);

सीरियल.प्रिंट ("");

इरकोड (परिणाम);

// नई पंक्ति

सीरियल.प्रिंट्लन ("");

// अब "ज्ञात" कोड डंप करें

अगर (परिणाम-> decode_type! = अज्ञात) {

// कुछ प्रोटोकॉल का एक पता होता है

अगर (परिणाम-> decode_type == पैनासोनिक) {

Serial.print ("अहस्ताक्षरित int addr = 0x");

सीरियल.प्रिंट (परिणाम-> पता, हेक्स);

सीरियल.प्रिंट्लन (";");

}

// सभी प्रोटोकॉल में डेटा होता है

सीरियल.प्रिंट ("अहस्ताक्षरित इंट डेटा = 0x");

सीरियल.प्रिंट (परिणाम-> मूल्य, हेक्स);

सीरियल.प्रिंट्लन (";");

}

}

शून्य लूप ()

/******** * इन्फ्रारूज ***************/

{

decode_results परिणाम; // कहीं परिणाम संग्रहीत करने के लिए

अगर (irrecv.decode(&results)) {// एक IR कोड प्राप्त करें

डंपइन्फो (और परिणाम); // परिणाम आउटपुट करें

डंपरॉ (और परिणाम); // रॉ प्रारूप में परिणाम आउटपुट करें

डंपकोड (और परिणाम); // परिणाम को स्रोत कोड के रूप में आउटपुट करें

सीरियल.प्रिंट्लन (""); // प्रविष्टियों के बीच रिक्त रेखा

अपरिवर्तनीय। फिर से शुरू (); // अगले मूल्य के लिए तैयार करें

}

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

अगर (mySwitch.उपलब्ध ())

{

इंट वैल्यू = mySwitch.getReceivedValue ();

Serial.println ("RX433");

अगर (मान == 0) {

सीरियल.प्रिंट ("कोडेज इनकॉनू");

} अन्यथा

{

सीरियल.प्रिंट ("रेकू");

सीरियल.प्रिंट (mySwitch.getReceivedValue ());

सीरियल.प्रिंट ("/");

सीरियल.प्रिंट (mySwitch.getReceivedBitlength ());

सीरियल.प्रिंट ("बिट");

सीरियल.प्रिंट ("प्रोटोकॉल:");

Serial.println (mySwitch.getReceivedProtocol ());

}

mySwitch.resetउपलब्ध ();

}//RX433

}//कुंडली

चरण 3: इंफोस सुर लेस कोड्स इंफ्रा-रूज

मैं और प्लसियस प्रोटोकॉल:

एनईसी: 32 बिट्स (प्रोटोकॉल विवरण)

सोनी: 12 या 20 बिट्स (प्रोटोकॉल विवरण) (सोनी आईआर रिमोट कोड को समझना।)

RC5: 12 बिट (प्रोटोकॉल विवरण)

RC6: 20 या 36 बिट (प्रोटोकॉल विवरण)

सोनी और RC5/6 डालो, चैक ट्रांसमिशन doit tre répétés 3 fois !

ध्यान दें: ला लाइब्रेरी IRremote.h ne semble pas pouvoir envoyer des codes codes sur plus de 32bits। Les RC6, 36 doivent donc tres envoyer en raw, qui prennent plus de taille memoire.

L'envoie des codes se fera avec la librairie IRremote.h

उदाहरण: (0x devant le code) et le nombre de bit irsend.sendNEC(0xA55A38C7, 32);

चरण 4: इन्फोस सुर कोड RX433

L'envoie se fera avec la librairie RCSwitch.h

उदाहरण mySwitch.send(1975778, 24);

पीयूटी सुविधा पर पायलट एवेक सेला डेस प्राइज कमांड्स।

सिफारिश की: