Мазмұны:

Les Codes Infra-Rouge Et 433mhz рецепторы: 4 қадам
Les Codes Infra-Rouge Et 433mhz рецепторы: 4 қадам

Бейне: Les Codes Infra-Rouge Et 433mhz рецепторы: 4 қадам

Бейне: Les Codes Infra-Rouge Et 433mhz рецепторы: 4 қадам
Бейне: [Bonus] Télécommande infrarouge : la version qui marche ! 2024, Қараша
Anonim
Les Codes Infra-Rouge Et 433mhz рецепторы
Les Codes Infra-Rouge Et 433mhz рецепторы

Бұл жерде 433 МГц (RX433) инфрақұрылымының инфрақұрылымы бар гараж мен автокөлік құралдарының стилі командалық сипатта болады.

Donc ensuite, grâce à une autre монтаж, кодты жіберуші және пилоттық нұсқаулар!

1 -қадам: Ле Монтаж

Ле Монтаж
Ле Монтаж

Қарапайым, Arduino Nano емес, инфрақызыл диодты ажыратпайтын және 433 МГц жиіліксіз.

2 -қадам: Le Code Arduino

// InfraRouge

#қосу

int recvPin = 11; // InfluRouge (TOSP4838) қабылдағышты Arduino арқылы құю

IRrecv irrecv (recvPin);

// RX433

#қосу

RCSwitch mySwitch = RCSwitch ();

decode_results нәтижелері;

жарамсыз орнату ()

{

Serial.begin (9600);

irrecv.enableIRIn ();

irrecv.blink13 (ақиқат); // жарықдиодты интернеттің инфрақұрылымы

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

}

// InfraRouge кодтарының аффигурасы

жарамсыз код (decode_results *нәтижелері)

{

// Panasonic

егер (нәтижелер-> декодтау_түрі == ПАНАСОНИК) {

Serial.print (нәтижелер-> адрес, HEX);

Serial.print («:»);

}

Serial.print (нәтижелер-> мән, HEX);

} // жарамсыз

// afficahge des encodés кодтары

жарамсыз кодтау (decode_results *нәтижелері)

{

қосқыш (нәтижелер-> декодтау_түрі) {

әдепкі:

белгісіз жағдай: Serial.print («Inconnu»); үзіліс;

жағдай NEC: Serial.print («NEC»); үзіліс;

Case SONY: Serial.print («SONY»); үзіліс;

жағдай RC5: Serial.print («RC5»); үзіліс;

жағдай RC6: Serial.print («RC6»); үзіліс;

case 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»); үзіліс;

case WHYNTER: Serial.print («WHYNTER»); үзіліс;

жағдай AIWA_RC_T501: Serial.print («AIWA_RC_T501»); үзіліс;

жағдай PANASONIC: Serial.print («PANASONIC»); үзіліс;

жағдай DENON: Serial.print («Denon»); үзіліс;

}

}

// dump les résultats

void dumpInfo (decode_results *нәтижелері)

{

// Буфердің толып кеткенін тексеріңіз

if (нәтижелер-> толып кету) {

Serial.println («IR коды тым ұзын. IRremoteInt.h өңдеу және RAWBUF ұлғайту»);

қайтару;

}

// Кодтау стандартын көрсету

Serial.print («Encodage:»);

кодтау (нәтижелер);

Serial.println («»);

// Кодты және ұзындығын көрсету

Serial.print («Код:»);

иркод (нәтижелер);

Serial.print («(»);

Serial.print (нәтиже-> бит, DEC);

Serial.println («бит»));

}

//құрылым

void dumpRaw (decode_results *нәтижелері)

{

// Raw деректерді басып шығару

Serial.print («Хронометраж [»);

Serial.print (нәтижелер-> rawlen-1, DEC);

Serial.println («]:»);

үшін (int i = 1; i rawlen; i ++) {

белгісіз ұзақ x = нәтиже-> rawbuf * USECPERTICK;

if (! (i & 1)) {// жұп

Serial.print («-»);

if (x <1000) Serial.print («»);

if (x <100) Serial.print («»);

Serial.print (x, DEC);

} басқа {// тақ

Serial.print («»);

Serial.print («+»);

if (x <1000) Serial.print («»);

if (x <100) Serial.print («»);

Serial.print (x, DEC);

if (i rawlen-1) Serial.print («,»); // ',' соңғы үшін қажет емес

}

if (! (i % 8)) Serial.println («»);

}

Serial.println («»); // Жаңа жол

}

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

// decode_results құрылымын шығарыңыз.

//

жарамсыз dumpCode (decode_results *нәтижелері)

{

// Декларацияны бастаңыз

Serial.print («unsigned int»); // айнымалы түрі

Serial.print («rawData [»); // массив атауы

Serial.print (нәтижелер-> rawlen - 1, DEC); // массив өлшемі

Serial.print («] = {»); // Декларацияны бастаңыз

// Деректерді төгу

үшін (int i = 1; i rawlen; i ++) {

Serial.print (нәтижелер-> rawbuf * USECPERTICK, DEC);

if (i rawlen-1) Serial.print («,»); // ',' соңғысына қажет емес

if (! (i & 1)) Serial.print («»);

}

// Декларацияны аяқтау

Serial.print («};»); //

// Пікір

Serial.print («//»);

кодтау (нәтижелер);

Serial.print («»);

иркод (нәтижелер);

// Жаңа жол

Serial.println («»);

// Енді «белгілі» кодтарды тастаңыз

if (results-> decode_type! = БЕЛГІСІЗ) {

// Кейбір протоколдардың адресі болады

егер (нәтижелер-> декодтау_түрі == ПАНАСОНИК) {

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

Serial.print (нәтижелер-> адрес, HEX);

Serial.println («;»);

}

// Барлық хаттамаларда мәліметтер бар

Serial.print («unsigned int data = 0x»);

Serial.print (нәтижелер-> мән, HEX);

Serial.println («;»);

}

}

бос цикл ()

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

{

decode_results нәтижелері; // Нәтижелерді сақтау үшін бір жерде

if (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 («Протоколь:»);

Serial.println (mySwitch.getReceivedProtocol ());

}

mySwitch.resetAvailable ();

} // RX433

} // цикл

3-қадам: Infes-Rouge суреттері туралы ақпарат

Il y a plusieurs протоколдары:

NEC: 32 бит (хаттама мәліметтері)

Sony: 12 ou 20 bit (протокол мәліметтері) (Sony IR қашықтан басқару кодтарын түсіну.)

RC5: 12 бит (хаттама мәліметтері)

RC6: 20 немесе 36 бит (хаттама мәліметтері)

Sony et RC5/6 құйыңыз, 3 жіберу!

НАЗАР АУДАРЫҢЫЗ: IRremote.h не semble pas pouvoir envoyer codés sur plus de 32bits. Les RC6, 36 -да жұмыс жасамайды.

IRremote.h кодының құпия сөзі

Мысал: (0x devant le code) және басқалары irsend.sendNEC (0xA55A38C7, 32);

4 -қадам: RX433 сур кодтары туралы ақпарат

L'envoie se fera avec la librairie RCSwitch.h

Мысал mySwitch.send (1975778, 24);

Peut facilement бойынша ұшқыш avec cela des prises commandés.

Ұсынылған: