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

Rabu, 20 Mei 2026

Arduino Button Motor Servo- Mengontrol Motor Servo dengan Tombol Menggunakan Arduino UNO

Motor servo adalah salah satu komponen yang sangat populer dalam proyek Arduino, terutama pada bidang robotika, otomasi, dan sistem mekanik. Servo motor mampu bergerak ke sudut tertentu dengan presisi tinggi sehingga sangat cocok digunakan untuk lengan robot, pintu otomatis, sistem pengunci, hingga mekanisme penggerak lainnya. Pada tutorial ini, kita akan mempelajari cara membuat tombol untuk mengontrol motor servo menggunakan Arduino Uno. Sistem yang dibuat sangat sederhana tetapi sangat berguna untuk memahami konsep dasar input dan output pada Arduino.

Fungsi Tombol pada Motor Servo

Pada project ini, push button digunakan untuk mengubah posisi motor servo secara bergantian. Sistem bekerja seperti toggle switch sehingga setiap kali tombol ditekan, posisi servo akan berubah.

Cara kerjanya:

- Motor servo akan bergerak ke sudut 90 derajat saat tombol ditekan

- Ketika tombol ditekan lagi, servo akan kembali ke posisi 0 derajat

- Proses ini akan terus berulang setiap kali tombol ditekan

Metode yang Digunakan

Tutorial ini membahas dua metode utama dalam mengontrol servo menggunakan tombol, yaitu mengontrol motor servo dengan tombol tanpa debouncing, mengontrol motor servo menggunakan debouncing. Metode debounce sangat penting karena tombol mekanis sering menghasilkan pembacaan ganda saat ditekan. Tanpa debounce, servo dapat bergerak tidak stabil atau langsung berpindah posisi beberapa kali dalam satu penekanan tombol.

Perangkat Keras yang Dibutuhkan

- Arduino UNO R3

- Kabel USB

- Breadboard

- Kabel jumper

- Modul tombol tekan

- Motor servo (SG90 Micro Servo, MG90S, atau MG996R)

 

Baca juga: Arduino Button Toggle LED - Cara Menyalakan dan Mematikan LED dengan Satu Tombol

Wiring Diagram Arduino Button Motor Servo

Mengenal Motor Servo

Motor servo adalah motor DC yang dilengkapi sistem kontrol posisi sehingga dapat bergerak ke sudut tertentu dengan akurat. Berbeda dengan motor DC biasa yang berputar terus-menerus, servo bergerak berdasarkan sudut tertentu, misalnya:

-

- 45°

- 90°

- 180° 

Servo biasanya memiliki tiga kabel, yaitu:

- Merah → VCC 5V

- Cokelat/Hitam → GND

- Kuning/Oranye → Signal    

Kabel signal dihubungkan ke pin PWM Arduino.

Cara Kerja Arduino Button Servo Motor

Pada tutorial ini, push button digunakan sebagai input untuk mengubah posisi motor servo secara bergantian. Servo akan mulai dari posisi 0 derajat, kemudian saat tombol ditekan pertama kali servo bergerak ke posisi 90 derajat. Ketika tombol ditekan kembali, servo akan kembali ke posisi 0 derajat. Proses toggle sudut ini akan terus berulang setiap kali tombol ditekan. Arduino membaca perubahan status tombol menggunakan mode INPUT_PULLUP, sehingga saat tombol tidak ditekan bernilai HIGH, sedangkan saat tombol ditekan akan terbaca sebagai LOW.

Kode Program Arduino Servo Motor dengan Tombol Tanpa Debouncing


#include <Servo.h>


// constants won't change

const int BUTTON_PIN = 7; // Arduino pin connected to button's pin

const int SERVO_PIN  = 9; // Arduino pin connected to servo motor's pin


Servo servo; // create servo object


// variables will change:

int angle = 0;

int lastButtonState;

int currentButtonState;


void setup() {

  Serial.begin(9600);


  pinMode(BUTTON_PIN, INPUT_PULLUP);


  servo.attach(SERVO_PIN);


  servo.write(angle);


  currentButtonState = digitalRead(BUTTON_PIN);

}


void loop() {

  lastButtonState = currentButtonState;

  currentButtonState = digitalRead(BUTTON_PIN);


  if(lastButtonState == HIGH && currentButtonState == LOW) {


    Serial.println("The button is pressed");


    // change servo angle

    if(angle == 0)

      angle = 90;

    else if(angle == 90)

      angle = 0;


    // move servo

    servo.write(angle);

  }

}


Penjelasan Program

Library berikut digunakan untuk mengontrol motor servo:

 

#include <Servo.h>


Kemudian kita menentukan pin tombol dan servo.

 

const int BUTTON_PIN = 7;

const int SERVO_PIN  = 9;


Objek servo dibuat menggunakan:

 

Servo servo;


Pada fungsi setup(), servo dihubungkan ke pin PWM Arduino.

 

servo.attach(SERVO_PIN);


Servo mulai dari posisi awal 0 derajat.

 

servo.write(angle);


Arduino membaca status tombol menggunakan:

 

digitalRead(BUTTON_PIN);


Jika tombol ditekan, sudut servo akan berubah.

 

if(angle == 0)

  angle = 90;

else if(angle == 90)

  angle = 0;


Servo kemudian bergerak ke sudut baru menggunakan:

 

servo.write(angle);


Cara Kerja Toggle Sudut Servo

Kode berikut digunakan untuk membuat efek toggle.

 

angle = !angle;


Namun karena servo menggunakan nilai sudut tertentu, program menggunakan logika kondisi agar sudut berpindah antara 0° dan 90°. Metode ini sangat umum digunakan pada pintu otomatis, robot arm, pengunci elektronik, dan sistem buka tutup otomatis.

Kelemahan Program Tanpa Debouncing

Meskipun program di atas sudah dapat menggerakkan servo menggunakan push button, terkadang pergerakan servo menjadi tidak stabil akibat efek bouncing pada tombol. Saat tombol ditekan, Arduino bisa membaca satu tekanan sebagai beberapa kali input sehingga menyebabkan servo bergerak bolak-balik terlalu cepat, tidak berhenti pada sudut yang diinginkan, atau bahkan merespons lebih dari satu kali dalam sekali tekan. Oleh karena itu, penggunaan teknik debounce sangat disarankan agar pembacaan tombol menjadi lebih stabil dan pergerakan servo lebih akurat pada proyek nyata.

Mengapa Debouncing Penting?

Push button mekanis tidak langsung menghasilkan sinyal yang stabil saat ditekan. Ketika tombol disentuh, kontak logam di dalam tombol dapat bergetar sangat cepat dalam beberapa milidetik sehingga Arduino bisa membaca perubahan status HIGH dan LOW secara berulang dalam waktu yang sangat singkat. Fenomena ini disebut bouncing. Jika tidak ditangani, bouncing dapat menyebabkan input terbaca beberapa kali meskipun tombol hanya ditekan satu kali. Untuk mengatasinya, kita dapat menggunakan beberapa metode seperti teknik debounce manual, fungsi millis(), maupun library khusus seperti ezButton.

Langkah Pengujian

1. Hubungkan Arduino ke komputer menggunakan kabel USB.

2. Buka Arduino IDE.

3. Pilih board Arduino UNO dan port yang sesuai.

4. Salin kode program ke Arduino IDE.

5. Klik tombol Upload.

6. Tekan tombol beberapa kali.

7. Perhatikan gerakan motor servo. 

Servo akan bergerak bergantian antara posisi 0° dan 90° setiap kali tombol ditekan.

Aplikasi Arduino Servo Motor dengan Tombol

Konsep ini dapat digunakan pada berbagai proyek elektronik dan IoT, seperti:

- Pintu otomatis

- Sistem parkir otomatis

- Robot arm

- Pengunci pintu elektronik

- Smart home

- Sistem buka tutup otomatis

- Katup otomatis

- Mini robotic project 

Tips Menggunakan Servo dengan Arduino

Saat menggunakan servo motor, ada beberapa hal yang perlu diperhatikan:

- Jangan mengambil daya servo langsung dari pin Arduino jika servi besar.

- Gunakan power supply eksternal untuk servi berdaya tinggi.

- Pastikan ground Arduino dan power supply servo terhubung bersama.

- Gunakan kapasitor tambahan jika servo menyebabkan Arduino restart.

 

Baca juga: Arduino Button Piezo Buzzer - Cara Mengontrol Buzzer dengan Tombol Menggunakan Arduino UNO 

 

 

 

Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.  

0 on: "Arduino Button Motor Servo- Mengontrol Motor Servo dengan Tombol Menggunakan Arduino UNO"