Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Minggu, 31 Mei 2026

Arduino Potensiometer Trigger Motor Servo - Mengontrol Posisi Servo Berdasarkan Nilai Potensiometer

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

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.  

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