Lompat ke konten Lompat ke sidebar Lompat ke footer

TSOP1738 Arduino IR Remote Pakai Arduino Uno

IR Remote TSOP1738 Arduino Kontrol LED 

Cara Baca TSOP1738 Arduino IR Remote menggunakan Arduino Uno - IR Remote merupakan suatu komunikasi wireless jarak dekat yang sangat banyak digunakan. Selain harga yang murah, protokol IR remote ini sangat baik.
 
Untuk dapat membaca data infrared yang datang, kita terlebih dahulu mengetahui protokol yang digunakan. Protokol secara sederhananya adalah bahasa komunikasi yang digunakan.
 
Ada 4 Protokol IR Remote yang paling umum digunakan yaitu protokol NEC, SONY, RC5 dan RC6. Salah satu penerima inframerah atau ir receiver remote control adalah TSOP1738 .
Cara Baca TSOP1738 Arduino IR Remote menggunakan Arduino Uno
TSOP1738 Pin Out
 

A. Dasar TSOP1738 IR Receiver

TSOP1738 merupakan salah satu receiver IR yang diproduksi oleh VISHAY. Komponen ini telah memiliki photo detektor dan preamplifier dalam satu kemasan, jadi dapat digunakan langsung pada microprocessor atau mikrokontroller.
 
Namun dalam aplikasi ir remote, dibutuhkan setidaknya 3 komponen tambahan yaitu resistor 100R, 10KR dan Elko 4.7uF.
 
Fitur TSOP1738:
  • Photo Detektor dan preamplifier dalam satu paket.
  • Penyaringan internal untuk frekuensi PCM
  • Peningkatan perlindungan terhadap gangguan medan listrik
  • Kompatibilitas TTL dan CMOS
  • Output aktif rendah
  • Konsumsi daya rendah
  • Kekebalan tinggi terhadap cahaya sekitar
  • Transmisi data terus menerus dimungkinkan (hingga 2400 bps)
  • Panjang burst yang sesuai ≥10 siklus / burst

 

Rating Nilai Maksimum: 

  • Tegangan Supply  hingga 6V
  • Arus Supply hingga 5mA
  • Tegangan Output hingga 6V
  • Temperatur Junction 100 derajat C
  • Temperatur Penyimpanan hingga +85 derajat C
  • Temperatur Operasi hingga +85 derajat C
  • Daya hingga 50mW
  • Temperatur Solder hingga 260 derajat C

 

B. Rangkaian TSOP1738 Arduino

Sekarang mari kita buat pengujian terhadap TSOP1738 ir remote arduino. Untuk dapat berkomunikasi antara TSOP1738 dan Arduino, silahkan hubungkan keduanya seperti pada rangkaian berikut.
 
Cara Baca TSOP1738 Arduino IR Remote menggunakan Arduino Uno
Rangkaian TSOP1738 Arduino UNO
 
 
Jika anda pemula dan merasa belum terbiasa dengan rangkaian diatas, anda dapat mencoba ir receiver module yang telah banyak dijual dipasaran.

C. Library IR Remote TSOP1738

Setelah rangkaian selesai dibuat, silahkan download library untuk arduino ir. Library ini akan memudahkan kita mengkonversi sinyal yang diterima oleh photo detektor menjadi data Hexadesimal.
 
 
Setelah itu, masukkan library yang sudah di download dengan cara:
  • Buka Arduino IDE
  • Klik Sketch -> Include Library -> add .ZIP library
  • Arahkan dan Pilih library yang telah anda download
  • Lalu klik OK
 
Pada library ini telah terdapat perintah-perintah dasar yang sangat berguna dalam pengeporasian kode. Berikut adalah perintah-perintahnya.
 
Perintah Untuk Penerima:
  • IRrecv irrecv(receivePin)
    Buat objek penerima, menggunakan nama pilihan Anda.
  • irrecv.enableIRIn()
    Mulailah proses penerimaan. Ini akan mengaktifkan interupsi pengatur waktu yang mengkonsumsi sejumlah kecil CPU setiap 50 ┬Ás.
  • irrecv.decode(&results)
    Mencoba menerima kode IR. Mengembalikan nilai benar jika kode telah diterima, atau salah jika belum ada yang diterima. Ketika kode diterima, informasi disimpan ke dalam "hasil".
    results.decode_type: Akan menjadi salah satu dari berikut ini: NEC, SONY, RC5, RC6, atau UNKNOWN.
    results.value: Kode IR aktual (0 jika tipe TIDAK DIKETAHUI)
    results.bits: Jumlah bit yang digunakan oleh kode ini
    results.rawbuf: Sebuah array waktu pulsa IR
    results.rawlen: Jumlah item yang disimpan dalam array
  • irrecv.resume()
    Setelah menerima, ini harus dipanggil untuk mengatur ulang penerima dan mempersiapkannya untuk menerima kode lain.
  • irrecv.blink13(true)
    Aktifkan kedipan LED saat selama penerimaan. Karena Anda tidak dapat melihat cahaya inframerah, mengedipkan LED dapat berguna saat memecahkan masalah, atau hanya untuk memberikan umpan balik visual.
 
Perintah Untuk Pengirim:
  • IRsend irsend;
    Buat objek transmisi. Nomor pin tetap selalu digunakan, tergantung pada timer mana yang digunakan perpustakaan.
  • irsend.sendNEC(IRcode, numBits);
    Kirim kode dalam format NEC.
  • irsend.sendSony(IRcode, numBits);
    Kirim kode dalam format SONY.
  • irsend.sendRC5(IRcode, numBits);
    Kirim kode dalam format RC5.
  • irsend.sendRC6(IRcode, numBits);
    Kirim kode dalam format RC6.
  • irsend.sendRaw(rawbuf, rawlen, frequency);
    Kirim kode mentah. Biasanya Anda akan mendapatkan konten rawbuf dan rawlen dengan menggunakan penerima berkali-kali dan merata-ratakan hasilnya.

    Beberapa penyesuaian mungkin diperlukan untuk kinerja terbaik. Frekuensi adalah frekuensi filter bandpass yang diharapkan di penerima, di mana 38 adalah yang paling umum digunakan.
 

D. Kode Progam TSOP1738 Arduno

1. Cara Menerima Data IR Remote

Baik... setelah kita memasukkan library, kita akan melihat program dasar dari penerimaan data. Berikut adalah program dasarnya. Silahkan upload ke Arduino.

Progam:

#include <IRremote.h>
const int RECV_PIN = 2; //Tentukan pin 2 sebagai input dari TSOP1738
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
//Mulai aktifkan protokol IR
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results)) {
//Menampilkan data pada seria monitor
Serial.println(results.value, HEX);
// Menerima data selanjutnya
irrecv.resume();
}
}

Setelah upload selesai, buka serial monitor arduino IDE. Pastikan baudrate dipilih pada nilai 9600 (bagian kanan bawah serial monitor).

Sekarang arahkan dan tekan salah satu remote. Maka pada serial monitor akan menampilkan alamat dengan nilai Hexadesimal.

 

2. Melihat Jenis Protokol IR Remote

Sekarang, kita akan mencoba melihat protokol yang digunakan oleh remote anda. Seperti yang dijelaskan diatas, ada 4 protokol IR remote yang digunakan yaitu NEC, SONY, RC5 dan RC6.
 
Program dibawah ini akan membaca jenis protokol pada remote yang anda gunakan, kemudian akan ditampilkan pada serial monitor. Silahkan upload program berikut.

Program:

#include <IRremote.h>
const int RECV_PIN = 2; //Tentukan pin 2 sebagai input dari TSOP1738
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); //Mulai aktifkan protokol IR
irrecv.blink13(true); //Hidupkan LED internal jika ada data masuk
}
void loop() {
if (irrecv.decode(&results)) {
if (results.decode_type == NEC) {
Serial.print("Protokol NEC: ");
} else if (results.decode_type == SONY) {
Serial.print("Protokol SONY: ");
} else if (results.decode_type == RC5) {
Serial.print("Protokol RC5: ");
} else if (results.decode_type == RC6) {
Serial.print("Protokol RC6: ");
} else if (results.decode_type == UNKNOWN) {
Serial.print("Protokol tidak diketahui: ");
}
Serial.println(results.value, HEX);
irrecv.resume(); // Menerima data selanjutnya
}
}

Setelah upload selesai, silahkan tekan tombol pada remote dan arahkan ke TSOP1738. Anda akan melihat jenis protokol yang anda gunakan pada serial monitor.

 

3. Menghidupkan LED RGB Menggunakan Remote

Setelah anda memahami dua progrma diatas, kita akan mencoba menghidupkan 3 LED menggunakan remote.

Untuk menghidupkan 3 LED Merah Hijau dan Biru kita butuh tiga tombol. Katakanlah kita telah  menentukan 3 alamat hex untuk remote:

  • Data hex 0xFF30CF untuk warna merah
  • Data hex 0xFF18E7 untuk warna hijau
  • Data hex 0xFF7A85 untuk warna biru

Untuk rangkaiannya, silhkan hubungkan LED Merah ke pin 12, LED Hijau pada pin 11, dan LED biru pada pin 10. Jangan lupa gunakan resistor 330R.

Silahkan anda upload program berikut pada Arduino anda. Silahkan anda tekan tombol 1, 2, atau 3 remote anda. 

Program:

#include <IRremote.h>
const int RECV_PIN = 2; //Tentukan pin 2 sebagai input dari TSOP1738
int ledMerah = 12;
int ledHijau = 11;
int ledBiru = 10;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); //Mulai aktifkan protokol IR
irrecv.blink13(true); //Hidupkan LED internal jika ada data masuk
pinMode(ledMerah, OUTPUT);
pinMode(ledHijau, OUTPUT); pinMode(ledBiru, OUTPUT);
}
void loop() {
//Data hex 0xFF30CF untuk warna merah
//Data hex 0xFF18E7 untuk warna hijau
//Data hex 0xFF7A85 untuk warna biru
 
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
if (results.value == 0xFF30CF)
{
digitalWrite(ledMerah, HIGH);
digitalWrite(ledHijau, LOW);
digitalWrite(ledBiru, LOW);
}
if (results.value == 0xFF18E7)
{
digitalWrite(ledMerah, LOW);
digitalWrite(ledHijau, HIGH);
digitalWrite(ledBiru, LOW);
}
if (results.value == 0xFF7A85)
{
digitalWrite(ledMerah, LOW);
digitalWrite(ledHijau, LOW);
digitalWrite(ledBiru, HIGH);
}
 
irrecv.resume(); // Menerima data selanjutnya
}
}

 



E. TSOP1738 Datasheet

Untuk lebih lengkap tentang TSOP1738, anda dapat melihat datasheet TSOP1738 dibawah ini.

 

Selain TSOP1738, ada komponen yang kini banyak digunakan yaitu VS1838B. Anda dapat membaca Cara Menggunakan IR Remote TL18838.

Pencarian yang serupa:

Sumber: PJRC

Posting Komentar untuk "TSOP1738 Arduino IR Remote Pakai Arduino Uno"