Mündəricat:

Rescupérer Les Codes Infra-Rouge Et 433mhz: 4 addım
Rescupérer Les Codes Infra-Rouge Et 433mhz: 4 addım

Video: Rescupérer Les Codes Infra-Rouge Et 433mhz: 4 addım

Video: Rescupérer Les Codes Infra-Rouge Et 433mhz: 4 addım
Video: Télécommande Infra rouge 2/3 2024, Iyul
Anonim
Les Kodlarının İnfra-Rouge Et 433 MHz tezliyində
Les Kodlarının İnfra-Rouge Et 433 MHz tezliyində

Bu modellər, 433 mhz (RX433) sürətlə idarə olunan lampa, portable de garage və autre fonksiyona malikdir, infra-rouge de télévision au autre.

Əlavə olaraq, montaj işləri, kodların göndərilməsi və pilotun köməkçisi!

Addım 1: Le Montage

Le Montaj
Le Montaj

Sadə, Arduino Nano'da deyil, infraqırmızı və 433 mhz tezlikdə işləyir.

Addım 2: Le Code Arduino

// InfraRouge

#daxil edin

int recvPin = 11; // pin Arduino resreeur InfraRouge (TOSP4838)

IRrecv irrecv (recvPin);

// RX433

#daxil edin

RCSwitch mySwitch = RCSwitch ();

decode_results nəticələri;

boş quraşdırma ()

{

Serial.begin (9600);

irrecv.enableIRIn ();

irrecv.blink13 (doğru); // LED -lər internete daxil olmaqla, InfraRouge

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

}

// InfraRouge kodlarını təqdim edin

boş kod kodu (decode_results *nəticələr)

{

// Panasonic

əgər (nəticələr-> decode_type == PANASONIC) {

Serial.print (nəticələr-> ünvan, HEX);

Serial.print (":");

}

Serial.print (nəticələr-> dəyər, HEX);

} // boş

// kodları kodlaşdırmaq

boş kodlaşdırma (decode_results *nəticələr)

{

keçid (nəticələr-> deşifr_tipi) {

defolt:

bilinməyən hal: Serial.print ("Inconnu"); fasilə;

dava NEC: Serial.print ("NEC"); fasilə;

hal SONY: Serial.print ("SONY"); fasilə;

halda RC5: Serial.print ("RC5"); fasilə;

halda RC6: Serial.print ("RC6"); fasilə;

halda DISH: Serial.print ("DISH"); fasilə;

hal SHARP: Serial.print ("SHARP"); fasilə;

halda JVC: Serial.print ("JVC"); fasilə;

halda SANYO: Serial.print ("SANYO"); fasilə;

halda MITSUBISHI: Serial.print ("MITSUBISHI"); fasilə;

hal SAMSUNG: Serial.print ("SAMSUNG"); fasilə;

korpus LG: Serial.print ("LG"); fasilə;

hal WHYNTER: Serial.print ("WHYNTER"); fasilə;

halda AIWA_RC_T501: Serial.print ("AIWA_RC_T501"); fasilə;

hal PANASONIC: Serial.print ("PANASONIC"); fasilə;

dava DENON: Serial.print ("Denon"); fasilə;

}

}

// dump les résultats

void dumpInfo (decode_results *nəticələr)

{

// Tamponun daşdığını yoxlayın

if (results-> overflow) {

Serial.println ("IR kodu çox uzundur. IRremoteInt.h redaktə edin və RAWBUF artırın");

qayıtmaq;

}

// Kodlama standartını göstərin

Serial.print ("Encodage:");

kodlaşdırma (nəticələr);

Serial.println ("");

// Kodu və uzunluğu göstərin

Serial.print ("Kod:");

kod kodu (nəticələr);

Serial.print ("(");

Serial.print (nəticələr-> bit, DEC);

Serial.println ("bit"));

}

// quruluş

void dumpRaw (decode_results *nəticələr)

{

// Raw məlumatlarını çap edin

Serial.print ("Zamanlama [");

Serial.print (nəticələr-> rawlen-1, DEC);

Serial.println ("]:");

üçün (int i = 1; i rawlen; i ++) {

işarəsiz uzun x = nəticələr-> rawbuf * USECPERTICK;

if (! (i & 1)) {// hətta

Serial.print ("-");

əgər (x <1000) Serial.print ("");

əgər (x <100) Serial.print ("");

Serial.print (x, DEC);

} başqa {// qəribə

Serial.print ("");

Serial.print ("+");

əgər (x <1000) Serial.print ("");

əgər (x <100) Serial.print ("");

Serial.print (x, DEC);

if (i rawlen-1) Serial.print (","); // ',' sonuncu üçün lazım deyil

}

əgər (! (i % 8)) Serial.println ("");

}

Serial.println (""); // Yeni xətt

}

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

// decode_results quruluşunu atın.

//

boş dumpCode (decode_results *nəticələr)

{

// Bəyanata başlayın

Serial.print ("imzasız int"); // dəyişən növü

Serial.print ("rawData ["); // serialın adı

Serial.print (nəticələr-> rawlen - 1, DEC); // massiv ölçüsü

Serial.print ("] = {"); // Bəyanata başlayın

// Məlumatları atın

üçün (int i = 1; i rawlen; i ++) {

Serial.print (nəticələr-> rawbuf * USECPERTICK, DEC);

if (i rawlen-1) Serial.print (","); // ',' sonda lazım deyil

əgər (! (i & 1)) Serial.print ("");

}

// Bəyannaməni bitir

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

// Şərh

Serial.print ("//");

kodlaşdırma (nəticələr);

Serial.print ("");

kod kodu (nəticələr);

// Yeni xətt

Serial.println ("");

// İndi "bilinən" kodları atın

əgər (nəticələr-> decode_type! = BİLMƏYƏN) {

// Bəzi protokolların ünvanı var

əgər (nəticələr-> decode_type == PANASONIC) {

Serial.print ("imzasız int addr = 0x");

Serial.print (nəticələr-> ünvan, HEX);

Serial.println (";");

}

// Bütün protokollarda məlumatlar var

Serial.print ("imzasız int data = 0x");

Serial.print (nəticələr-> dəyər, HEX);

Serial.println (";");

}

}

boşluq döngəsi ()

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

{

decode_results nəticələri; // Nəticələri saxlamaq üçün bir yerdə

if (irrecv.decode (& nəticələr)) {// IR kodunu tutun

dumpInfo (& nəticələr); // Nəticələri çıxarın

dumpRaw (və nəticələr); // Nəticələri RAW formatında çıxarın

dumpCode (və nəticələr); // Nəticələri mənbə kodu kimi çıxarın

Serial.println (""); // Girişlər arasındakı boş xətt

irrecv. resume (); // Növbəti dəyərə hazırlaşın

}

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

əgər (mySwitch.available ())

{

int dəyəri = mySwitch.getReceivedValue ();

Serial.println ("RX433");

əgər (dəyər == 0) {

Serial.print ("Codage inconnu");

} başqa

{

Serial.print ("Reçu");

Serial.print (mySwitch.getReceivedValue ());

Serial.print (" /");

Serial.print (mySwitch.getReceivedBitlength ());

Serial.print ("bit");

Serial.print ("Protocole:");

Serial.println (mySwitch.getReceivedProtocol ());

}

mySwitch.resetAvailable ();

} // RX433

} // döngə

Addım 3: Infra-Rouge Kodları haqqında məlumat

Plusieurs protokolları:

NEC: 32 bit (protokol detalları)

Sony: 12 ou 20 bit (protokol detalları) (Sony IR uzaq kodlarını anlamaq.)

RC5: 12 bit (protokol detalları)

RC6: 20 ou 36 bit (protokol detalları)

Sony və RC5/6 tökün, bu zaman 3 ötürmə göndərin!

DİQQƏT: IRremote.h xidməti, üstəlik, 32 bit kodların kodlarını göndərir. Les RC6, 36 heç bir işçi tərəfindən göndərilməmişdir, həm də əvvəlcədən və daha sonra.

IRremote.h ilə əlaqəli kodların siyahısı

Nümunə: (0x devant le code) və bit irsend.sendNEC (0xA55A38C7, 32);

Addım 4: Məlumat Sur Kodları RX433

RCSwitch.h ilə əlaqə qurun

Məsələn, mySwitch.send (1975778, 24);

Peut facilement pilotu avec cela des prises commandés.

Tövsiyə: