Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
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“
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.