Satura rādītājs:

Récupérer Les Codes Infra-Rouge Et 433mhz: 4 soļi
Récupérer Les Codes Infra-Rouge Et 433mhz: 4 soļi

Video: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 soļi

Video: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 soļi
Video: Télécommande dupliqueuse de BIP 2024, Novembris
Anonim
Récupérer Les Codes Infra-Rouge Et 433mhz
Récupérer Les Codes Infra-Rouge Et 433mhz

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

Uz pourra donc ensuite, grâce à une autre montāža, sūtņa ces code et piloter n’importe quoi!

1. darbība: Le Montage

Le Montage
Le Montage

Vienkāršs, bez Arduino Nano, bez diodes réceptrice infra-rouge et un récepteur 433 mhz.

2. darbība: Le Code Arduino

// InfraRouge

#iekļaut

int recvPin = 11; // pin Arduino pour récepteur InfraRouge (TOSP4838)

IRrecv irrecv (recvPin);

// RX433

#iekļaut

RCSwitch mySwitch = RCSwitch ();

decode_results rezultāti;

anulēts iestatījums ()

{

Sērijas sākums (9600);

irrecv.enableIRIn ();

irrecv.blink13 (true); // allume la LED interne lors de l'envoie InfraRouge

mySwitch.enableRecept (0); Récepteur RX433 (XY-MK-5V) ar Arduino Uno et Nano 2 tapu

}

// affichage des kodi InfraRouge

void ircode (decode_results *rezultāti)

{

// Panasonic

ja (rezultāti-> atšifrēt_tips == PANASONIC) {

Serial.print (rezultāti-> adrese, HEX);

Serial.print (":");

}

Serial.print (rezultāti-> vērtība, HEX);

} // nav spēkā

// afficahge des kodus encodés

tukšs kodējums (decode_results *rezultāti)

{

slēdzis (rezultāti-> atšifrēt_tips) {

noklusējums:

gadījums UNKNOWN: Serial.print ("Inconnu"); pārtraukums;

gadījums NEC: Serial.print ("NEC"); pārtraukums;

korpuss SONY: Serial.print ("SONY"); pārtraukums;

korpuss RC5: sērijas nospiedums ("RC5"); pārtraukums;

korpuss RC6: Sērijas nospiedums ("RC6"); pārtraukums;

korpuss DISH: Serial.print ("DISH"); pārtraukums;

korpuss SHARP: Serial.print ("SHARP"); pārtraukums;

gadījums JVC: Serial.print ("JVC"); pārtraukums;

korpuss SANYO: Serial.print ("SANYO"); pārtraukums;

korpuss MITSUBISHI: Serial.print ("MITSUBISHI"); pārtraukums;

korpuss SAMSUNG: Serial.print ("SAMSUNG"); pārtraukums;

korpuss LG: Serial.print ("LG"); pārtraukums;

gadījums WHYNTER: Serial.print ("WHYNTER"); pārtraukums;

gadījums AIWA_RC_T501: Serial.print ("AIWA_RC_T501"); pārtraukums;

futrālis PANASONIC: Serial.print ("PANASONIC"); pārtraukums;

korpuss DENON: Serial.print ("Denon"); pārtraukums;

}

}

// dump les résultats

void dumpInfo (decode_results *rezultāti)

{

// Pārbaudiet, vai buferis nav pārpildīts

ja (rezultāti-> pārpilde) {

Serial.println ("IR kods pārāk garš. Rediģēt IRremoteInt.h un palielināt RAWBUF");

atgriešanās;

}

// Rādīt kodēšanas standartu

Serial.print ("Kodēt:");

kodēšana (rezultāti);

Serial.println ("");

// Rādīt kodu un garumu

Serial.print ("Kods:");

ircode (rezultāti);

Serial.print ("(");

Serial.print (rezultāti-> biti, DEC);

Serial.println ("biti"));

}

// struktūra

void dumpRaw (decode_results *rezultāti)

{

// Izdrukāt neapstrādātus datus

Serial.print ("Laiks [");

Serial.print (rezultāti-> rawlen-1, DEC);

Sērijas.println ("]:");

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

neparakstīts garš x = rezultāti-> rawbuf * USECPERTICK;

ja (! (i & 1)) {// pat

Serial.print ("-");

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

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

Sērijas nospiedums (x, DEC);

} cits {// nepāra

Serial.print ("");

Sērijas nospiedums ("+");

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

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

Sērijas nospiedums (x, DEC);

ja (i rawlen-1) Serial.print (","); // ',' nav vajadzīgs pēdējam

}

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

}

Serial.println (""); // Jauna līnija

}

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

// Izmest struktūru decode_results.

//

void dumpCode (decode_results *rezultāti)

{

// Sākt deklarāciju

Serial.print ("neparakstīts int"); // mainīgā tips

Serial.print ("rawData ["); // masīva nosaukums

Serial.print (rezultāti-> rawlen - 1, DEC); // masīva lielums

Sērijas.druka ("] = {"); // Sākt deklarāciju

// Izmest datus

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

Serial.print (rezultāti-> rawbuf * USECPERTICK, DEC);

ja (i rawlen-1) Serial.print (","); // ',' nav vajadzīgs pēdējā

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

}

// Beigu deklarācija

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

// komentēt

Serial.print ("//");

kodēšana (rezultāti);

Serial.print ("");

ircode (rezultāti);

// Jauna līnija

Serial.println ("");

// Tagad izmetiet "zināmos" kodus

ja (rezultāti-> atšifrēt_tips! = NEZINĀTS) {

// Dažiem protokoliem ir adrese

ja (rezultāti-> atšifrēt_tips == PANASONIC) {

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

Serial.print (rezultāti-> adrese, HEX);

Sērijas.println (";");

}

// Visiem protokoliem ir dati

Serial.print ("neparakstīti int dati = 0x");

Serial.print (rezultāti-> vērtība, HEX);

Sērijas.println (";");

}

}

tukša cilpa ()

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

{

decode_results rezultāti; // Kaut kur saglabāt rezultātus

if (irrecv.decode (& rezultāti)) {// Paņemiet IR kodu

dumpInfo (& rezultāti); // Izvadiet rezultātus

dumpRaw (& rezultāti); // Izvadiet rezultātus RAW formātā

dumpCode (& rezultāti); // Izvadiet rezultātus kā avota kodu

Serial.println (""); // Tukša līnija starp ierakstiem

irrecv.resume (); // Sagatavojieties nākamajai vērtībai

}

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

ja (mySwitch.available ())

{

int vērtība = mySwitch.getReceivedValue ();

Serial.println ("RX433");

ja (vērtība == 0) {

Serial.print ("Codage inconnu");

} cits

{

Serial.print ("Reçu");

Serial.print (mySwitch.getReceivedValue ());

Serial.print (" /");

Serial.print (mySwitch.getReceivedBitlength ());

Serial.print ("bits");

Serial.print ("Protokols:");

Serial.println (mySwitch.getReceivedProtocol ());

}

mySwitch.resetAvailable ();

} // RX433

} // cilpa

3. solis: Infos Sur Les Codes Infra-Rouge

Il y plusieurs protokoli:

NEC: 32 biti (protokola informācija)

Sony: 12 ou 20 biti (protokola informācija) (izpratne par Sony IR tālvadības kodiem.)

RC5: 12 biti (protokola informācija)

RC6: 20 vai 36 biti (protokola informācija)

Ielieciet Sony un RC5/6, izmantojot necaurspīdīgu pārnesumkārbu, veiciet 3 fišus!

UZMANĪBU: la librairie IRremote.h ne semble pas pouvoir envoyer des kodus 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 kodus se fera avec la librairie IRremote.h

Piemērs: (0x devant le code) un nombre de bits irsend.sendNEC (0xA55A38C7, 32);

4. darbība. Informācijas Sur kodi RX433

L’envoie se fera avec la librairie RCSwitch.h

Piemērs mySwitch.send (1975778, 24);

Par peut facilement pilotam avec cela des prises commandés.

Ieteicams: