Kendali Sudut Motor Servo Dengan Potensiometer
Berbasis Arduino
Kendali Sudut Motor Servo Dengan Potensiometer Berbasis Arduino |
A.
Pendahuluan
Sebelum
kita membahas panjang lebar, jangan lupa singgah ke blog saya à http://festyy.com/wNiBaj
dan klik Follow agar tidak
ketinggalan membaca tulisan-tulisan baru materi-materi lainnya tentang
Otomatisasi PLC maupun mikrokontroler dan juga Subscribe serta
Like
channel youtube saya di (fungky king) https://www.youtube.com/channel/UCWbN7TqlN68FxeFY7uCNhkA
untuk melihat hasil dari percobaan-percobaan dengan mikrokontroler yang telah
dibuat.
Pada pembahasan sebelumnya kita telah menjabarkan tentang
“Mengatur
Sudut Motor Servo Dengan Program Arduino”,
telah kita jabarkan dengan cukup rinci dari rangkaiannya, contoh programnya dan
penjelasan dari program tersebut. Sehingga kali ini kita akan
mengimplementasikan caranya mengatur sudut servo dengan menggunakan tambahan
perangkat berupa Potensiometer, lalu bagaimana caranya? Mari langsung kita
bahas ke materi utamanya, sedangkan untuk pembahasan umumnya silahkan baca pada
postingan blog sebelum-sebelumnya.
- Perancangan
Sebelum kita mulai membuat sebuah program, terlebih
dahulu rancanglah rangkaian Motor Servo dan potensiometer yang terkoneksi
dengan Board Arduino. Berikut adalah rangkaian antara Motor Servo,
Potensiometer dan Arduino UNO.
Gambar 01. Motor Servo dan Potensiometer Dengan Arduino UNO |
Setelah rangkaian selesai dibuat, maka selanjutnya kita
membuat program untuk mengendalikan sudut Motor Servo menggunakan aplikasi
bawaan dari Arduino yaitu Arduino IDE. Dengan menggunakan Arduino IDE, seorang
programmer tidak perlu membuat program dari awal, dikarenakan dalam aplikasi
tersebut sudah disediakan contoh program untuk berbagaimacam jenis sensor dan
peralatan lainnya.
Dalam hal ini saya menggunakan Arduino IDE versi 1.5.6 dimana
untuk mencari contoh program Motor Servo yaitu dengan cara “Klik Aplikasi
Arduino IDE à Pilih Menu FILE
à Examples à
Servo à Knop. Setelah dipilih maka akan muncul contoh program
Motor Servo yang akan kita gunakan seperti pada program dibawah ini. Untuk
memprogram Motor Servo kita akan menggunakan library yang sudah ada, atau
bawaan aplikasi Arduinonya sehingga tidak perlu add library lagi.
Program Arduino Kendali Sudut Motor Servo:
#include <Servo.h>
Servo myservo;
int Potensio = A0;
int val;
void setup() {
myservo.attach(9);
}
void loop() {
val = analogRead(Potensio);//
membaca nilai analog dari pin A0
val = map(val, 0, 1023, 0, 180);
//memetakan nilai dari 0 - 1023 menjadi 0 - 180
myservo.write(val); // set posisi
servo
delay(15); // beri jeda 15
miliseconds
}
|
Motor Servo bergerak berdasarkan sinyal pulse yang
dikirimkan ke bagian input motor servo. Di arduino sendiri sinyal pulse itu,
dikirim berdasarkan derajat. Misal kita kirim 10 derajat, maka servo akan
berada di posisi 10 derajat, jika kita kirim 80 maka akan bergerak ke posisi 80
begitu seterusnya pada sudut-sudut yang diinginkan.
Penjelasan:
Berikut adalah penjabaran dari program kendali sudut
motor servo diatas:
- #include <Servo.h> digunakan untuk
menyertakan library Servo pada program Arduino.
- Servo myservo; membuat variabel myservo
(bisa diubah terserah kamu), untuk motor servo.
- myservo.attach(9); memilih atau mengatur
pin 9 digital sebagai pin yang digunakan untuk motor servo pada variabel
servoku.
- int Potensio = A0; Mengatur pin A0
analog sebagai pin input dari potensiometer.
- int
val; Inisialisasi variabel penampung nilai posisi servo.
- val
= analogRead(Potensio); Potongan program ini akan membaca nilai analog
dari pin A0 yang diwakilkan oleh variable Potensio.
- val
= map(val, 0, 1023, 0, 180); mengatur derajat sudut servo dari hasil
pemetaan nilai ADC dari 0 - 1023 sesuai kebutuh pergerakan servo kamu
dalam hal ini diatur motor servo akan berputar dari sudut 0 (nol) derajat
ke 180 derajat. Nilai derajat tersebut dapat diubah-ubah sesuai putaran
dari potensiometer.
- servoku.write(val); mengatur posisi
servo berdasarkan nilai parameter counting “val” dari hasil pemetaan nilai
ADC.
Catatan: Motor
Servo disarankan tidak bekerja secara terus menerus, dikarenakan dapat
menyebabkan panas pada motor drivernya ataupun pada motor didalamnya. Hal ini
dikarenakan, motor servo akan terus mempertahankan posisinya jika ada kekuatan
eksternal yang mencoba memutar atau mengubah posisi tersebut, maka motor servo
akan mencoba menahan atau melawan dengan besarnya kekuatan torsi yang
dimilikinya (rating torsi servo).
- Penutup
Demikian penjabaran singkat tentang “Kendali Sudut Motor Servo Dengan
Potensiometer Berbasis Arduino”. Untuk selanjutnya, buat yang ingin
mempelajari Arduino dan lebih mengenal Arduino ataupun sistem Automation
lainnya seperti PLC silakan follow akun sosial media
saya di facebook “fungkyking” juga diblog saya di http://festyy.com/wNiBaj dan jangan
lupa subscribe serta Like
channel youtube saya juga di (fungky king) link: https://www.youtube.com/channel/UCWbN7TqlN68FxeFY7uCNhkA untuk
melihat tulisan-tulisan serta hasil rancangan alat-alat berbasis mikrokontroler
yang kami buat. Kami juga menerima pembuatan alat-alat elektronika baik untuk
penelitian ataupun alat untuk syarat kelulusan.
Demikian pembahasan singkat yang dapat
dibahas, mohon maaf jika terdapat kesalahan dalam penulisan yang mana semua ini
semata-mata hanya opini pribadi berdasarkan pengalaman. Jika ada kekurangan dan
tambahan dari materi pembahasan yang dibahas silahkan dapat teman-teman
sertakan pada kolom komentar tambahan materi yang ingin disampaikan, sampaikan
pertanyaan dan isi kolom komentar dengan bijak.
Terima Kasih,
Salam Otomatisasi
Afriansyah, S.T.
(Fungky King)
fungkyking01@gmail.com
Kata Kunci / Keywords: ATMEGA, Arduino,
Arduino IDE, Arduino UNO, Bahasa C, fungkynotes.blogspot.co.id, fungky
corporation, fungky king, microcontroller, otomatis, pemprograman, programming,
PLC, NodeMCU, ESP8266, Internet of Things (IoT), Wi-Fi, PWM, ADC, LED, Blink,
I2C (Inter-Integrated Circuit),
Two-wire (TWI), Program LCD 16X2 I2C, Sensor Suhu LM35, LCD (Liquid Crystal Display), Motor Servo, Potensiometer.
Referensi / Reference:
- www.arduino.ac.id
- www.fungkynotes.blogspot.com
- http://gestyy.com/w5Z3jE
- http://festyy.com/wNiBaj
- http://destyy.com/wMatJW
- http://arduino.cc/en/Main/Software
- www.google.com
- 8-bit
Atmel Microcontroller
with 128Kbytes In-System Programmable Flash: ATMEGA128
- Atmel, AVR318: Dallas 1-Wire Master on tinyAVR and megaAVR
- Afriansyah. 2012. Pengukur Kadar pH Air Berbasis Mikrokontroler ATMega 8, TE-UGM, Yogyakarta.
- https://fungkynotes.blogspot.com/2019/03/menghubungkan-aplikasi-arduino-ide.html
- https://fungkynotes.blogspot.com/2019/02/instruksi-instruksi-dasar-pada.html
- https://fungkynotes.blogspot.com/2019/02/apa-itu-sketch-arduino.html
- http://arduino.cc/en/Guide/Windows
- https://www.arduino.cc/en/reference/servo
- https://create.arduino.cc/projecthub/Arca_Ege/how-to-use-servo-motors-with-arduino-b02bed
pak mau tanya,
ReplyDeletekalau potensio nya 3pcs untuk atur 1 servo bagaimana rumusnya ya pak?
lebih ke seri itu fungsi 3 potensionya
ptnsio1= atur untuk adjust bukaan servo dari 0 derajat ke depan
ptnsio3= atur untuk adjust bukaan servo dari 180 kebelakang
potensio 2= atur gerakan servo