20.07
1
Di Toko Online Famosa Studio tersedia Infrared (IR) Kit for Arduino. IR Kit ini bisa digunakan untuk mengendalikan proyek Arduino anda dari jarak jauh. Nah posting ini bermaksud menjelaskan caranya agar anda dapat melakukan hal tersebut.
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.
InfraRed (IR) Kit for Arduino
InfraRed (IR) Kit for Arduino
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
LED 5mm, Resistor 330 ohm dan Jumper Wires untuk digunakan dengan IR Kit
LED 5mm, Resistor 330 ohm dan Jumper Wires untuk digunakan dengan IR Kit
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.
IR Kit Terhubung dengan Arduino Uno R3
IR Kit Terhubung dengan Arduino Uno R3
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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*
 * 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 <IRremote.h>

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
  }
}
[/code]
Hubungkan board Arduino anda dengan kabel USB ke komputer. Di Arduino IDE, klik menu Sketch>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?
Output di Serial Monitor dari Tombol Remote
Output di Serial Monitor dari Tombol Remote
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.
Skema Rangkaian 4 LED dengan IR Kit dan Arduino Uno R3
Skema Rangkaian 4 LED dengan IR Kit dan Arduino Uno R3
Kalau rangkaian sudah selesai dibuat, gunakan contoh kode program di bawah ini untuk mengendalikan 4 buah LED tersebut dengan IR Remote.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
/*
 * 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 <IRremote.h>

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.
Remote dari IR Kit berhasil menghidupkan 2 buah LED yang terhubung dengan Arduino Uno R3
Remote dari IR Kit berhasil menghidupkan 2 buah LED yang terhubung dengan Arduino Uno R3
Wah, ternyata gampang kan? Ayo, silahkan langsung dicoba dan dikembangkan lebih lanjut untuk mengendalikan alat lain, servo atau relay misalnya. Siapa yang mau mencoba? Selamat bereksperimen!

1 komentar:

  1. kok di arduino IDE script diatas kalo di verify error terus ya?

    BalasHapus