Kontrol Motor Servo Dengan Potensiometer dan Arduino

Servo motor adalah jenis motor listrik yang digunakan untuk menggerakkan sesuatu dengan presisi, seperti pada lengan robot, pintu otomatis, dan perangkat kontrol sudut lainnya. Keunikan servo terletak pada kemampuannya untuk dikontrol sudut putarnya antara 0 hingga 180 derajat.

Salah satu metode paling dasar dan menarik dalam mengendalikan servo motor adalah menggunakan potensiometer sebagai input. Potensiometer akan menghasilkan nilai analog dari 0 hingga 1023 yang kemudian dapat dikonversi menjadi sudut rotasi servo. Semakin besar nilai potensiometer, semakin besar pula sudut perputaran servonya.

Proyek ini sangat cocok untuk pemula yang ingin memahami konsep dasar dari pembacaan input analog, pemetaan nilai dengan fungsi map(), dan penggunaan library Servo.h pada Arduino. Kamu juga bisa mengembangkan proyek ini lebih lanjut menjadi pengontrol sudut lengan robotik, slider kamera, atau kendali manual servo dalam sistem mekanik lainnya.

Komponen yang Digunakan
  • 1x Arduino Uno
  • 1x Servo Motor (SG90 atau MG90S)
  • 1x Potensiometer (10KΩ)
  • Kabel jumper secukupnya
  • Breadboard (opsional)
Skema Rangkaian
Koneksi Rangkaian
KomponenPin Arduino
Potensiometer VCC5V
Potensiometer GNDGND
Potensiometer OUTA0
Kabel Servo Merah5V
Kabel Servo CoklatGND
Kabel Servo KuningD9

⚠️ Catatan: Jika menggunakan lebih dari 1 servo atau beban berat, gunakan sumber daya eksternal untuk servo agar tidak membebani regulator Arduino.

Library yang Harus Ditambahkan

Catatan: Semua library bisa juga diinstal melalui Arduino IDE lewat Sketch → Include Library → Manage Libraries…

Kode Program Lengkap

//PROGRAM INI DI BUAT OLEH  : MANFAHBOT INDUSTRIAL AUTOMATION
//HAK CIPTA PROGRAM/CODING : LUKMAN HAKIM A.
//WEBSITE : http://manfahbot.cc

#include <Servo.h> // tambahkan library Servo

Servo myservo; // buat objek Servo
int potPin = A0; // pin analog untuk membaca nilai potensiometer
int pinServo = 9; // Mendeklarasikan pinServo di pin 9 arduino

void setup() {
myservo.attach(9); // Menghubungkan deklarasi servo ke pinServo
}

void loop() {
int potValue = analogRead(potPin); // membaca nilai potensiometer
int servoPos = map(potValue, 0, 1023, 0, 180); // mengubah nilai potensiometer menjadi posisi servo

myservo.write(servoPos); // mengatur posisi servo
delay(15); // tunggu sebentar sebelum membaca ulang nilai potensiometer
}
Penjelasan Singkat Program
  • Program menggunakan library Servo.h untuk mengendalikan sudut servo.
  • Nilai dari potensiometer dibaca menggunakan analogRead(potPin) dengan rentang 0–1023.
  • Fungsi map() digunakan untuk mengubah rentang nilai menjadi 0–180 agar sesuai dengan sudut servo.
  • Fungsi myservo.write(servoPos) mengatur posisi servo sesuai hasil pembacaan potensiometer.

Dengan memutar potensiometer, servo akan bergerak mengikuti perubahan nilai.

Kesimpulan

Proyek ini merupakan pengenalan yang sangat bagus dalam menggabungkan input analog dan output mekanik menggunakan Arduino. Dengan potensiometer, kamu dapat mengontrol servo motor secara manual dan presisi. Proyek ini bisa dikembangkan lebih lanjut menjadi bagian dari sistem robotik, kontrol kamera, atau sistem automasi berbasis sudut.

manfah.industri@gmail.com
manfah.industri@gmail.com
Articles: 26

Leave a Reply

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *