Kontrol Output PWM Arduino dengan IR Receiver + Remote

Ditulis oleh agan

بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم

Halo sobat, selamat datang di hari Jum'at yang berkah ini. Gimana nih kabar ente semuanya?
Kamis sampai minggu, mungkin adalah liburan yang cukup panjang untuk yang merasakannya

Ane pun mulai hari kamis sampai dengan minggu nanti, sedang menikmati liburan. Tetapi ya sebenernya sih menurut ane gak bisa disebut liburan juga buat nih, soalnya ane tetap melakukan aktivitas yang berbeda dari aktivitas liburannya orang normal. Dan tugas kuliah pun sudah mendekati Garis mati a.k.a (deadline). Kalau kata teman ane, atau kata anak muda zaman sekarang sih ini namanya Kurang Piknik. Lalu, setelah ane berselancar di internet ane menemukan artikel yang berjudul "Terbukti, Kurang Piknik Bikin Otak Dipenuhi Pikiran Negatif", ane pun hanya bisa diam dan tercengang, hehehe jadi pingin piknik juga nih jadinya :). Kalau kalian gimana nih? apakah kalian kurang piknik juga nih? hehe

Oke gan sudah dulu ya curhatnya, kita langsung menuju pembahasan saja. Pada artikel kali ini, masih menggunakan protokol Infrared dan Arduino. Di artikel ini kitapun masih menggunakan 2 komponen utama untuk berkomunikasinya yaitu IR Receiver dan IR LED. Kalau di artikel sebelum artikel ini, kita telah mencoba untuk mengontrol relay dengan arduino dan remot infrared, atau bisa juga disebut menyalakan lampu dengan remot, atau bisa juga disebut kontrol arduino dengan remot, atau apalah terserah dari pribadi masing-masing ingin menyebutnya apa :P

Nah, kalau di artikel sebelumnya kita hanya dapat mengontrol output arduino untuk ON/OFF atau hanya memberikan logika HIGH/LOW saja pada pin Output tersebut. Pada kali ini, kita akan mengontrolnya dengan Output PWM, dan tentunya output yang kita gunakan yang terhubung pada Pin PWM Arduino. Bagi ente yang belum tau atau belum berkenalan dengan apa itu PWM (Pulse Width Modulation), Silahkan bisa mencari referensi dari buku, internet atau lainnya.


Alat dan Bahan yang dibutuhkan :
  • 1x Arduino UNO
  • 1x LED (warna bebas)
  • 1x Resistor 220 Ohm
  • 1x Remote Universal (TV,DVD, dll)
  • 1x IR Receiver HX1838, Silahkan Cek DATASHEET
  • Library IRremote
  • Project board ( Breadboard )
  • Kabel jumper secukupnya

Langkah - Langkahnya :
1.) Pertama, Download Library IRremote pada Software Arduino IDE ente. DOWNLOAD
2.) Setelah itu Susunlah rangkaian dibawah ini pada breadboard.


Keterangan Konfigurasi Kabel :
  • Pin 11 pada Arduino dihubungkan ke Kaki 1 IR Receiver
  • Pin GND pada Arduino dihubungkan ke Kaki 2 IR Receiver
  • Pin 5v pada Arduino dihubungkan ke Kaki 3 IR Receiver
3.) Lalu tambahkan library IRremote. Klik Sketch -> Include Library -> Add .ZIP Library...


4.) Setelah itu pilih file library .ZIP yang ente download tadi, lalu klik Open

Done, Library berhasil ditambahkan ke Software Arduino IDE

Sekarang kita akan melakukan decode terhadap sinyal infrared yang dikirimkan oleh remote.
1.) Buka sketch untuk decode, Klik File -> Examples -> IRremote -> IRrecvDemo


2.) Setelah itu maka ente cari dan ente ubah sketch pada baris seperti dibawah ini
Serial.println(results.value, HEX);
Hingga menjadi sama seperti dibawah ini, lalu upload ke Arduino
Serial.println(results.value);
3.) Lalu buka serial monitor dan tekan Tombol di remote untuk dapatkan hasil dari tiap button


4.) Setelah kita mendapatkan hasilnya, maka catat pada Notepad (Agar lebih memudahkan).

Oke, Selesai untuk decode tombol dari Remote Infrared.

Selanjutnya adalah langkah untuk mengontrol Output PWM Arduino dengan Remote Infrared
1.) Pertama, pastikan untuk mencabut kabel USB Arduino bila ingin menyusun rangkaian.
2.) Bila sudah, mari susunlah rangkaian seperti gambar dibawah ini (Untuk Motor DC)

Atau menyusun rangkaian dibawah ini (Untuk LED)


3.) Setelah upload sesuaikan terlebih dahulu sketch dibawah ini, lalu upload pada Arduino


Klik LIHAT DONG untuk melihat sketch
#include <IRremote.h>
int RECV_PIN = 11;
int pwmPin = 9;
int nilaiPWM;

IRrecv irrecv(RECV_PIN);
decode_results results;
     
void setup() {
  Serial.begin(115200);
  irrecv.enableIRIn();
  pinMode(pwmPin, OUTPUT);  
  nilaiPWM = 0; //Awali dengan 0
}
     
void loop() {
  if (irrecv.decode(&results)) { 
  if (results.value == 1331177687) { //Tombol OK
    nilaiPWM = 255; //100% Duty Cycle
  }
   if (results.value == 1331202167) { //Tombol Bawah
    nilaiPWM = 0; // 0% Duty Cycke
  }
  if (results.value == 1331218487) { //Ubah 1331218487
      nilaiPWM += 10;
      if (nilaiPWM > 255) { nilaiPWM = 255; }
    }
    else if (results.value == 1331185847) { //Ubah 1331185847
      nilaiPWM -= 10;
      if (nilaiPWM < 0) { nilaiPWM = 0; }
    }
    analogWrite(pwmPin, nilaiPWM);  
    Serial.print("Nilai PWM : ");  
    Serial.print(nilaiPWM);
    Serial.print("  |  ");
    Serial.print("Hasil Tombol Remote : ");
    Serial.println(results.value);
    irrecv.resume();
    delay(50);
  }
NOTE : Ubah dan sesuaikan hasil tiap tombol dengan hasil Remote Infrared ente.

Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Blog, Updated pada: 21:07:00
Comments
0 Comments

0 comments:

Post a Comment

Masih Bingung atau Hal Lainnya? Silahkan Bertanya di Kolom Komentar :)

~ Dilarang SARA
~ Dilarang PORNOGRAPHY
~ Dilarang SPAM
~ Dilarang MENINGGALKAN LINK AKTIF
~ Maaf untuk Anonymous, tidak bisa Berkomentar.

Apabila Komentar anda belum muncul, Tunggu sampai di Moderasi.
Terimakasih atas Perhatiannya.


English French German Spain Italian Dutch Russian