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
Komponen | Pin Arduino |
---|---|
Potensiometer VCC | 5V |
Potensiometer GND | GND |
Potensiometer OUT | A0 |
Kabel Servo Merah | 5V |
Kabel Servo Coklat | GND |
Kabel Servo Kuning | D9 |
⚠️ 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.