Membaca Data Remote Infamerah Tx dengan VS1838B Sensor Inframerah Rx 38KHz menggunakan Arduino

Kali ini kita akan menggunakan Remote Inframerah (RI) yang memiliki banyak tombol, untuk kemudian pancaran setiap tombol dibaca oleh sensor infrared (SI) kemudian disalurkan ke microcontroller Arduino (bisa UNO, Mega, Duecimilia, dll), script dibawah ini dapat digunakan untuk semua IC Atmega 8, 48, 88, 168, 328, 1280, dan 2560.

Peralatan yang diperlukan sederhana yaitu RI, SI, dan Controller Arduino dengan Komputer yang sudah terinstal Arduino IDE.

Langkah-langkah yang diperlukan sebagai berikut :

Cara Impor Zip Arduino Library
  1. Hubungkan SI dengan Arduino sesuai dengan script di pin Digital No. 12 (D12), diikuti Vcc 5V dan Gnd yang tersedia di board Arduino.
  2. Setelahnya hubungkan USB Komputer dengan Board Arduino, lalu buka Software Arduino IDE pada komputer
  3. Jika belum pernah menggunakan Library Remote, maka kita perlu import Library IRremote.h, file dapat didownload pada link berikut.
  4. Upload script berikut untuk membaca data remote setiap tombol memiliki tombol unik
  5. Buka Tools > Serial Monitor – guna mencocokan hasil data hex dengan tombol yang ditekan.

Berikut script Arduino yang digunakan untuk membaca tombol-tombol remote inframerah :

#include <IRremote.h>  // use the IRRemote.h
const int irReceiverPin = 12;  //the SIG of receiver module attach to pin2
IRrecv irrecv(irReceiverPin); //Creates a variable of type IRrecv
decode_results results;    // define resultsas 

void setup()
{
  Serial.begin(9600);    //initialize serial,baudrate is 9600
  irrecv.enableIRIn();   // enable ir receiver module
}

void loop() 
{
  if (irrecv.decode(&results)) //if the ir receiver module receiver data
  {  
    Serial.print("irCode: ");    //print "irCode: "        
    Serial.print(results.value, HEX); //print the value in hexdecimal 
    Serial.print(",  bits: ");  //print" , bits: "         
    Serial.println(results.bits); //print the bits
    irrecv.resume();    // Receive the next value 
  }  
  delay(600); //delay 600ms
}

Setelah kita berhasil mendefinisikan tombol-tombol dengan pasangan kode hex maka selanjutnya kita bisa melakukan perubahan kecil pada program, dimana saat tombol remot ditekan, maka hasil tampilan Tools > Serial Monitor adalah nama tombol yang ditekan. Scriptnya sebagai berikut :

#include "IRremote.h"
/*-----( Declare Constants )-----*/
int receiver = 2; // pin 1 of IR receiver to Arduino digital pin 2
/*-----( Declare objects )-----*/
IRrecv irrecv(receiver);           // create instance of 'irrecv'
decode_results results;            // create instance of 'decode_results'
/*-----( Declare Variables )-----*/

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  Serial.begin(9600);
  Serial.println("IR Receiver Raw Data + Button Decode Test");
  irrecv.enableIRIn(); // Start the receiver
}/*--(end setup )---*/

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
  if (irrecv.decode(&results)) // have we received an IR signal?
  {
//    Serial.println(results.value, HEX);  UN Comment to see raw values
    translateIR(); 
    irrecv.resume(); // receive the next value
  }  
}/* --(end main loop )-- */

/*-----( Declare User-written Functions )-----*/
void translateIR() // takes action based on IR code received
{
  switch(results.value)
  {
  case 0xFFA25D:  
    Serial.println(" CH-            "); 
    break;
  case 0xFF629D:  
    Serial.println(" CH             "); 
    break;
  case 0xFFE21D:  
    Serial.println(" CH+            "); 
    break;
  case 0xFF22DD:  
    Serial.println(" PREV           "); 
    break;
  case 0xFF02FD:  
    Serial.println(" NEXT           "); 
    break;
  case 0xFFC23D:  
    Serial.println(" PLAY/PAUSE     "); 
    break;
  case 0xFFE01F:  
    Serial.println(" VOL-           "); 
    break;
  case 0xFFA857:  
    Serial.println(" VOL+           "); 
    break;
  case 0xFF906F:  
    Serial.println(" EQ             "); 
    break;
  case 0xFF6897:  
    Serial.println(" 0              "); 
    break;
  case 0xFF9867:  
    Serial.println(" 100+           "); 
    break;
  case 0xFFB04F:  
    Serial.println(" 200+           "); 
    break;
  case 0xFF30CF:  
    Serial.println(" 1              "); 
    break;
  case 0xFF18E7:  
    Serial.println(" 2              "); 
    break;
  case 0xFF7A85:  
    Serial.println(" 3              "); 
    break;
  case 0xFF10EF:  
    Serial.println(" 4              "); 
    break;
  case 0xFF38C7:  
    Serial.println(" 5              "); 
    break;
  case 0xFF5AA5:  
    Serial.println(" 6              "); 
    break;
  case 0xFF42BD:  
    Serial.println(" 7              "); 
    break;
  case 0xFF4AB5:  
    Serial.println(" 8              "); 
    break;
  case 0xFF52AD:  
    Serial.println(" 9              "); 
    break;
  default: 
    Serial.println(" other button   ");
  }
  delay(500);
} //END translateIR

Simak video cara penggunaan praktis berikut ini :

Leave a Reply

Your email address will not be published. Required fields are marked *