Dalam berbagai proyek elektronika dan otomasi, potensiometer sering digunakan sebagai input analog untuk mengatur parameter tertentu secara manual. Salah satu penerapan yang paling populer adalah mengendalikan motor servo menggunakan potensiometer. Pada tutorial sebelumnya, Anda telah mempelajari cara memutar motor servo secara proporsional mengikuti posisi potensiometer. Kali ini, kita akan mempelajari metode yang berbeda, yaitu menggunakan nilai ambang (threshold) untuk menentukan kapan servo harus bergerak.
Dengan metode ini, motor servo tidak bergerak secara bertahap mengikuti putaran potensiometer, melainkan berpindah ke posisi tertentu ketika nilai pembacaan potensiometer melewati batas yang telah ditentukan. Teknik ini sangat berguna untuk membuat sistem sederhana seperti pintu otomatis, katup elektronik, pengunci otomatis, atau mekanisme aktuator yang hanya memiliki dua posisi kerja.
Pada tutorial Arduino Potensiometer Trigger Motor Servo ini, Anda akan mempelajari cara memutar servo ke sudut 90 derajat ketika nilai potensiometer melebihi ambang tertentu, kemudian mengembalikannya ke posisi 0 derajat saat nilainya berada di bawah ambang tersebut. Selain menggunakan nilai analog langsung, Anda juga akan mempelajari cara menggunakan nilai tegangan hasil konversi sebagai dasar pengambilan keputusan.
Perangkat Keras yang Dibutuhkan
- Arduino Uno R3
- Kabel USB
- Potensiometer
- Motor Servo (misalnya SG90)
- Breadboard
- Kabel jumper
Cara Kerja Potensiometer sebagai Trigger Servo
Potensiometer menghasilkan nilai analog yang dapat dibaca oleh Arduino melalui pin analog. Nilai tersebut berada pada rentang 0 hingga 1023, yang mewakili tegangan dari 0V hingga 5V. Pada tutorial ini, nilai analog tersebut akan dibandingkan dengan sebuah nilai ambang. Jika nilai yang dibaca lebih besar dari ambang yang ditentukan, maka Arduino akan memerintahkan servo bergerak ke sudut tertentu, misalnya 90 derajat. Sebaliknya, jika nilainya lebih kecil dari ambang, servo akan kembali ke posisi awal. Sebagai contoh:
- Potensiometer diputar ke kanan hingga nilai melebihi 500 → servo bergerak ke 90°
- Potensiometer diputar ke kiri hingga nilai kurang dari 500 → servo kembali ke 0°
Metode ini sangat sederhana dan cocok digunakan untuk membuat sistem ON/OFF berbasis sensor analog.
Baca juga: Arduino Potensiometer Trigger Relay - Mengontrol Relay Menggunakan Potensiometer dan Arduino
Wiring Diagram Arduino Potensiometer Trigger Motor Servo
Kode Program Arduino Menggunakan Ambang Nilai Analog
Pada contoh pertama, Arduino langsung membandingkan nilai analog yang dibaca dari potensiometer dengan nilai ambang sebesar 500.
#include <Servo.h>
// constants won't change
const int POTENTIOMETER_PIN = A0; // Arduino pin connected to Potentiometer pin
const int SERVO_PIN = 9; // Arduino pin connected to Servo Motor's pin
const int ANALOG_THRESHOLD = 500;
Servo servo; // create servo object to control a servo
void setup() {
servo.attach(SERVO_PIN);
servo.write(0);
}
void loop() {
int analogValue = analogRead(POTENTIOMETER_PIN);
if (analogValue > ANALOG_THRESHOLD)
servo.write(90); // rotate servo motor to 90 degree
else
servo.write(0); // rotate servo motor to 0 degree
}
Pada program di atas, servo akan berpindah ke posisi 90 derajat ketika nilai pembacaan potensiometer lebih besar dari 500. Jika nilainya lebih kecil atau sama dengan 500, servo akan kembali ke posisi 0 derajat.
Cara Menguji Program
Setelah rangkaian selesai dibuat dan kode berhasil diunggah ke Arduino, lakukan langkah-langkah berikut:
1. Hubungkan Arduino ke komputer menggunakan kabel USB.
2. Buka Arduino IDE dan pastikan board serta port yang digunakan sudah benar.
3. Upload program ke papan Arduino.
4. Upload program ke papan Arduino.
5. Amati pergerakan motor servo.
Ketika posisi potensiometer melewati nilai ambang yang telah ditentukan, servo akan langsung berpindah ke sudut 90 derajat. Saat diputar kembali ke bawah ambang, servo akan kembali ke posisi awal.
Kode Program Arduino Menggunakan Ambang Tegangan
Selain menggunakan nilai analog, kita juga dapat mengubah pembacaan potensiometer menjadi nilai tegangan terlebih dahulu. Pendekatan ini lebih mudah dipahami karena menggunakan satuan Volt yang umum digunakan dalam elektronika. Pada contoh berikut, servo akan bergerak ketika tegangan keluaran potensiometer melebihi 2,5 Volt.
#include <Servo.h>
// constants won't change
const int POTENTIOMETER_PIN = A0;
const int SERVO_PIN = 9;
const float VOLTAGE_THRESHOLD = 2.5;
Servo servo;
void setup() {
servo.attach(SERVO_PIN);
servo.write(0);
}
void loop() {
int analogValue = analogRead(POTENTIOMETER_PIN);
float voltage = floatMap(analogValue, 0, 1023, 0, 5);
if (voltage > VOLTAGE_THRESHOLD)
servo.write(90);
else
servo.write(0);
}
float floatMap(float x, float in_min, float in_max,
float out_min, float out_max) {
return (x - in_min) * (out_max - out_min) /
(in_max - in_min) + out_min;
}
Penjelasan Program
Pada program di atas, fungsi analogRead() digunakan untuk membaca nilai potensiometer dalam rentang 0–1023. Nilai tersebut kemudian dikonversi menjadi tegangan menggunakan fungsi floatMap().
Jika tegangan yang dihasilkan lebih besar dari 2,5 Volt, maka Arduino akan mengirim perintah ke servo untuk bergerak ke posisi 90 derajat. Sebaliknya, jika tegangan kurang dari 2,5 Volt, servo akan kembali ke posisi 0 derajat.
Pendekatan ini sangat bermanfaat ketika Anda ingin membuat sistem berdasarkan batas tegangan tertentu, misalnya untuk aplikasi monitoring sensor atau pengendalian aktuator otomatis.
Baca juga: Arduino Potensiometer Trigger Piezo Buzzer - Mengontrol Buzzer Menggunakan Potensiometer dan Arduino
Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.
- Diskusi umum dan tanya jawab praktik: https://t.me/edukasielektronika
- Kendala spesifik dan kasus tertentu: http://bit.ly/Chatarduino



0 on: "Arduino Potensiometer Trigger Motor Servo - Mengontrol Posisi Servo Berdasarkan Nilai Potensiometer"