Tutorial ini kita membutuhkan beberapa komponen:
- InfaRed/IR Kit for Arduino
- Arduino Uno R3, atau board Arduino yang lain
- Breadboard
- Kabel Jumper
- Lampu LED 5mm
- Resistor 330 ohm
Sebelum memulai, bagi yang belum mempunyai library Arduino untuk Infrared bisa mendownload 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.
Hubungkan board Arduino dengan kabel USB ke komputer. Di Arduino IDE, klik menu Sketch>Verify/Compile untuk melakukan memastikan tidak ada error pada kode program tersebut. Klik menu File>Upload untuk meng-upload program tersebut ke dalam board Arduino. 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 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.
Gambaran lengkap rangkaian tersebut dapat dilihat di bawah ini.
Kalau rangkaian sudah selesai dibuat, coba pakai contoh kode program di bawah ini untuk mengendalikan 4 buah LED tersebut dengan IR Remote.
Upload kode program tersebut ke dalam Arduino. 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, lampu LED sudah berhasil dikendalikan melalui IR Remote.#include <IRremote.h>
const int RECV_PIN = 11;
String IRButton1 = "38863BE0";
String IRButton2 = "38863BD0";
String IRButton3 = "38863BF0";
String IRButton4 = "38863BC8";
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
}
}
Wah, ternyata gampang kan? Ayo, langsung dicoba dan dikembangkan lebih lanjut untuk mengendalikan alat lain,
Selamat bereksperimen ^_^





Tidak ada komentar:
Posting Komentar