Turinys:

Récupérer Les Codes Infra-Rouge ir 433mhz: 4 žingsniai
Récupérer Les Codes Infra-Rouge ir 433mhz: 4 žingsniai

Video: Récupérer Les Codes Infra-Rouge ir 433mhz: 4 žingsniai

Video: Récupérer Les Codes Infra-Rouge ir 433mhz: 4 žingsniai
Video: Télécommande universelle, pour portail ou garage automatique. 2024, Lapkritis
Anonim
Récupérer Les Codes Infra-Rouge ir 433mhz
Récupérer Les Codes Infra-Rouge ir 433mhz

Išsami informacija apie tai, kokius stilius turi komandinės lempos, porto de garažas ir autofoninis 433 mhz (RX433) nuotolinio valdymo įtaisas.

Vonios kambaryje, grâce à une autre montavimas, pasiuntinio kodai ir piloto n'importe quoi!

1 žingsnis: „Le Montage“

Le Montage
Le Montage

Paprastas, be „Arduino Nano“, be infraraudonųjų spindulių ir 433 MHz dažnis.

2 žingsnis: „Le Code Arduino“

// InfraRouge

#įtraukti

int recvPin = 11; // kaištis „Arduino pour récepteur InfraRouge“(TOSP4838)

IRrecv irrecv (recvPin);

// RX433

#įtraukti

RCSwitch mySwitch = RCSwitch ();

decode_results rezultatai;

negaliojanti sąranka ()

{

Serial.begin (9600);

irrecv.enableIRIn ();

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

mySwitch.enableRecept (0); „Récepteur RX433“(XY-MK-5V) „Arduino Uno et Nano“2 kaištyje

}

// „Affichage des“kodai „InfraRouge“

void ircode (decode_results *rezultatai)

{

// „Panasonic“

if (rezultatai-> dekodavimo_ tipas == PANASONIC) {

Serial.print (rezultatai-> adresas, HEX);

Serial.print (":");

}

Serial.print (rezultatai-> vertė, HEX);

}//tuštuma

// afficahge des code encodés

tuščias kodavimas (dekodavimo rezultatai *rezultatai)

{

jungiklis (rezultatai-> dekodavimo_ tipas) {

numatytas:

atvejis NEŽINOMAS: Serial.print ("Inconnu"); pertrauka;

atvejis NEC: Serial.print („NEC“); pertrauka;

atvejis SONY: Serial.print ("SONY"); pertrauka;

atvejis RC5: Serial.print ("RC5"); pertrauka;

atvejis RC6: Serial.print ("RC6"); pertrauka;

dėklas DISH: Serial.print ("DISH"); pertrauka;

korpusas SHARP: Serial.print ("SHARP"); pertrauka;

atvejis JVC: Serial.print („JVC“); pertrauka;

atvejis SANYO: Serial.print ("SANYO"); pertrauka;

dėklas MITSUBISHI: Serial.print ("MITSUBISHI"); pertrauka;

dėklas SAMSUNG: Serial.print („SAMSUNG“); pertrauka;

atvejis LG: Serial.print („LG“); pertrauka;

atvejis WHYNTER: Serial.print ("WHYNTER"); pertrauka;

atvejis AIWA_RC_T501: Serial.print ("AIWA_RC_T501"); pertrauka;

dėklas PANASONIC: Serial.print („PANASONIC“); pertrauka;

atvejis DENON: Serial.print („Denon“); pertrauka;

}

}

// dump les résultats

void dumpInfo (decode_results *rezultatai)

{

// Patikrinkite, ar buferis perpildytas

if (rezultatai-> perpildymas) {

Serial.println ("IR kodas per ilgas. Redaguokite IRremoteInt.h ir padidinkite RAWBUF");

grįžti;

}

// Rodyti kodavimo standartą

Serial.print ("Kodavimas:");

kodavimas (rezultatai);

Serial.println ("");

// Rodyti kodą ir ilgį

Serial.print („Kodas:“);

ircode (rezultatai);

Serial.print ("(");

Serial.print (rezultatai-> bitai, DEC);

Serial.println („bitai“));

}

// struktūra

void dumpRaw (decode_results *rezultatai)

{

// Spausdinti neapdorotus duomenis

Serial.print („Laikas [“);

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

Serial.println ("]:");

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

unsigned long x = rezultatai-> rawbuf * USECPERTICK;

jei (! (i & 1)) {// net

Serial.print ("-");

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

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

Serijinis atspaudas (x, DEC);

} kitas {// nelyginis

Serial.print ("");

Serial.print („+“);

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

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

Serijinis atspaudas (x, DEC);

if (i rawlen-1) Serial.print (","); // ',' nereikalingas paskutiniam

}

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

}

Serial.println (""); // Nauja linija

}

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

// Išmesti struktūrą decode_results.

//

void dumpCode (decode_results *rezultatai)

{

// Pradėti deklaraciją

Serial.print ("unsigned int"); // kintamojo tipas

Serial.print ("rawData ["); // masyvo pavadinimas

Serial.print (rezultatai-> rawlen - 1, DEC); // masyvo dydis

Serijinis atspaudas ("] = {"); // Pradėti deklaraciją

// Išmesti duomenis

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

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

if (i rawlen-1) Serial.print (","); // ',' nereikalingas paskutiniame

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

}

// Pabaigos deklaracija

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

// Komentuoti

Serial.print ("//");

kodavimas (rezultatai);

Serial.print ("");

ircode (rezultatai);

// Nauja linija

Serial.println ("");

// Dabar išmeskite „žinomus“kodus

if (rezultatai-> dekodavimo_ tipas! = NEŽINOMAS) {

// Kai kurie protokolai turi adresą

if (rezultatai-> dekodavimo_ tipas == PANASONIC) {

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

Serial.print (rezultatai-> adresas, HEX);

Serial.println (";");

}

// Visuose protokoluose yra duomenų

Serial.print ("nepasirašyti int duomenys = 0x");

Serial.print (rezultatai-> vertė, HEX);

Serial.println (";");

}

}

tuštumos kilpa ()

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

{

decode_results rezultatai; // Kažkur išsaugoti rezultatus

if (irrecv.decode (& rezultatai)) {// Paimkite IR kodą

dumpInfo (& rezultatai); // Išveskite rezultatus

dumpRaw (& rezultatai); // Išveskite rezultatus RAW formatu

dumpCode (& rezultatai); // Išveskite rezultatus kaip šaltinio kodą

Serial.println (""); // Tuščia eilutė tarp įrašų

irrecv.resume (); // Pasiruoškite kitai vertei

}

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

jei (mySwitch.available ())

{

int vertė = mySwitch.getReceivedValue ();

Serial.println („RX433“);

if (vertė == 0) {

Serial.print („Codage inconnu“);

} Kitas

{

Serial.print („Reçu“);

Serial.print (mySwitch.getReceivedValue ());

Serial.print (" /");

Serial.print (mySwitch.getReceivedBitlength ());

Serial.print („bit“);

Serial.print ("Protokolas:");

Serial.println (mySwitch.getReceivedProtocol ());

}

mySwitch.resetAvailable ();

} // RX433

} // kilpa

3 žingsnis: „Infos Sur Les Codes Infra-Rouge“

Il y a plusieurs protokolai:

NEC: 32 bitai (išsami protokolo informacija)

„Sony“: 12 arba 20 bitų (išsami protokolo informacija) („Sony IR“nuotolinio valdymo kodų supratimas.)

RC5: 12 bitų (išsami protokolo informacija)

RC6: 20 arba 36 bitai (išsami protokolo informacija)

Supilkite „Sony“ir „RC5/6“, nespalvota transmisija atliks 3 kartus!

DĖMESIO: biblioteka 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

Pavyzdys: (0x devant le code) ir nombre de bit bit irsend.sendNEC (0xA55A38C7, 32);

4 veiksmas: „Surx“kodai RX433

L’envoie se fera avec la librairie RCSwitch.h

Pavyzdys mySwitch.send (1975778, 24);

Ant peut facilement pilotė avec cela des prises commandés.

Rekomenduojamas: