Mündəricat:
- Addım 1: Le Montage
- Addım 2: Le Code Arduino
- Addım 3: Infra-Rouge Kodları haqqında məlumat
- Addım 4: Məlumat Sur Kodları RX433
Video: Rescupérer Les Codes Infra-Rouge Et 433mhz: 4 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
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
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ə:
HT12D HT12E istifadə edərək RF 433MHZ Radio İdarəetmə - 433mhz ilə HT12E və HT12D istifadə edərək Rf Uzaqdan İdarəetmə edilməsi: 5 addım
HT12D HT12E istifadə edərək RF 433MHZ Radio İdarəetmə | HT12E və HT12D -dən 433mhz istifadə edərək Rf Uzaqdan İdarəetmə edilməsi: Bu təlimatda sizə HT12E kodlu 433mhz ötürücü qəbuledici modulu istifadə edərək RADIO uzaqdan idarə etməyi göstərəcəyəm. HT12D kod deşifratoru IC. Bu təlimatda çox ucuz komponentləri istifadə edərək məlumat göndərə və ala bilərsiniz: HT
AVR (ATMEGA32) MCU istifadə edərək INFRA QIRMIZI KONTROLLÜ ROBOCAR: 5 addım
AVR (ATMEGA32) MCU İSTİFADƏ EDƏN INFRA QIRMIZI KONTROLLÜ ROBOKAR: Bu layihə, müxtəlif avtomatlaşdırılmış insansız idarəetmə tətbiqləri üçün istifadə edilə bilən infraqırmızı (IR) uzaqdan idarə olunan RoboCar dizaynını və tətbiqini təsvir edir. Uzaqdan idarə olunan RoboCar (sol-sağ/ön-arxa hərəkət) dizayn etdim. T
RF Modulu 433MHZ - Heç bir Mikrokontrolör olmadan 433MHZ RF Modulundan Alıcı və Verici hazırlayın: 5 addım
RF Modulu 433MHZ | 433MHZ RF Modulundan Heç bir Mikrokontrolör Olmadan Alıcı və Verici Edin: Simsiz məlumat göndərmək istərdinizmi? asanlıqla və heç bir mikro nəzarətçiyə ehtiyac yoxdur? İşdə gedirik, bu təlimatda sizə istifadəyə hazır olan əsas rf ötürücü və qəbuledicisini göstərəcəyəm! Bu təlimatda çox ver istifadə edərək məlumat göndərə və ala bilərsiniz
Boş Deodorant Çubuğunda 'Deodorino' - Infra -Red Controlled Arduino təqdim olunur. 1 -ci Şəkilə vurun: 7 addım
Boş Deodorant Çubuğunda 'Deodorino' - Infra -Red İdarəli Arduino təqdim olunur. 1 -ci Şəkilə vurun: İndi detallara keçək
Infra-Red Panel Timer: 4 Addım (Şəkillərlə birlikdə)
Infra-Red Panel Timer: Evimin yuxarı mərtəbəsindəki otaqlardan birində Infra Red paneli var. Mən o otaqda olanda və bu paneli açanda bəzən söndürməyi unuduram ki, bu da dəyərli enerji itkisidir. Bunun qarşısını almaq üçün bu infraqırmızı panel panelini qurdum