Daftar Isi:
- Langkah 1: Le Montage
- Langkah 2: Le Kode Arduino
- Langkah 3: Infos Sur Les Codes Infra-Rouge
- Langkah 4: Infos Sur Codes RX433
Video: Récupérer Les Codes Infra-Rouge Et 433mhz: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Le but est d'afficher les codes des télécommandes du style commande de lampe, porte de garage et autre fonctionnant sous 433 mhz (RX433) mais aussi ceux des télécommandes infra-rouge de télévision au autre.
Di pourra donc ensuite, grâce une autre montage, envoyer ces codes et piloter n'importe quoi !
Langkah 1: Le Montage
Sederhana, tanpa Arduino Nano, penerima dioda infra-rouge dan penerima 433 mhz.
Langkah 2: Le Kode Arduino
//InfraRouge
#termasuk
int recvPin = 11; //pin Arduino tuangkan penerima InfraRouge (TOSP4838)
IRrecv irecv(recvPin);
//RX433
#termasuk
RCSwitch mySwitch = RCSwitch();
hasil decode_results;
batalkan pengaturan ()
{
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);//allume la LED interne lors de l'envoie InfraRouge
mySwitch.enableReceive(0); // Penerima RX433 (XY-MK-5V) dengan pin 2 dari Arduino Uno dan Nano
}
// affichage des kode InfraRouge
void ircode (decode_results *results)
{
//Panasonic
if (hasil->decode_type == PANASONIC) {
Serial.print(hasil->alamat, HEX);
Serial.print(":");
}
Serial.print(hasil->nilai, HEX);
}//ruang kosong
// afficahge des codes encodes
pengkodean batal (decode_results *results)
{
beralih (hasil->decode_type) {
bawaan:
kasus TIDAK DIKETAHUI: Serial.print("Inconnu"); merusak;
kasus NEC: Serial.print("NEC"); merusak;
kasus SONY: Serial.print("SONY"); merusak;
kasus RC5: Serial.print("RC5"); merusak;
kasus RC6: Serial.print("RC6"); merusak;
kasus DISH: Serial.print("DISH"); merusak;
kasus SHARP: Serial.print("SHARP"); merusak;
kasus JVC: Serial.print("JVC"); merusak;
kasus SANYO: Serial.print("SANYO"); merusak;
kasus MITSUBISHI: Serial.print("MITSUBISHI"); merusak;
kasus SAMSUNG: Serial.print("SAMSUNG"); merusak;
kasus LG: Serial.print("LG"); merusak;
kasus MENGAPA: Serial.print("MENGAPA"); merusak;
kasus AIWA_RC_T501: Serial.print("AIWA_RC_T501"); merusak;
kasus PANASONIC: Serial.print("PANASONIC"); merusak;
kasus DENON: Serial.print("Denon"); merusak;
}
}
// dump les hasil
void dumpInfo (decode_results *results)
{
// Periksa apakah buffer meluap
if (hasil->melimpah) {
Serial.println("Kode IR terlalu panjang. Edit IRremoteInt.h dan tingkatkan RAWBUF");
kembali;
}
// Tampilkan standar Pengkodean
Serial.print("Enkodasi: ");
pengkodean (hasil);
Serial.println("");
// Tampilkan Kode & panjang
Serial.print("Kode: ");
ircode(hasil);
Serial.print("(");
Serial.print(hasil->bit, DEC);
Serial.println("bit)");
}
//struktur
void dumpRaw (decode_results *results)
{
// Mencetak data mentah
Serial.print("Waktu[");
Serial.print(hasil->rawlen-1, DEC);
Serial.println("]: ");
for (int i = 1; i rawlen; i++) {
unsigned long x = hasil->rawbuf * USECPERTICK;
if (!(i & 1)) { // genap
Serial.print("-");
if (x < 1000) Serial.print(" ");
if (x < 100) Serial.print(" ");
Serial.print(x, DEC);
} else { // ganjil
Serial.print("");
Serial.print("+");
if (x < 1000) Serial.print(" ");
if (x < 100) Serial.print(" ");
Serial.print(x, DEC);
if (i rawlen-1) Serial.print(", "); //', ' tidak diperlukan untuk yang terakhir
}
if (!(i % 8)) Serial.println("");
}
Serial.println(""); // Garis baru
}
//+=============================================================================
// Buang struktur decode_results.
//
void dumpCode (decode_results *results)
{
// Mulai deklarasi
Serial.print("int tidak bertanda"); // tipe variabel
Serial.print("Data mentah["); // nama larik
Serial.print(hasil->rawlen - 1, DEC); // ukuran larik
Serial.print("] = {"); // Mulai deklarasi
// Membuang data
for (int i = 1; i rawlen; i++) {
Serial.print(hasil->rawbuf * USECPERTICK, DEC);
if (saya rawlen-1) Serial.print(", "); // ', ' tidak diperlukan pada yang terakhir
if (!(i & 1)) Serial.print(" ");
}
// Akhiri deklarasi
Serial.print("};"); //
// Komentar
Serial.print(" // ");
pengkodean (hasil);
Serial.print("");
ircode(hasil);
// Garis baru
Serial.println("");
// Sekarang buang kode "dikenal"
if (hasil->decode_type != TIDAK DIKETAHUI) {
// Beberapa protokol memiliki alamat
if (hasil->decode_type == PANASONIC) {
Serial.print("unsigned int addr = 0x");
Serial.print(hasil->alamat, HEX);
Serial.println(";");
}
// Semua protokol memiliki data
Serial.print("data int tidak ditandatangani = 0x");
Serial.print(hasil->nilai, HEX);
Serial.println(";");
}
}
lingkaran kosong ()
/************************************************* * InfraRouge ******************************************/
{
hasil decode_results; // Tempat untuk menyimpan hasil
if (irrecv.decode(&results)) { // Ambil kode IR
dumpInfo(&hasil); // Keluarkan hasilnya
dumpRaw(&hasil); // Keluarkan hasil dalam format RAW
dumpCode(&hasil); // Keluarkan hasilnya sebagai kode sumber
Serial.println(""); // Baris kosong di antara entri
irrecv.resume(); // Siapkan untuk nilai berikutnya
}
/************************************************ *** RX433 ********************************************/
jika (mySwitch.available())
{
int nilai = mySwitch.getReceivedValue();
Serial.println("RX433");
jika (nilai == 0) {
Serial.print("Codage inconnu");
} lain
{
Serial.print("Reçu ");
Serial.print(mySwitch.getReceivedValue());
Serial.print(" / ");
Serial.print(mySwitch.getReceivedBitlength());
Serial.print("bit");
Serial.print("Protokol: ");
Serial.println(mySwitch.getReceivedProtocol());
}
mySwitch.resetAvailable();
}//RX433
}//lingkaran
Langkah 3: Infos Sur Les Codes Infra-Rouge
I y a plusieurs protokol:
NEC: 32 bit (detail protokol)
Sony: 12 ou 20 bit (detail protokol)(Memahami kode remote IR Sony.)
RC5: 12 bit (detail protokol)
RC6: 20 ou 36 bit (detail protokol)
Tuang Sony et RC5/6, transmisi chaque doit tre répétés 3 fois !
PERHATIAN: la librairie IRremote.h ne semble pas pouvoir envoyer des codes codes sur plus de 32bits. Les RC6, 36 doivent donc tres envoyer en raw, qui prennent plus de taille mémoire.
L'envoie des codes se fera avec la librairie IRremote.h
Contoh: (0x devant le code) et le nombre de bits irsend.sendNEC(0xA55A38C7, 32);
Langkah 4: Infos Sur Codes RX433
L'envoie se fera avec la librairie RCSwitch.h
Contoh mySwitch.send(1975778, 24);
Di peut facilement piloter avec cela des prises commandés.
Direkomendasikan:
Kontrol Radio RF 433MHZ Menggunakan HT12D HT12E - Membuat Remote Control Rf Menggunakan HT12E & HT12D Dengan 433mhz: 5 Langkah
Kontrol Radio RF 433MHZ Menggunakan HT12D HT12E | Membuat Remote Control Rf Menggunakan HT12E & HT12D Dengan 433mhz: Dalam instruksi ini saya akan menunjukkan cara membuat remote control RADIO menggunakan modul penerima pemancar 433mhz dengan encode & IC decoder HT12D. Dalam instruksi ini Anda dapat mengirim dan menerima data menggunakan KOMPONEN yang sangat sangat murah SEPERTI: HT
ROBOCAR REMOTE CONTROL INFRA RED MENGGUNAKAN AVR (ATMEGA32) MCU: 5 Langkah
ROBOCAR PENGENDALIAN JARAK JAUH INFRA MERAH MENGGUNAKAN AVR (ATMEGA32) MCU: PROYEK ini menjelaskan desain dan implementasi RoboCar kendali jarak jauh inframerah (IR) yang dapat digunakan untuk berbagai aplikasi kendali tak berawak otomatis. Saya telah merancang RoboCar yang dikendalikan dari jarak jauh (gerakan kiri-kanan/depan-belakang). T
Modul RF 433MHZ - Membuat Penerima dan Pemancar Dari Modul RF 433MHZ Tanpa Mikrokontroler: 5 Langkah
Modul RF 433MHZ | Membuat Penerima dan Pemancar Dari Modul RF 433MHZ Tanpa Mikrokontroler: Apakah Anda ingin mengirim data nirkabel? dengan mudah dan tanpa mikrokontroler diperlukan? Ini dia, dalam instruksi ini saya akan menunjukkan kepada Anda pemancar dan penerima rf dasar mi siap digunakan! Dalam instruksi ini Anda akan dapat mengirim dan menerima data menggunakan
Memperkenalkan 'Deodorino' - Arduino Terkendali Infra-Merah dalam Tongkat Deodoran Kosong. Klik pada Foto Pertama: 7 Langkah
Memperkenalkan 'Deodorino' - Arduino Terkendali Infra-Merah dalam Tongkat Deodoran Kosong. Klik pada Foto 1: Sekarang ke detail
Pemancar dan Penerima Infra-Merah USB NEC: 4 Langkah (dengan Gambar)
Pemancar dan Penerima Infra-Red USB NEC: Proyek ini adalah spin-off dari proyek lain yang sedang saya kerjakan dan karena ada kontes Remote Control 2017 di Instructables, saya pikir saya memposting proyek ini. Jadi jika Anda menyukai proyek ini, silakan pilih itu. Terima kasih. Seperti yang Anda ketahui, saya penggemar berat