Project Arduino : Eksplorasi Remote Bekas TV Tuner Pengontrol Lampu - Elang Sakti
Download Ebook Belajar Arduino PDF, Arduino untuk pemula
Jasa Pembuatan Program Arduino, pemrograman Arduino
# Hack Your Skills! to be Professional Mechatronics

Project Arduino : Eksplorasi Remote Bekas TV Tuner Pengontrol Lampu

3 komentar
Kali ini kita akan membuat alat pengontrol lampu dengan remote control, tapi remotenya adalah remote bekas TV Tuner. Sinyal infared dari remote akan diterima oleh receiver dan data akan diolah dengan Arduino. Selanjutnya Arduino digunakan untuk mengaktifkan relay atau menghidupkan lampu. Apakah bisa? Bisa! Yang penting kita mengetahui cara remote tersebut berkomunikasi dengan receiver infrared. Lebih tepatnya, protokol dan perintah yang dikirim melalui sinar infrared.

Arduino remote control lampu - persiapan alat

rangkaian dasar dan skema receiver infrared

Sekilas cerita, remote ini adalah remote bekas TV Tuner USB yang bisa digunakan untuk nonton TV di komputer atau laptop. Kalau ndak salah ingat, merek TV Tunernya adalah Advance. Mereknya memang kurang terkenal, beberapa sumber menyebutkan bahwa kualitas remotenya memang low, jadi jangan berharap banyak karena harganya juga murah meriah. :)

Protokol yang digunakan remote ini berbeda dengan remote terkenal lainnya, sehingga penggunaan librari seperti IRremote dan IRLib sudah pasti tidak akan bisa. Oleh sebab itu, yang pertama harus dilakukan adalah menganalisis protokol dan data yang dikirim melalui infrared. Proses analisis cukup menyita waktu dan pikiran, tak masalah, yang penting otak dan kemampuan kita terus growing dan growing!

Berdasarkan beberapa referensi, receiver infrared akan berlogika HIGH sebelum menerima data dari remote control. Ketika menerima data, maka header data akan berlogika LOW dan HIGH dengan durasi tertentu, selanjutnya diikuti dengan bit data. Jumlah bit data bisa beragam, akan tetapi umumnya adalah 32 bit. Perbedaan antara bit 0 dan 1 terletak pada lebar pulsa LOW yang dipakai, semakin lebar pulsa LOW-nya, berarti bitnya adalah 1. Berdasarkan teori tersebut mari kita langsung menganalisis remote bekas tersebut.

Analisis Protokol Remote Infrared TV Tuner

Untuk menganalisis protokol remote IR, maka yang kita butuhkan adalah sebuah Arduino, receiver IR, dan script untuk mengetahui logika yang diterima receiver. Berikut ini adalah rangkaian dan script yang saya gunakan. Pada rangkaian ini, dari kaki paling kiri receiver infrared yaitu : OUT ke A0, GND ke gnd, dan VCC ke 5v.

rangkaian arduino dan receiver infrared


const int pdata = A0;

void setup() {
  pinMode(pdata, INPUT);
  Serial.begin(9600);  
}

int iter = 0;
int record[40];
long durasi = 0;
boolean data = LOW;

void loop() {
  if(digitalRead(pdata) == data){
    iter = 0;
    durasi = pulseIn(pdata, !data);
    record[iter] = durasi;
    while(durasi > 0){
      durasi = pulseIn(pdata, !data);
      iter++;
      record[iter] = durasi;
    }
    
    if(iter > 0){
      for(int x=0; x<35; x++){
        Serial.println(record[x]);
      }
      Serial.println();
    }
  }
}

Script tersebut berfungsi untuk merekam logika pada receiver IR dan mengirimkannya ke komputer melalui serial monitor. Sebagai sampel, berikut data yang saya dapatkan ketika menekan tombol POWER, 0, 1, dan 2.

Tabel untuk mengetahui protokol remote infrared

Berdasarkan data tersebut, maka durasi yang panjang (sekitar 1600 us) menandakan biner 1 sedangkan durasi yang pendek (sekitar 600 us) menandakan biner 0. Dengan demikian, maka tombol POWER = 0x40BD28D7, tombol 0 = 0x40BD906F, tombol 1 = 0x40BD807F, dan tombol 2 = 0x40BD40BF.

Selanjutnya, mari membuat decoder berdasarkan informasi durasi yang kita dapat. Kita bisa menentukan bahwa, data dimulai sejak logika LOW yang kedua hingga logika LOW yang ke-33. Logika LOW yang pertama bisa kita abaikan. Sebenarnya ada banyak cara sih, cuman cara itu yang terbayang di kepala saya. Berikut rangkaian dan script sebagai decoder dari remote infrared yang saya aplikasikan untuk mengontrol sebuah led. Lampu led dikontrol dari pin A1 di Arduino.

rangkaian receiver infra red arduino untuk mengontrol lampu led


long durasi = 0;
unsigned long tombol = 0;
int iter = 0;
int bit_1 = 1500; // > 1500 == 1
int bit_0 = 500;  // sekitar 500 == 0
boolean bool_param = LOW;

const int pdata = A0;
const int pled  = A1;

void setup() {
  pinMode(pdata, INPUT);
  pinMode(pled, OUTPUT);
  Serial.begin(9600);  
}

void loop() {
  get_tombol();
  turn_led();
  if(tombol > 0){
    Serial.println(tombol,HEX);
  }
}

// decoder data IR
void get_tombol(){
  tombol = 0;
  if(digitalRead(pdata) == bool_param){
    iter = 0;
    durasi = pulseIn(pdata, !bool_param); // header
    durasi = pulseIn(pdata, !bool_param); // bit pertama
    tombol = getbit(durasi);
    while(durasi > 0){ // lanjut hingga logika low habis
      durasi = pulseIn(pdata, !bool_param, 3000);
      if(iter<31){ // bit ke-2 hingga ke-32
        tombol <<= 1;
        tombol += getbit(durasi);
      }
      iter++;
    }
  }
}

boolean getbit(long dur){
  if(dur > bit_1){
    return 1; // jika > 1500, anggap bit 1
  }else{
    return 0; // jika tidak, anggap bit 0
  }
}

// kontrol nyala LED
void turn_led(){
  switch(tombol){
    case 0x40BD28D7: // tombol POWER
      digitalWrite(pled, !digitalRead(pled));
      break;
  }
}

Hasil dari script di atas yaitu: awalnya, lampu led mati. Ketika tombol power pada remote ditekan, led nyala. Ketika tombol power ditekan lagi, led mati, dan begitu seterusnya. Mirip, tombol power untuk matiin atau ngidupin TV. :D Demikian eksplorasi remove TV tuner tersebut, teknik analisis di atas bisa digunakan untuk remote-remote jenis lainnya.

menyalakan lampu dengan remote control arduino



Written by ElangSakti
Project Arduino : Eksplorasi Remote Bekas TV Tuner Pengontrol Lampu
Bahasan: Kali ini kita akan membuat alat pengontrol lampu dengan remote control, tapi remotenya adalah remote bekas TV Tuner. Sinyal infared dari re...
Published at Kamis, 23 Juni 2016, Updated at Kamis, 23 Juni 2016
Reviewed by dr. on
Rating: 4.7

3 komentar :

  1. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  2. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  3. apakah ada aplikasi yang bisa mengedit koding di atas tolong beritahu nama nya

    BalasHapus