Menggunakan Infrared Kit untuk Kendali Jarak Jauh dengan Arduino

IR Kit for Arduino
IR Kit itu sendiri terdiri dari Infrared Receiver, kabel dan Remote Control dengan 21 tombol. Gambarnya dapat dilihat di bawah ini.

Ok, untuk tutorial ini kita membutuhkan beberapa komponen:
1. IR Kit for Arduino
2. Arduino Uno R3, atau board Arduino yang lain
3. Breadboard 400 Titik
4. Kabel Jumper
5. Beberapa LED 5mm
6. Beberapa Resistor 330 ohm



Sebelum memulai, ada baiknya kita men-download library Arduino untuk Infrared yang ada di link ini. Ekstrak isi file library itu ke folder IRremote di dalam folder libraries dari aplikasi IDE Arduino anda. Buat terlebih dahulu folder IRremote jika perlu.
Menghubungkan IR Receiver dengan Arduino Uno
IR Receiver mempunyai 3 pin untuk dihubungkan ke Arduino Uno, yaitu pin VCC ke pin 5V Arduino, pin GND ke pin GND Arduino dan pin D ke salah satu pin Digital Arduino (contohnya menggunakan pin Digital 11). Gunakan kabel yang sudah disediakan di dalam paket IR Kit dan 3 buah kabel jumper untuk menghubungkannya ke Arduino. Gambar koneksinya dapat dilihat di bawah ini.




Apabila koneksi seperti di atas sudah dilakukan, sekarang kita coba kode program untuk membaca/menerima sinyal InfraRed dan menampilkannya lewat Serial Monitor. Buka Arduino IDE anda, klik menu File>Examples>IRremote>IRrecvDemo. Kode program dapat dilihat di bawah ini.

/*
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
* An IR detector/demodulator must be connected to the input RECV_PIN.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*/

#include

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}

void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
}

Hubungkan board Arduino anda dengan kabel USB ke komputer. Di Arduino IDE, klik menuSketch>Verify / Compile untuk melakukan kompilasi dan memastikan tidak ada error pada kode program tersebut. Klik menu File>Upload untuk memasukkan program tersebut ke dalam board Arduino anda. Kemudian buka Serial Monitor dari menu Tools>Serial Monitor, sesuaikan baudrate-nya dengan yang ada di dalam kode program.
Ok, saatnya mencoba remote yang disediakan bersama dengan IR Kit ini. Arahkan remote ke IR Receiver dan tekan salah satu tombol remote tersebut, lalu perhatikan Serial Monitor. Di sana nanti akan muncul kode dari tombol remote yang kita tekan. Coba lagi untuk tombol-tombol yang lain. Tampilan output di Serial Monitor kurang lebih seperti gambar di bawah ini. Bagaimana, mudah bukan?




Nah, tadi itu adalah cara untuk membaca/menerima sinyal InfraRed dengan IR receiver dan board Arduino. Kita lanjutkan dengan contoh agar sinyal input IR yang kita terima dapat digunakan untuk mengeluarkan output dari board Arduino, misalnya untuk menghidup-matikan LED. Bagaimana caranya? Yuk perhatikan penjelasan di bawah ini.
Mengendalikan Arduino dengan IR Remote
Kita akan mencoba mengendalikan Arduino untuk menghidup-matikan 4 buah LED. Tiap LED akan kita kendalikan dari 1 tombol yang ada di Remote, jadi kita akan mempergunakan 4 buah tombol. Tentukan tombol mana saja yang akan kita pergunakan. Masih menggunakan rangkaian yang pertama tadi, kita akan mencatat kode dari tombol yang akan dipergunakan. Misalnya kita menggunakan tombol 1, 2, 3 dan 4 dari remote. Tekan tombol 1 dan perhatikan output di Serial Monitor. Catat 6 karakter kode dari tombol 1 tersebut dan tulis ke text editor dan tambahkan informasi, misalnya Tombol 1 = FD08F7. Ulangi untuk 3 tombol yang lain.
Sekarang kita membuat rangkaian 4 buah LED yang dihubungkan dengan 4 pin Digital Arduino, misalnya pin Digital 2,3,4 dan 5. Masing-masing LED perlu ditambahkan resistor 330 ohm untuk membatasi arusnya. Gambaran lengkap rangkaian tersebut dapat dilihat di bawah ini.

Kalau rangkaian sudah selesai dibuat, gunakan contoh kode program di bawah ini untuk mengendalikan 4 buah LED tersebut dengan IR Remote.


CODE:

/*
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
* An IR detector/demodulator must be connected to the input RECV_PIN.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*/

#include

int RECV_PIN = 11;
String IRButton1 = "FD08F7";
String IRButton2 = "FD8877";
String IRButton3 = "FD48B7";
String IRButton4 = "FD28D7";
const int ledPin1 = 2;
const int ledPin2 = 3;
const int ledPin3 = 4;
const int ledPin4 = 5;

IRrecv irrecv(RECV_PIN);

decode_results results;
String BUTTONPRESSED;
int button1 = 0;
int button2 = 0;
int button3 = 0;
int button4 = 0;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
}

void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
BUTTONPRESSED = String(results.value, HEX);
BUTTONPRESSED.toUpperCase();
Serial.print("BUTTONPRESSED ");
Serial.println(BUTTONPRESSED);
//delay(1000);

//button 1
if (BUTTONPRESSED == IRButton1){
if (button1 == 0){
button1 = 1;
}
else
button1 =0;
if (button1 == 1){
digitalWrite(ledPin1, HIGH);
}
else
digitalWrite(ledPin1, LOW);
}

//button 2
if (BUTTONPRESSED == IRButton2){
if (button2 == 0){
button2 = 1;
}
else
button2 =0;
if (button2 == 1){
digitalWrite(ledPin2, HIGH);
}
else
digitalWrite(ledPin2, LOW);
}

//button 3
if (BUTTONPRESSED == IRButton3){
if (button3 == 0){
button3 = 1;
}
else
button3 =0;
if (button3 == 1){
digitalWrite(ledPin3, HIGH);
}
else
digitalWrite(ledPin3, LOW);
}

//button 4
if (BUTTONPRESSED == IRButton4){
if (button4 == 0){
button4 = 1;
}
else
button4 =0;
if (button4 == 1){
digitalWrite(ledPin4, HIGH);
}
else
digitalWrite(ledPin4, LOW);
}

irrecv.resume(); // Receive the next value
}

}

Upload kode program tersebut ke dalam board Arduino anda. Pastikan tidak ada error yang muncul. Kalau semua berjalan lancar maka kita dapat menghidup-matikan LED dengan tombol dari remote. Perhatikan gambar di bawah ini, dua buah LED sudah berhasil dikendalikan melalui IR Remote.


Komentar

  1. sore mas, saya mau tanya misalkan kita ingin membuat tombol 1 dengan tombol lainnya saling berhubungan gimana kodingnya mas?

    contohnya begini, saya ingin menghidupkan led dengan tombol 1 dan 2, tombol 1 ditekan kemudian menekan tombol 2 baru led akan menyala, tapi kalau tombol 1 atau 2 langsung di tekan tanpa urut maka led tidak akan menyala. Terima kasih

    BalasHapus

Posting Komentar