- Penjelasan Kerja:
- Decoding IR Remote Control Sinyal menggunakan Arduino:
- Deskripsi Sirkuit:
- Deskripsi Kode:
Sebelumnya kami telah membahas banyak jenis otomatisasi Rumah menggunakan teknologi yang berbeda seperti Otomasi Rumah Berbasis DTMF, Otomasi Rumah Terkendali PC menggunakan Arduino, Otomatisasi Rumah Terkendali Bluetooth. Dalam proyek ini, kami menggunakan komunikasi nirkabel berbasis IR untuk mengontrol peralatan rumah tangga. Dalam proyek ini, Arduino digunakan untuk mengontrol seluruh proses. Kami mengirimkan beberapa perintah ke sistem pengendali dengan menggunakan remote IR TV / DVD / MP3 untuk mengendalikan peralatan rumah AC. Setelah menerima sinyal dari remote IR, Arduino mengirimkan sinyal terkait ke relai yang bertanggung jawab untuk menghidupkan atau mematikan peralatan rumah melalui driver relai.
Penjelasan Kerja:
Pekerjaan proyek ini mudah dimengerti. Ketika kita menekan sembarang tombol pada IR Remote maka remote mengirimkan kode berupa rentetan pulsa yang dikodekan menggunakan frekuensi modulasi 38Khz. Pulsa ini diterima oleh sensor TSOP1738 dan dibaca oleh Arduino dan kemudian Arduino mendekode rangkaian pulsa yang diterima menjadi nilai hex dan membandingkan nilai yang didekodekan dengan nilai hex yang telah ditentukan dari tombol yang ditekan. Jika terjadi kecocokan maka Arduino melakukan operasi relatif dan hasil yang sesuai juga ditampilkan pada LCD 16x2 dengan menggunakan perintah yang sesuai. Di sini, di proyek ini kami telah menggunakan 3 bola lampu dengan warna berbeda, untuk demonstrasi yang menunjukkan Kipas, Lampu, dan TV.
Ada banyak jenis IR Remote yang tersedia untuk perangkat yang berbeda tetapi kebanyakan bekerja pada sekitar sinyal Frekuensi 38KHz. Di sini, di proyek ini kami mengontrol peralatan rumah menggunakan remote IR TV. Untuk mendeteksi sinyal jarak jauh IR, kami menggunakan Penerima IR TSOP1738. Sensor TSOP1738 ini dapat merasakan sinyal Frekuensi 38Khz. Cara kerja remote IR dan TSOP1738 dapat dibahas secara rinci dalam artikel ini: Pemancar dan Penerima IR
Komponen:
- Arduino UNO
- TSOP1738
- IR TV / DVD Remote
- ULN2003
- Relai 5 volt
- Bohlam dengan dudukan
- Menghubungkan kabel
- Papan roti
- LCD 16x2
- Sumber Daya listrik
- PVT
- IC 7805
Di sini, dalam proyek ini kami telah menggunakan tombol angka 7, 8 dan 9 pada remote IR, untuk mengontrol Fan, Lampu dan TV masing-masing dan tombol ON / OFF (tombol Power) digunakan untuk menyalakan dan mematikan semua peralatan secara bersamaan.
Di sini kami telah menggunakan metode sakelar untuk ON dan OFF alat rumah tunggal. Alihkan metode tidak lain adalah untuk mendapatkan bahwa apakah tombol ditekan bahkan beberapa kali atau tidak berapa kali. Ini ditemukan dengan mendapatkan reminder setelah membaginya dengan 2 (i% 2), jika ada beberapa reminder maka perangkat akan DIHIDUPKAN dan jika reminder bernilai 0 maka akan dimatikan. Misalkan Key 7 ditekan pada remote kemudian remote mengirimkan sinyal ke Arduino melalui TSOP IR Receiver. Kemudian Arduino mendekodekannya dan menyimpan nilai yang didekodekan ke dalam variabel hasil. Sekarang variabel hasil memiliki nilai hex 0x1FE00FF, setelah mencocokkannya dengan nilai hex yang telah ditentukan dari kunci 7 (lihat gambar di atas), Arduino menyalakan Fan. Sekarang ketika kita menekan tombol yang sama (kunci 7) lagi maka IR mengirimkan kode yang sama. Arduino mendapatkan kode yang sama dan dicocokkan dengan kode yang sama seperti sebelumnya tetapi kali ini Fan MATI karena toggling bit (i% 2).
Decoding IR Remote Control Sinyal menggunakan Arduino:
Berikut adalah daftar kode keluaran decode jarak jauh tipe DVD NEC:
Jika Anda tidak mengetahui output yang didekodekan untuk remote IR Anda, itu dapat dengan mudah ditemukan, cukup ikuti langkah-langkah ini:
- Unduh perpustakaan jarak jauh IR dari sini
- Unzip, dan letakkan di folder 'Libraries' Arduino Anda. Kemudian ganti nama folder yang diekstrak menjadi IRremote.
- Jalankan program di bawah ini dari Arduino Anda dan buka jendela Serial Monitor di Arduino IDE. Sekarang tekan sembarang tombol IR Remote dan lihat keluaran hex yang telah didekodekan di jendela Serial Monitor.
* IRremote: IRrecvDemo - mendemonstrasikan penerimaan kode IR dengan IRrecv * Detektor / demodulator IR harus dihubungkan ke input RECV_PIN. * Versi 0,1 Juli 2009 * Hak Cipta 2009 Ken Shirriff * http://arcfn.com * / #include
Program di atas diambil dari folder 'contoh' perpustakaan IRremote, Anda dapat melihat lebih banyak contoh untuk mempelajari lebih lanjut tentang menggunakan remote IR. Jadi begitulah cara kami mendekodekan output jarak jauh IR.
Deskripsi Sirkuit:
Sambungan rangkaian ini sangat sederhana di sini layar kristal cair digunakan untuk menampilkan status peralatan rumah tangga yang langsung terhubung ke arduino dalam mode 4-bit. Pin data LCD RS, EN, D4, D5, D6, D7 dihubungkan ke pin digital arduino nomor 6, 7, 8, 9, 10, 11. Dan pin keluaran TSOP1738 langsung dihubungkan pada pin digital nomor 14 (A) dari Arduino. Dan pin Vcc dihubungkan dengan pin +5 volt dan pin GND pada terminal ground rangkaian. Driver relai yaitu ULN2003 juga digunakan untuk menggerakkan relai. Relai 5 volt SPDT 3 digunakan untuk mengontrol LAMPU, KIPAS, dan TV. Dan relai dihubungkan ke pin arduino nomor 3, 4 dan 5 melalui driver relai ULN2003 untuk masing-masing mengendalikan LAMPU, KIPAS dan TV.
Deskripsi Kode:
Dalam bagian pemrograman proyek ini Pertama-tama dalam pemrograman kami menyertakan perpustakaan untuk remote IR yang mudah tersedia di Google. Dan tentukan pin dan deklarasikan variabel.
#include
Dan kemudian menyertakan header untuk layar kristal cair dan kemudian kami menentukan data dan pin kontrol untuk LCD dan peralatan rumah tangga.
#include
Setelah itu kita perlu menginisialisasi LCD dan memberikan arah pin yang digunakan untuk kipas angin, lampu dan TV.
void setup () {Serial.begin (9600); lcd.begin (16,2); pinMode (Fan, OUTPUT); pinMode (Light, OUTPUT); pinMode (TV, OUTPUT);
Seperti yang telah dijelaskan, bagian kode di bawah ini digunakan untuk membandingkan nilai hex yang diterima dengan kode hex yang sudah ditentukan dari tombol itu. Jika cocok maka operasi relatif dilakukan dengan menggunakan fungsi yang sesuai yang diberikan dalam kode.
void loop () {if (irrecv.decode (& results)) {Serial.println (results.value, HEX); penundaan (100); lcd.setCursor (0,0); lcd.print ("Fan Light TV"); if (results.value == 0x1FE00FF) {i ++; int x = i% 2; digitalWrite (Fan, x);