Orodha ya maudhui:

Mchezaji Les Codes Infra-Rouge Et 433mhz: 4 Hatua
Mchezaji Les Codes Infra-Rouge Et 433mhz: 4 Hatua

Video: Mchezaji Les Codes Infra-Rouge Et 433mhz: 4 Hatua

Video: Mchezaji Les Codes Infra-Rouge Et 433mhz: 4 Hatua
Video: Урок 101. Использование ИК-пульта дистанционного управления для управления телевизором, лампочкой переменного тока с реле, двигателем постоянного тока и серводвигателем. 2024, Novemba
Anonim
Mtaalam Les Codes Infra-Rouge Et 433mhz
Mtaalam Les Codes Infra-Rouge Et 433mhz

Hizi ni kanuni za msingi za mtindo wa taa, uwanja wa karakana na simu zinazoweza kutumiwa kwa watu 433 mhz (RX433) zinaweza kutumiwa na maafisa wa infra-rouge de télévision au autre.

Juu ya njia nyingine ya kufanya, grâce à une autre montage, envoyer ces codes et piloter n’importe quoi!

Hatua ya 1: Le Montage

Le Montage
Le Montage

Rahisi, un Arduino Nano, una diode réceptrice infra-rouge et un récepteur 433 mhz.

Hatua ya 2: Le Code Arduino

// InfraRouge

# pamoja

int recvPin = 11; // pini Arduino mimina mpokeaji InfraRouge (TOSP4838)

IRrecv irrecv (recvPin);

// RX433

# pamoja

RCSwitch mySwitch = RCSwitch ();

namua matokeo_ya matokeo;

kuanzisha batili ()

{

Serial. Kuanza (9600);

irrecv.wezeshwaIRIn ();

irrecv.blink13 (kweli); // allume la vipindi vya LED vya infraRouge

mySwitch.enablePokea (0); // Mpokeaji RX433 (XY-MK-5V) juu ya pini 2 ya Arduino Uno na Nano

}

// affichage des codes InfraRouge

ircode batili (namua matokeo_ya matokeo *)

{

// Panasonic

ikiwa (matokeo-> decode_type == PANASONIC) {

Serial.print (matokeo-> anwani, HEX);

Serial.print (":");

}

Serial.print (matokeo-> thamani, HEX);

} // batili

// afficahge des codes encodés

Usimbuaji batili (namua matokeo_ya matokeo *)

{

badilisha (matokeo-> decode_type) {

chaguomsingi:

kesi HAIJULIKANI: Serial.print ("Inconnu"); kuvunja;

kesi NEC: Serial.print ("NEC"); kuvunja;

kesi SONY: Serial.print ("SONY"); kuvunja;

kesi RC5: Serial.print ("RC5"); kuvunja;

kesi RC6: Serial.print ("RC6"); kuvunja;

kesi DISH: Serial.print ("DISH"); kuvunja;

kesi SHARP: Serial.print ("SHARP"); kuvunja;

kesi JVC: Serial.print ("JVC"); kuvunja;

kesi SANYO: Serial.print ("SANYO"); kuvunja;

kesi MITSUBISHI: Serial.print ("MITSUBISHI"); kuvunja;

kesi SAMSUNG: Serial.print ("SAMSUNG"); kuvunja;

kesi LG: Serial.print ("LG"); kuvunja;

kesi WHYNTER: Serial.print ("WHYNTER"); kuvunja;

kesi AIWA_RC_T501: Serial.print ("AIWA_RC_T501"); kuvunja;

kesi PANASONIC: Serial.print ("PANASONIC"); kuvunja;

kesi DENON: Serial.print ("Denon"); kuvunja;

}

}

// dampo lesultes

dumpInfo batili (namua matokeo_ya matokeo)

{

// Angalia ikiwa bafa imejaa

ikiwa (matokeo-> kufurika) {

Serial.println ("Nambari ya IR ndefu sana. Hariri IRremoteInt.h na uongeze RAWBUF");

kurudi;

}

// Onyesha kiwango cha Usimbuaji

Serial.print ("Encodage:");

encoding (matokeo);

Serial.println ("");

// Onyesha Msimbo na urefu

Serial.print ("Nambari:");

ircode (matokeo);

Serial.print ("(");

Serial.print (matokeo-> bits, DEC);

Serial.println ("bits)");

}

// muundo

dumpRaw batili (namua matokeo_ya matokeo *)

{

// Chapisha data Mbichi

Serial.print ("Muda [");

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

Serial.println ("]:");

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

saini ndefu x = matokeo-> rawbuf * USECPERTICK;

ikiwa (! (i & 1)) {// hata

Serial.print ("-");

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

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

Printa ya serial (x, DEC);

} mwingine {// isiyo ya kawaida

Serial.print ("");

Serial.print ("+");

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

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

Printa ya serial (x, DEC);

ikiwa (i rawlen-1) Serial.print (","); // ',' haihitajiki kwa moja ya mwisho

}

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

}

Serial.println (""); // Mpya

}

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

// Tupa muundo wa matokeo ya kusimbua.

//

dumpCode ya utupu (chagua matokeo_ya matokeo *)

{

// Anza tamko

Serial.print ("unsigned int"); // aina ya kutofautisha

Serial.print ("rawData ["); // jina la safu

Serial.print (matokeo-> rawlen - 1, DEC); // ukubwa wa safu

Serial.print ("] = {"); // Anza tamko

// Tupa data

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

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

ikiwa (i rawlen-1) Serial.print (","); // ',' haihitajiki mwisho

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

}

// Tamko la mwisho

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

// Maoni

Serial.print ("//");

encoding (matokeo);

Serial.print ("");

ircode (matokeo);

// Mpya

Serial.println ("");

// Sasa toa nambari "zinazojulikana"

ikiwa (matokeo-> amua aina_ya aina! = HAIJULIKANI) {

// Baadhi ya itifaki zina anwani

ikiwa (matokeo-> decode_type == PANASONIC) {

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

Serial.print (matokeo-> anwani, HEX);

Serial.println (";");

}

// Itifaki zote zina data

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

Serial.print (matokeo-> thamani, HEX);

Serial.println (";");

}

}

kitanzi batili ()

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

{

namua matokeo_ya matokeo; // Mahali pengine pa kuhifadhi matokeo

ikiwa (irrecv.decode (na matokeo)) {// Shikilia nambari ya IR

dumpInfo (& matokeo); // Matokeo ya matokeo

dumpRaw (& matokeo); // Pata matokeo katika muundo wa RAW

dumpCode (& matokeo); // Pata matokeo kama msimbo wa chanzo

Serial.println (""); // Mstari tupu kati ya viingilio

kuendelea irrecv (); // Andaa kwa thamani inayofuata

}

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

ikiwa (mySwitch haipatikani ())

{

thamani ya int = mySwitch.getReceivedValue ();

Serial.println ("RX433");

ikiwa (thamani == 0) {

Serial.print ("Codage inconnu");

} mwingine

{

Serial.print ("Reçu");

Serial.print (mySwitch.getReceivedValue ());

Serial.print ("/");

Printa ya serial (mySwitch.getReceivedBitlength ());

Serial.print ("kidogo");

Serial.print ("Itifaki:");

Serial.println (mySwitch.getReceivedProtocol ());

}

mySwitch.resetInapatikana ();

} // RX433

} // kitanzi

Hatua ya 3: Infos Sur Les Codes Infra-Rouge

Itifaki ya wazidishaji zaidi:

NEC: bits 32 (maelezo ya itifaki)

Sony: 12 ou 20 bits (maelezo ya itifaki) (Kuelewa nambari za kijijini za Sony IR.)

RC5: bits 12 (maelezo ya itifaki)

RC6: 20 ou bits 36 (maelezo ya itifaki)

Pour Sony et RC5 / 6, chaque transmission do it is fépre répétés 3 fois!

TAHADHARI: la librairie IRremote.h na semble pas pouvoir envoyer des codes codés sur plus de 32bits. Les RC6, 36 doivent donc êtres envoyer en raw, qui prennent plus de taille mémoire.

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

Mfano: (0x devant le code) et le nombre de bits irsend.sendNEC (0xA55A38C7, 32);

Hatua ya 4: Nambari za Suros za RX433

L'envoie se fera avec la librairie RCSwitch.h

Mfano mySwitch.send (1975778, 24);

Kwenye rubani wa uso wa uso wa macho.

Ilipendekeza: