ዝርዝር ሁኔታ:

Récupérer Les Codes Infra-Rouge Et 433mhz: 4 ደረጃዎች
Récupérer Les Codes Infra-Rouge Et 433mhz: 4 ደረጃዎች

ቪዲዮ: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 ደረጃዎች

ቪዲዮ: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 ደረጃዎች
ቪዲዮ: Télécommande Infra rouge 2/3 2024, ሀምሌ
Anonim
ሪሴፕሰር Les ኮዶች ኢንፍራ-ሩዥ ኤት 433 ሜኸ
ሪሴፕሰር Les ኮዶች ኢንፍራ-ሩዥ ኤት 433 ሜኸ

Le but est d’afficher les codes des télécommandes du style commande de lampe, porte de garage et autre fonctionnant sous 433 mhz (RX433) mais aussi ceux des télécommandes infra-rouge de télévision au autre.

በዱራ ዶን ensuite ፣ grâce à une autre montage ፣ መልእክተኛ ኮዶች እና አብራሪ ያለአንዳች ሁኔታ!

ደረጃ 1: Le Montage

ለ ሞንታጌ
ለ ሞንታጌ

ቀላል ፣ አንድ አርዱዲኖ ናኖ ፣ አንድ ዲዮዲ ሪሴሪተር ኢንፍራ-ሩዥ እና አንድ ራሴተር 433 ሜኸ።

ደረጃ 2: Le Code Arduino

// ኢንፍራግራግ

#ያካትቱ

int recvPin = 11; // ሚስማር አርዱinoኖ የሬሴተር ኢንፍራሮጅ (TOSP4838)

IRrecv irrecv (recvPin);

// RX433

#ያካትቱ

RCSwitch mySwitch = RCSwitch ();

የ decode_results ውጤቶች;

ባዶነት ማዋቀር ()

{

Serial.begin (9600);

irrecv.enableIRIn ();

irrecv.blink13 (እውነት); // allume la LED interne lors de l'envoie InfraRouge

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

}

// affichage des ኮዶች InfraRouge

ባዶ ኮድ (ዲኮድ_ ውጤቶች *ውጤቶች)

{

// ፓናሶናዊ

ከሆነ (ውጤቶች-> decode_type == PANASONIC) {

Serial.print (ውጤቶች-> አድራሻ ፣ HEX);

Serial.print (":");

}

Serial.print (ውጤቶች-> እሴት ፣ HEX);

} // ባዶ

// afficahge des ኮዶች encodés

ባዶ ኮድ (ዲኮ_ ውጤቶች *ውጤቶች)

{

መቀየሪያ (ውጤቶች-> ዲኮድ_አይነት) {

ነባሪ ፦

ጉዳዩ ያልታወቀ: Serial.print ("Inconnu"); ሰበር;

ጉዳይ NEC: Serial.print ("NEC"); ሰበር;

ጉዳይ SONY: Serial.print ("SONY"); ሰበር;

ጉዳይ RC5: Serial.print ("RC5"); ሰበር;

ጉዳይ RC6: Serial.print ("RC6"); ሰበር;

ጉዳይ 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"); ሰበር;

ጉዳይ ፓናሶኒክ: Serial.print ("PANASONIC"); ሰበር;

ጉዳይ DENON: Serial.print ("Denon"); ሰበር;

}

}

// dump les résultats

ባዶ ባዶ መረጃ (ዲኮድ_ ውጤቶች *ውጤቶች)

{

// ቋሚው ሞልቶ ከሆነ ያረጋግጡ

ከሆነ (ውጤቶች-> ከመጠን በላይ) {

Serial.println ("IR code too long. IRremoteInt.h ን አርትዕ እና RAWBUF ን ጨምር");

መመለስ;

}

// የኢኮዲንግ ደረጃን አሳይ

Serial.print ("Encodage:");

ኢንኮዲንግ (ውጤቶች);

Serial.println ("");

// ኮድ እና ርዝመት አሳይ

Serial.print ("ኮድ:");

ኢርኮድ (ውጤቶች);

Serial.print ("(");

Serial.print (ውጤቶች-> ቢት ፣ DEC);

Serial.println ("bits" ");

}

// መዋቅር

ባዶ ቆሻሻ መጣያ (ዲኮድ_ ውጤቶች *ውጤቶች)

{

// ጥሬ ውሂብን ያትሙ

Serial.print ("ጊዜ ["]);

Serial.print (ውጤቶች-> rawlen-1, DEC);

Serial.println ("]:");

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

ያልተፈረመ ረጅም x = ውጤቶች-> ጥሬቡፍ * USECPERTICK;

ከሆነ (! (i & 1)) {// እንኳን

Serial.print ("-");

ከሆነ (x <1000) Serial.print ("");

ከሆነ (x <100) Serial.print ("");

Serial.print (x, DEC);

} ሌላ {// እንግዳ

Serial.print ("");

Serial.print ("+");

ከሆነ (x <1000) Serial.print ("");

ከሆነ (x <100) Serial.print ("");

Serial.print (x, DEC);

ከሆነ (i rawlen-1) Serial.print (","); // '፣' ለመጨረሻው አያስፈልግም

}

ከሆነ (! (i % 8)) Serial.println ("");

}

Serial.println (""); // አዲስ መስመር

}

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

// የ decod_results አወቃቀሩን ያውጡ።

//

ባዶ የቆሻሻ መጣያ ኮድ (ዲኮድ_ ውጤቶች *ውጤቶች)

{

// መግለጫን ይጀምሩ

Serial.print ("ያልተፈረመ int"); // ተለዋዋጭ ዓይነት

Serial.print ("rawData ["); // የድርድር ስም

Serial.print (results-> rawlen - 1, DEC); // የድርድር መጠን

Serial.print ("] = {"); // መግለጫን ይጀምሩ

// የውሂብ መጣል

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

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

ከሆነ (i rawlen-1) Serial.print (","); // '፣' በመጨረሻው ላይ አያስፈልግም

ከሆነ (! (i & 1)) Serial.print ("");

}

// መግለጫን ጨርስ

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

// አስተያየት ይስጡ

Serial.print ("//");

ኢንኮዲንግ (ውጤቶች);

Serial.print ("");

ኢርኮድ (ውጤቶች);

// አዲስ መስመር

Serial.println ("");

// አሁን “የታወቁ” ኮዶችን ይጥሉ

ከሆነ (ውጤቶች-> ዲኮድ_አይነት! = ያልታወቀ) {

// አንዳንድ ፕሮቶኮሎች አድራሻ አላቸው

ከሆነ (ውጤቶች-> decode_type == PANASONIC) {

Serial.print ("ያልተፈረመ int addr = 0x");

Serial.print (ውጤቶች-> አድራሻ ፣ HEX);

Serial.println (";");

}

// ሁሉም ፕሮቶኮሎች ውሂብ አላቸው

Serial.print ("ያልተፈረመ int ውሂብ = 0x");

Serial.print (ውጤቶች-> እሴት ፣ HEX);

Serial.println (";");

}

}

ባዶነት loop ()

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

{

የ decode_results ውጤቶች; // ውጤቱን ለማከማቸት የሆነ ቦታ

ከሆነ (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

} // loop

ደረጃ 3: Infos ሱር Les ኮዶች ኢንፍራ-ሩዥ

እኔ እና ተጨማሪዎች ፕሮቶኮሎች -

NEC: 32 ቢት (የፕሮቶኮል ዝርዝሮች)

ሶኒ 12 ወይም 20 ቢት (የፕሮቶኮል ዝርዝሮች) (የ Sony IR የርቀት ኮዶችን መረዳት።)

RC5: 12 ቢት (የፕሮቶኮል ዝርዝሮች)

RC6: 20 ወይም 36 ቢት (የፕሮቶኮል ዝርዝሮች)

አፍስሱ ሶኒ እና RC5/6 ፣ chaque ማስተላለፍ doit être répétés 3 fois!

ትኩረት: ላ librairie IRremote.h ne semble pas pouvoir envoyer des codes codés sur plus de 32bits. Les RC6, 36 doivent donc êtres envoyer en ጥሬ, qui prennent plus de taille mémoire.

L’envoie des ኮዶች se fera avec la librairie IRremote.h

ምሳሌ - (0x ተዛማጅ ኮድ) እና ለቁጥር irsend.sendNEC (0xA55A38C7 ፣ 32);

ደረጃ 4 Infos Sur Codes RX433

L’envoie se fera avec la librairie RCSwitch.h

ምሳሌ mySwitch.send (1975778 ፣ 24);

በ peut facilement አብራሪ Avec cela des prises commandes።

የሚመከር: