Arduino Infrared Decoder

From Indonesian Research And Development Center
Jump to: navigation, search

Pendahuluan

Pada tutorial kali ini akan dibahas mengenai cara sederhana untuk men-decode remote infrared menggunakan arduino, serta contoh penggunaannya.


Langkah-langkah

  • Berikut ini adalah daftar perangkat yang digunakan pada tutorial ini:
    • Arduino Leonardo
    • Sensor infrared (TSSOP17xx)
    • Remote infrared TV Toshiba (CT-90336)
    • Servo TowerPro SG-90 (Opsional)
  • Adapun pinout dari sensor infrared yang digunakan adalah sebagai berikut:
 GND -----.___
 Vs  -----|___)
 Out -----'
  • Langkah selanjutnya adalah menghubungkan arduino dengan sensor infrared dengan konfigurasi seperti ini:
Arduino Sensor Infrared
GND GND
5v Vs
Pin 2 Out
  • Selanjutnya kita akan melakukan decode terhadap sinyal infrared yang dikirimkan oleh remote. Untuk mempermudah, kita akan menggunakan sketch yang terdapat pada blog tronixstuff:
// example 32.1 - IR receiver code repeater
// http://tronixstuff.com/tutorials > chapter 32
// based on code by Ken Shirriff - http://arcfn.com

#include <IRremote.h>    // use the library
int receiver = 11;       // pin 1 of IR receiver to Arduino digital pin 11
IRrecv irrecv(receiver); // create instance of 'irrecv'
decode_results results;
void setup()
{
  Serial.begin(9600);    // for serial monitor output
  irrecv.enableIRIn();   // Start the receiver
}

void loop()
{
  if (irrecv.decode(&results))          // have we received an IR signal?
  {
    Serial.println(results.value, HEX); // display it on serial monitor in hexadecimal
    irrecv.resume();                    // receive the next value
  }                                     // Your loop can do other things while waiting for an IR command
}
  • Setelah sketch di atas diupload ke arduino, selanjutnya jalankan serial monitor pada IDE arduino dan tekan tombol pada remote infrared, maka akan terlihat kode yang dikirimkan oleh setiap tombol yang ditekan. Misalnya untuk remote TV Toshiba yang digunakan, tombol panah kiri mengirimkan kode yang nilai hexadesimalnya 0x2FD42BD dan tombol panah kanan mengirimkan kode yang nilai hexadesimalnya 0x2FD02FD.
  • Selanjutnya, kita dapat menggunakan remote infrared tersebut untuk mengendalikan hal lain, misalnya memanfaatkan remote infrared untuk mengendalikan servo.
  • Tutorial ini menggunakan servo TowerPro SG-90 dan berikut ini adalah koneksi yang digunakan ke arduino:
Arduino Servo TowerPro SG-90
GND GND (Kabel Warna Cokelat)
5v 5v (Kabel Warna Merah)
Pin 9 Signal (Kabel Warna Kuning)
  • Setelah menghubungkan servo dengan arduino, selanjutnya upload sketch yang berikut ini ke arduino:
#include <Servo.h>
#include <IRremote.h>

int pos = 0;
int RECV_PIN = 2;
int SERV_PIN = 9;

Servo srv;
IRrecv irx(RECV_PIN);
decode_results results;

void setup()
{
  irx.enableIRIn(); // Start the receiver
  srv.attach(9);    // Attach servo to pin 9
}

void loop() {
  if (irx.decode(&results)) {
    if (results.value == 0x2FD42BD) {
      pos += 10;
      if (pos > 90) { pos = 90; }
      srv.write(pos);
      delay(200);
    }
    else if (results.value == 0x2FD02FD) {
      pos -= 10;
      if (pos < 0) { pos = 0; }
      srv.write(pos);
      delay(200);
    }
    irx.resume(); // Receive the next value
  }
}
  • Setelah sketch tersebut diupload, Anda dapat menggunakan tombol panah kiri dan panah kanan pada remote infrared untuk mengendalikan servo ke arah kiri dan kanan. Perlu diingat, bahwa servo SG-90 ini pergerakannya terbatas yaitu 180 derajat (walaupun sebenarnya Anda dapat melakukan hardware hacking agar servo SG-90 dapat bergerak sejauh 360 derajat).
  • Sekian tutorial singkat kali ini, semoga bermanfaat.


Referensi