# Hack Your Skills! to be Professional Mechatronics
Project Arduino : Eksplorasi Remote Bekas TV Tuner Pengontrol Lampu
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.
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.
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.
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.
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.
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.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.
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.
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.
Top Artikel :
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
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
Langganan:
Posting Komentar
(
Atom
)
Komentar ini telah dihapus oleh pengarang.
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapusapakah ada aplikasi yang bisa mengedit koding di atas tolong beritahu nama nya
BalasHapus