Mengontrol Servo dengan Sensor Ultrasonic dan Arduino

Ditulis oleh agan

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

Wuzzup bray, Apa kabar kalian yang sedang berkunjung kesini? Semoga baik-baik saja :) 
Berjumpa kembali dengan saya Muhamad Andi Prasetyo disini, kalian bisa panggil ane Andi.

Mungkin dari kalian ada yang ingin berkenalan, atau sekedar sharing sharing dan belajar bersama tentang Arduino dan kawan kawan, bisa mengobrol dengan saya via Email, Whatsapp ataupun Media sosial Facebook. Tak kenal maka tak sayang gan :) alangkah lebih baiknya kita berkenalan, agar tidak canggung satu sama lain, dan agar ilmu dapat dengan cepat kita serap dan bisa menjadi bermanfaat untuk semua.

Dan pada kesempatan hari ini, saya ingin membagikan sedikit Tutorial Arduino dengan Sensor Ultrasonik untuk menggerakan Motor Servo, yang logikanya apabila Hasil jarak yang terhitung pada sensor ultrasonik kurang dari 15cm, maka akan menggerakan Motor servo dari 90 derajat ke 180 derajat, lalu ke 0 derajat. Dan kembali ke 90 derajat lagi apabila jarak lebih dari 15cm.

Tutorial ini hanyalah sebuah contoh dari penggunaan Sensor ultrasonic, Servo dan Arduino. Pada proyek sesungguhnya, ente mungkin bisa menjadikan simulasi Pintu Palang Parkir dengan Arduino atau Membuat simulasi Car Wiper (Pembersih kaca mobil) dengan Arduino atau mungkin ide yang lain, Tinggal disesuaikan dengan kreatifitas dan kebutuhan ente saja gan.

Alat dan Bahan yang dibutuhkan :
  • 1x Arduino Compatible
  • 1x Sensor Ultrasonik HC-SR04
  • 2x LED (Warna merah dan hijau)
  • 2x Resistor 330 Ohm
  • 1x Motor Servo
  • Kabel jumper secukupnya
  • Breadboard (Projectboard) 

Langkah - Langkahnya :

1.) Pertama, susunlah rangkaian seperti gambar berikut ini
Keterangan Konfigurasi Kabel :
  • Pin 5V pada Arduino dihubungkan ke VCC Servo dan VCC Sensor Ultrasonic
  • Pin GND pada Arduino dihubungkan ke GND Servo dan GND Ultrasonic dan Katoda LED
  • Pin 2 pada Arduino dihubungkan ke LED Merah
  • Pin 3 pada Arduino dihubungkan ke LED Hijau
  • Pin 9 pada Arduino dihubungkan ke Kabel Kuning Servo
  • Pin 12 pada Arduino dihubungkan ke Pin Trig pada sensor ultrasonic
  • Pin 13 pada Arduino dihubungkan ke Pin Echo pada sensor ultrasonic
2.) Setelah itu sambungkan Arduino pada Laptop/PC dengan menggunakan kabel serial.
3.) Download dan Install program Arduino IDE di Arduino.cc ( If Needed )
4.) Setelah terinstall, jalankan program Arduino-nya.
5.) Klik menu "Tools -> Board -> Arduino Uno"
6.) Klik menu "Tools -> Port -> ( Pilih Port arduino yang terdeteksi di komputer anda )
7.) Lalu masukan Sketch dibawah ini, dan terakhir klik upload.

Klik LIHAT DONG untuk melihat sketch
/*
 * Mengontrol Servo dengan Sensor Ultrasonic
 * Email : muhandi.prasetyo@gmail.com
 * www.boarduino.blogspot.com
*/

#include <NewPing.h> //Library untuk Sensor Ultrasonic
#include <Servo.h> //Library untuk Servo
#define trigPin 12 //Set Trigger HCSR04 di Pin digital 12
#define echoPin 13 //Set Echo HCSR04 di Pin digital 13
#define MAX_DISTANCE 500 //Set jarak maksimal
NewPing sonar(trigPin, echoPin, MAX_DISTANCE);
int LEDhijau = 3, LEDmerah = 2; //Set Pin LEDhijau dan LEDmerah
Servo myservo; //Buat object 1 buah motor servo

void setup() {
 Serial.begin (115200); //Kecepatan komunikasi serial
 pinMode(trigPin, OUTPUT); //Set pin Trigger sebagai output
 pinMode(echoPin, INPUT); //Set pin Echo sebagai input
 pinMode(LEDmerah, OUTPUT); //Set LEDmerah sebagai output
 pinMode(LEDhijau, OUTPUT); //Set LEDhijau sebagai output
 myservo.attach(9); //Set servo pada pin PWM 9
}

void loop() {
int duration, jarak,posisi=0,i;
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);
 duration = pulseIn(echoPin, HIGH);
 jarak = (duration/2) / 29.1;
  Serial.print(jarak);
  Serial.println(" cm");

if(jarak<=15) // Jarak (Cm) dapat anda sesuaikan

 {
   digitalWrite(LEDhijau, LOW); //LEDhijau mati
   digitalWrite(LEDmerah, HIGH); //LEDmerah hidup
   myservo.write(180); //Posisi servo pada 180 derajat
   delay(450); //Delay
   digitalWrite(LEDmerah, LOW); //LEDmerah mati
   myservo.write(90); //Posisi servo pada 90 derajat
   delay(450); //Delay
   digitalWrite(LEDmerah, HIGH); //LEDmerah hidup
   myservo.write(0); //Posisi servo pada 0 derajat
   delay(450); //Delay
   digitalWrite(LEDmerah, LOW); //LEDmerah mati
   myservo.write(90); //Posisi servo pada 90 derajat
}

 else{ //Jika jarak lebih dari yang ditentukan
   digitalWrite(LEDmerah, LOW); //LEDmerah mati
   digitalWrite(LEDhijau, HIGH); //LEDhijau hidup
   myservo.write(90); //Posisi servo pada 90 derajat
 }
delay(450); //Delay
}

Silahkan lihat video simulasi dibawah ini


 
Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Blog, Updated pada: 23:00:00

30 comments:

  1. Ini kalo di kembangin jadi robot labirin gimana ya gan? Kalo bisa bikin ga tutorial nya yang pake ultrasonic.

    ReplyDelete
    Replies
    1. Bisa, motor servo diganti dengan yang continues rotation servo atau pakai Motor DC. Dan sensor ultrasonic diperbanyak sampai mengelilingi body robotnya. Silahkan dikembangkan sendiri.

      Delete
  2. gan, Qu mw tny...
    sewaktu saya akan memverifikasi/ mengupload source code nya, hasilnya error.

    NewPing sonar(trigPin, echoPin, MAX_DISTANCE);

    mohon bantuannya, gan...

    ReplyDelete
    Replies
    1. Salam kenal. Tambahkan library Newping di software Arduino IDE.

      Delete
  3. Ini kalo di aplikasikan ke tong sampah otomatis gmna ya gan ? Bgsnya pakai motor servo atau dc untuk buka tutup tong sampahnya?

    ReplyDelete
    Replies
    1. Coba cek video di youtube yang berjudul "Arduino dan Multiple Ultrasonic Sensor". Itu bisa diaplikasikan sebagai tong sampah otomatis.

      Delete
  4. Bang andi boleh minta kontak Whatsaapnya gk..mau sharing tentang arduino nih

    ReplyDelete
    Replies
    1. Coba arahkan cursor mouse ke icon whatsapp yang melayang di sidebar blog ini gan.

      Delete
  5. mas andi, sya mw tny nie...
    sya mw bikin rangkaian robot pemadam api, tp sya cri2 library nya gk dpt,
    klo mas ad, sya mnt mas...
    sklian sm codingnya mas.
    thanks ...

    ReplyDelete
    Replies
    1. Salam kenal.
      Kenapa yang dicari Library? coba dulu arduino dengan multiple sensor ultrasonik, nanti tinggal dibuat sketchnya.

      Delete
  6. Kalo itu pakai untuk mengendalikan lebih dari 1 motor servo gimana gan kodingnya?

    ReplyDelete
    Replies
    1. Salam kenal, sebelumnya udah pernah nyoba servo? Coba dulu 1 servo, lalu tinggal dicoba untuk lebih dari 1 servo.

      Pelajari example sketch di software arduino IDE.
      Klik file > examples > Servo > Sweep

      Delete
  7. Cara nambahin library newpig gmana gan?

    ReplyDelete
    Replies
    1. Download file library .zip nya, lalu buka software arduino IDE.

      Klik sketch, Include library, Add zip library, lalu pilih file zip yg tadi di download.

      Delete
  8. permisi mas boarduino, saya mau nanya maksud dari syntax ini tuh gimana ya

    duration = pulseIn(echoPin, HIGH);
    jarak = (duration/2) / 29.1;
    Serial.print(jarak);
    Serial.println(" cm");

    dan maksud pulseIn sama nilai 29.1 didapat dr mana ya mas?

    ReplyDelete
    Replies
    1. Salam kenal. Itu bagian untuk mengkonversi waktu menjadi jarak (dalam centimeter). Kalau untuk mendapatkan jarak dalam satuan Inch, maka seperti ini

      inch = (duration/2) / 74;

      Delete
  9. terimakasih web nya sangat membantu belajar saya

    ReplyDelete
    Replies
    1. Terimakasih juga sudah meramaikan blog ini :)

      Delete
  10. Sangat bermanfaat untuk pembelajaran pengenalan dasar arduino.. tetap semangat ya (y)

    ReplyDelete
    Replies
    1. Terimakasih juga sudah meramaikan blog ini :)

      Delete
  11. permisi bang, Kalo pake 2 sensor ultrasonnik untuk mengendalikan motor servo saya sudah berhasil tuk mmbuatnya sesuai dr tutorial abg yg sdh abg share..
    ttpi sesuai keinginan saya,
    ketika sensor 1 menddeteksi gerakan maka motor servo ke posisi 90derajat tetapi servo tak akan kembali keposisi 0derajat sampai sensor kedua mendeteksi gerakan lagi,, dan begitu seterusya,,,
    mohon pencerahannya, sketch nya bagaimana yha bang..???
    terimah kasih bang. :)

    ReplyDelete
    Replies
    1. Nah, itu tugas ente untuk membuatnya sesuai keinginan ente. Ane sudah memberi contoh dasar sketchnya, silahkan di kembangkan :)

      Delete
  12. bagaimana carax bang kalau ingin rubah satuan cm ke mm?

    ReplyDelete
    Replies
    1. Kalau 1cm adalah 10mm, maka untuk mendapatkan dalam satuan mm, ente hanya perlu menambahkan variable untuk menampung hasil mm, lalu hasil cm/10


      mm = jarak / 10;

      Delete
  13. gan gimana cara menghubungkan sensor ultrasonik jarak sama potensimeter,,, mohn bantuannya

    ReplyDelete
    Replies
    1. Sudah pernah coba satu persatu belum? kala sudah seharusnya ente paham gan bagaimana menggabungkannya :)

      Delete
  14. terimah kasih gan sangat bermafaat.

    ReplyDelete
    Replies
    1. Iya, terimakasih juga sudah berkunjung dan meramaikan blog ini.

      Delete
  15. Bagaimana klo motor servo nya diganti motor stepper mas

    ReplyDelete
    Replies
    1. Bisa, tentu saja merubah wiring dan sketch... Silahkan dibuat :)

      Delete

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