Kontrol Servo dengan Arduino dan Remote IR + IR Receiver

Ditulis oleh agan

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

Halo bro, selamat datang... Kita berjumpa dan berkumpul kembali di blog BoArduino ini.
Gimana kabar? Semoga baik-baik saja dan tetap semangat untuk melakukan aktivitas (Produktif).

Sekarang saat ane menulis ini, sudah Hari Sabtu. Dan hari ini berbeda dari hari weekend sebelumnya. Oh iya, ane mau konfirmasi kepada agan dan sista yang telah berkunjung, meninggalkan komentar ataupun mengirimkan pesan melalui email dan whatsapp. Mohon maaf nih sebelumnya apabila mungkin komentarnya belum muncul, atau email belum ane bales, dll. Pastinya ane punya alasan mengapa demikian, karena sebenarnya sudah beberapa minggu ini ane masih ada kesibukan untuk mengerjakan tugas dari dosen Mata kuliah Mikrokontroller dan Mikroprosessor. Tugasnya sih masih dalam proses, doakan saja supaya ane dan kelompok ane dimudahkan ya gan :) Dan nanti insyaAllah setelah tugas ane itu selesai, ane share juga proses pembuatannya di blog ini.

Pada artikel ini sebenarnya hampir mirip dengan Artikel Arduino sebelumnya yang berjudul "Kontrol Output Pin PWM Arduino dengan IR Receiver + Remote" Dan kita pun masih menggunakan Pin PWM, hanya saja pada kali ini output yang akan di kontrol adalah Motor Servo, sebagai contoh disini saya menggunakan Motor Servo merk Tower Pro dan Tipe SG90.


Alat dan Bahan yang dibutuhkan :
  • 1x Arduino UNO
  • 1x Remote Universal (TV,DVD, dll)
  • 1x IR Receiver HX1838, Silahkan Cek DATASHEET
  • 1x Motor Servo
  • Library IRremote
  • 1x 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.

Nah, di langkah selanjutnya ini kita akan Mengontrol Servo dengan Remote Infrared.
1.) Pertama, pastikan untuk mencabut Kabel USB Arduino yang terhubung ke Komputer.
2.) Setelah itu kita tambahkan Motor Servo sehingga menjadi gambar seperti dibawah ini.


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
  • Pin 5v pada Arduino di hubungkan ke Kabel Merah Servo
  • Pin GND pada Arduino di hubungkan ke Kabel Hitam Servo
  • Pin 9 pada Arduino dihubungkan ke Kabel Kuning Servo
3.) Bila sudah menambahkan wiring Motor Servo, maka upload sketch dibawah ini ke Arduino.

Klik LIHAT DONG untuk melihat sketch
#include <Servo.h>
#include <IRremote.h>

int pos = 0;
int RECV_PIN = 11;
int Servo_PIN = 9;

Servo servo;
IRrecv irx(RECV_PIN);
decode_results results;

void setup() {
  irx.enableIRIn();
  servo.attach(9);
  Serial.begin(115200);
  servo.write(pos);
}

void loop() {
  if (irx.decode(&results)) {
    if (results.value == 1331218487) { //Ubah 1331218487
      pos += 10;
      if (pos > 180) { pos = 180; }
      servo.write(pos);
      delay(1);
    }
    else if (results.value == 1331185847) { //Ubah 1331185847
      pos -= 10;
      if (pos < 0) { pos = 0; }
      servo.write(pos);
      delay(1);
    }
    Serial.println(pos);
    irx.resume();
  }
}

Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Blog, Updated pada: 13:36: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