Remote Control Infrared banyak diterapkan dengan perangkat apapun, diantaranya untuk mengendalikan TV, radio, AC dan sebagainya.
Modul remote control infrared masih digunakan, meskipun ada cara yang lebih canggih seperti Wifi untuk mengendalikan perangkat dari jarak jauh. Melalui jaringan Wifi, perangkat bisa dikendalikan baik melalui browser ataupun smartphone.
Namun jika sinyal Wifi, baik dari router maupun smartphone, tidak tersedia, kita ingin memiliki cara lain agar kita tetap bisa mengendalikan perangkat kita.
Misalnya dengan modul remote control infra red ini. Yah bisa digunakan sebagai alat kendali utama atau pelengkap.
Tutorial video ini menjelaskan secara detil mengenai modul HX 1838, salah satu modul remote control infrared tersebut. Tutorial cara melakukan perangkaian dan membuat kode program dibagi menjadi tiga.
Bagian pertama menjelaskan rangkaian dan kode progam sederhana hanya dengan menggunakan modul remote control-nya.
Bagian kedua menjelaskan bagaimana remote control HX 1838 bisa digunakan untuk mengendalikan lampu LED.
Bagian ketiga menjelaskan bagaimana remote control yang lainnya juga bisa digunakan untuk mengendalikan lampu LED.
Skema
Library
Kode 1
// Protus Tanuhandaru
// www.progresstech.co.id
#include <IRremote.h> // Memanggil library remote control infrared
int penerima = 2; // PIN 2 sebagai penerima sinyal dari Infrared receiver
IRrecv penerimaIR(penerima); // Melakukan inisiasi untuk menerima sinyal infrared
decode_results hasil; //Hasil di-decode dan disimpan dalam variabel
void setup() {
Serial.begin(9600); // Memulai komunikasi serial dengan baud rate 9600
penerimaIR.enableIRIn(); // Memulai proses penerimaan data
}
void loop() {
if(penerimaIR.decode(&hasil)) { // Memberikan 0 jika tidak ada data. 1 jika ada
// Menampilkan konten melalui Serial Monitor
Serial.print("Kode IR: ");
Serial.print(hasil.value, HEX);
Serial.print(" | Jumlah bit : ");
Serial.print(hasil.bits);
Serial.print(" | Raw BUF : ");
Serial.print(uint32_t(hasil.rawbuf));
Serial.print(" | Jumlah items : ");
Serial.println(hasil.rawlen);
// Melakukan perbandingan berdasarkan jenis protokol remote control infrared
switch (hasil.decode_type){
case NEC: Serial.println("NEC"); break ;
case SONY: Serial.println("SONY"); break ;
case RC5: Serial.println("RC5"); break ;
case RC6: Serial.println("RC6"); break ;
case DISH: Serial.println("DISH"); break ;
case SHARP: Serial.println("SHARP"); break ;
case JVC: Serial.println("JVC"); break ;
case SANYO: Serial.println("SANYO"); break ;
case SAMSUNG: Serial.println("SAMSUNG"); break ;
case LG: Serial.println("LG"); break ;
case WHYNTER: Serial.println("WHYNTER"); break ;
case PANASONIC: Serial.println("PANASONIC"); break ;
case DENON: Serial.println("DENON"); break ;
default:
case UNKNOWN: Serial.println("UNKNOWN"); break ;
}
penerimaIR.blink13(true); // Menyalakan LED yang ada pada board Arduino
penerimaIR.resume(); // Mengulangi proses pengiriman dan penerimaan untuk nilai berikutnya
}
}
Kode 2
// Protus Tanuhandaru
// www.progresstech.co.id
#include <IRremote.h> // Memanggil library remote control infrared
int penerima = 2; // PIN 2 sebagai penerima sinyal dari Infrared receiver
int PIN_LED = 13; // PIN 13 sebagai PIN LED
IRrecv penerimaIR(penerima); // Melakukan inisiasi untuk menerima sinyal infrared
decode_results hasil; //Hasil di-decode dan disimpan dalam variabel
#define tombolNyala 0xFFA25D
#define tombolMati 0xFF629D
void setup() {
Serial.begin(9600); // Memulai komunikasi serial dengan baud rate 9600
pinMode(PIN_LED,OUTPUT); //PIN 13 sebagai output yang menyalakan atau mematikan LED
penerimaIR.enableIRIn(); //Memulai proses penerimaan data infrared
}
void loop() {
if(penerimaIR.decode(&hasil)) { // Memberikan 0 jika tidak ada data. 1 jika ada
Serial.print("Kode IR: ");
Serial.print(hasil.value, HEX);
Serial.print(" | Jumlah bit : ");
Serial.print(hasil.bits);
Serial.print(" | Array : ");
Serial.print(uint32_t(hasil.rawbuf));
Serial.print(" | Jumlah items : ");
Serial.println(hasil.rawlen);
// Melakukan perbandingan berdasarkan jenis protokol remote control infrared
switch (hasil.decode_type){
case NEC: Serial.println("NEC"); break ;
case SONY: Serial.println("SONY"); break ;
case RC5: Serial.println("RC5"); break ;
case RC6: Serial.println("RC6"); break ;
case DISH: Serial.println("DISH"); break ;
case SHARP: Serial.println("SHARP"); break ;
case JVC: Serial.println("JVC"); break ;
case SANYO: Serial.println("SANYO"); break ;
case SAMSUNG: Serial.println("SAMSUNG"); break ;
case LG: Serial.println("LG"); break ;
case WHYNTER: Serial.println("WHYNTER"); break ;
case PANASONIC: Serial.println("PANASONIC"); break ;
case DENON: Serial.println("DENON"); break ;
default:
case UNKNOWN: Serial.println("UNKNOWN"); break ;
}
// Perbandingan nilai tombol
switch(hasil.value) {
case tombolNyala : digitalWrite(PIN_LED, HIGH);
break;
case tombolMati : digitalWrite(PIN_LED, LOW);
break;
}
penerimaIR.resume(); // Mengulangi proses pengiriman dan penerimaan untuk nilai berikutnya
}
}
Kode 3
// Protus Tanuhandaru
// www.progresstech.co.id
#include <IRremote.h> // Memanggil library remote control infrared
int penerima = 2; // PIN 2 sebagai penerima sinyal dari Infrared receiver
int PIN_LED = 13; // PIN 13 sebagai PIN LED
IRrecv penerimaIR(penerima); // Melakukan inisiasi untuk menerima sinyal infrared
decode_results hasil; //Hasil di-decode dan disimpan dalam variabel
#define tombolNyala 0xFFA25D
#define tombolMati 0xFF629D
#define tombolNyalaRemoteLain 0xCF3E11E
#define tombolMatiRemoteLain 0xCF3619E
void setup() {
Serial.begin(9600); // Memulai komunikasi serial dengan baud rate 9600
pinMode(PIN_LED,OUTPUT); //PIN 13 sebagai output yang menyalakan atau mematikan LED
penerimaIR.enableIRIn(); // Memulai proses penerimaan data
}
void loop() {
if(penerimaIR.decode(&hasil)) { // Memberikan 0 jika tidak ada data. 1 jika ada
Serial.print("Kode IR: ");
Serial.print(hasil.value, HEX);
Serial.print(" | Jumlah bit : ");
Serial.print(hasil.bits);
Serial.print(" | Array : ");
Serial.print(uint32_t(hasil.rawbuf));
Serial.print(" | Jumlah items : ");
Serial.println(hasil.rawlen);
// Melakukan perbandingan berdasarkan jenis protokol remote control infrared
switch (hasil.decode_type){
case NEC: Serial.println("NEC"); break ;
case SONY: Serial.println("SONY"); break ;
case RC5: Serial.println("RC5"); break ;
case RC6: Serial.println("RC6"); break ;
case DISH: Serial.println("DISH"); break ;
case SHARP: Serial.println("SHARP"); break ;
case JVC: Serial.println("JVC"); break ;
case SANYO: Serial.println("SANYO"); break ;
case SAMSUNG: Serial.println("SAMSUNG"); break ;
case LG: Serial.println("LG"); break ;
case WHYNTER: Serial.println("WHYNTER"); break ;
case PANASONIC: Serial.println("PANASONIC"); break ;
case DENON: Serial.println("DENON"); break ;
default:
case UNKNOWN: Serial.println("UNKNOWN"); break ;
}
// Perbandingan nilai tombol
switch(hasil.value) {
case tombolNyala : digitalWrite(PIN_LED, HIGH);
break;
case tombolNyalaRemoteLain : digitalWrite(PIN_LED, HIGH);
break;
case tombolMati : digitalWrite(PIN_LED, LOW);
break;
case tombolMatiRemoteLain : digitalWrite(PIN_LED, LOW);
break;
}
penerimaIR.resume(); // Mengulangi proses pengiriman dan penerimaan untuk nilai berikutnya
}
}