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

Selasa, 16 Juni 2026

Arduino dan MG996R - Cara Mengontrol Motor Servo Torsi Tinggi dengan Arduino

Motor servo merupakan salah satu komponen yang paling sering digunakan dalam proyek robotika dan otomasi. Untuk aplikasi yang membutuhkan tenaga lebih besar dibandingkan servo standar seperti SG90, banyak maker dan pengembang memilih menggunakan MG996R, yaitu motor servo torsi tinggi yang mampu menghasilkan tenaga besar dengan kontrol posisi yang presisi.

 

Pada tutorial ini, Anda akan mempelajari cara menggunakan motor servo MG996R dengan Arduino, mulai dari mengenal karakteristik servo, memahami konfigurasi pin, melakukan pengkabelan yang benar, hingga mengontrol posisi dan kecepatan putaran servo menggunakan program Arduino.

Perangkat Keras yang Dibutuhkan

- Arduino Uno R3

- Kabel USB

- Motor Servo MG996R

- Kabel Jumper

- Catu daya eksternal (disarankan)

Mengenal Motor Servo MG996R

MG996R merupakan motor servo digital bertorsi tinggi yang banyak digunakan pada proyek yang membutuhkan tenaga besar dan kontrol posisi yang akurat. Dibandingkan servo mikro seperti SG90, MG996R mampu mengangkat beban yang jauh lebih berat sehingga cocok digunakan untuk lengan robot (robotic arm), robot berkaki, sistem kemudi kendaraan RC, mekanisme buka-tutup pintu otomatis, aktuator mekanis, dan sistem pan-tilt kamera berukuran besar. Servo ini mampu bergerak pada rentang sudut sekitar 0° hingga 180°, sehingga memungkinkan pengaturan posisi yang presisi sesuai kebutuhan aplikasi.

 

Baca juga: Arduino Motor Shield Rev3 - Cara Mengontrol Motor DC dengan Arduino 

Spesifikasi Singkat MG996R

- Tegangan kerja: 4.8V – 7.2V

- Sudut putar: sekitar 180°

- Torsi tinggi hingga sekitar 15 kg·cm (tergantung tegangan)

- Kontrol menggunakan sinyal PWM

- Gear berbahan logam (metal gear)

- Cocok untuk aplikasi dengan beban besar

Pinout Motor Servo MG996R

Servo MG996R memiliki tiga kabel utama yang berfungsi sebagai jalur daya dan kontrol.

1. Pin VCC

Biasanya berwarna merah. Pin ini digunakan sebagai sumber tegangan servo dan dapat dihubungkan ke tegangan antara 4.8V hingga 7.2V sesuai spesifikasi servo.

2. Pin GND

Biasanya berwarna hitam atau cokelat. Pin ini berfungsi sebagai ground dan harus terhubung ke ground Arduino maupun sumber daya eksternal.

3. Pin Sinyal

Biasanya berwarna kuning, oranye, atau putih. Pin ini menerima sinyal PWM dari Arduino untuk menentukan posisi sudut servo.

Wiring Diagram MG996R dengan Arduino

Salah satu kesalahan yang sering dilakukan pemula adalah menghubungkan servo MG996R langsung ke pin 5V Arduino. Meskipun pada beberapa kondisi servo masih dapat bergerak, cara ini sangat tidak disarankan karena MG996R membutuhkan arus yang relatif besar, terutama saat mulai bergerak (startup current), menahan beban, dan berubah arah secara tiba-tiba. Jika daya diambil langsung dari Arduino, dapat terjadi beberapa masalah seperti Arduino restart sendiri, servo bergerak tidak stabil, tegangan turun (voltage drop), komunikasi serial terganggu, dan board Arduino berpotensi mengalami kerusakan. 

 

Menggunakan Catu Daya Eksternal

Untuk menjaga kestabilan sistem, MG996R sebaiknya menggunakan sumber daya eksternal. Konfigurasi yang direkomendasikan adalah:

- VCC servo → sumber daya eksternal 5V–6V

- GND servo → GND sumber daya eksternal

- Pin sinyal servo → pin digital Arduino

- GND Arduino → GND sumber daya eksternal  

Penting: Pastikan ground Arduino dan ground sumber daya eksternal saling terhubung (common ground). Tanpa koneksi ground bersama, sinyal kontrol dari Arduino mungkin tidak dapat dibaca dengan benar oleh servo.

Kode Program Arduino untuk Mengontrol MG996R

Program berikut akan membuat servo bergerak perlahan dari posisi 0° menuju 180°, kemudian kembali lagi ke posisi awal secara berulang.

Kode Program Arduino


#include <Servo.h>


Servo servo;  // create servo object to control a servo


void setup() {

  servo.attach(9);  // attaches the servo on pin 9 to the servo object

  servo.write(0);   // rotate slowly servo to 0 degrees immediately

}


void loop() {

  for (int angle = 0; angle <= 180; angle += 1) {

    servo.write(angle);

    delay(10);

  }


  for (int angle = 180; angle >= 0; angle -= 1) {

    servo.write(angle);

    delay(10);

  }

}


Penjelasan Program

1. Pertama, library Servo ditambahkan ke dalam program #include <Servo.h>

2. Kemudian dibuat sebuah objek servo Servo servo;

3. Pada fungsi setup(), servo dihubungkan ke pin digital 9 menggunakan servo.attach(9);

4. Selanjutnya servo diarahkan ke posisi awal servo.write(0);

5. Di dalam fungsi loop(), digunakan dua buah perulangan for.

- Perulangan pertama menggerakkan servo dari 0° menuju 180°:

 

for (int angle = 0; angle <= 180; angle += 1)

 

- Sedangkan perulangan kedua mengembalikan servo dari 180° menuju 0°:

 

for (int angle = 180; angle >= 0; angle -= 1)


Karena setiap perubahan sudut diberi jeda 10 milidetik, pergerakan servo terlihat lebih halus.

Langkah Pengujian

1. Hubungkan servo MG996R ke Arduino sesuai diagram pengkabelan.

2. Pastikan servo mendapatkan suplai daya eksternal.

3. Sambungkan Arduino ke komputer menggunakan kabel USB.

4. Buka Arduino IDE.

5. Pilih board dan port yang sesuai.

6. Salin program ke Arduino IDE.

7. Klik tombol Upload.

 

Jika seluruh koneksi sudah benar, servo akan bergerak dari 0° menuju 180°, bergerak kembali dari 180° menuju 0°, dan mengulangi proses tersebut secara terus-menerus.

Cara Mengontrol Kecepatan Servo MG996R

Selain mengatur posisi, Arduino juga dapat mengontrol kecepatan pergerakan servo. Metode yang direkomendasikan adalah menggunakan kombinasi fungsi millis() dan map() sehingga servo dapat bergerak secara halus tanpa menghambat proses lain yang berjalan pada Arduino.

Kode Program


#include <Servo.h>


Servo myServo;

unsigned long MOVING_TIME = 3000; // moving time is 3 seconds

unsigned long moveStartTime;

int startAngle = 30; // 30°

int stopAngle  = 90; // 90°


void setup() {

  myServo.attach(9);

  moveStartTime = millis(); // start moving


  // TODO: other code

}


void loop() {

  unsigned long progress = millis() - moveStartTime;


  if (progress <= MOVING_TIME) {

    long angle = map(progress, 0, MOVING_TIME, startAngle, stopAngle);

    myServo.write(angle);

  }


  // TODO: other code

}


Penjelasan Program

Pada contoh ini, servo bergerak dari sudut 30° menuju 90° selama 3 detik. Nilai MOVING_TIME = 3000 menentukan durasi pergerakan servo. Fungsi millis() digunakan untuk menghitung waktu yang telah berlalu sejak pergerakan dimulai. Kemudian fungsi map() mengubah nilai waktu tersebut menjadi nilai sudut servo secara proporsional. Akibatnya servo bergerak secara bertahap menuju posisi target tanpa menggunakan delay(), sehingga Arduino tetap dapat menjalankan tugas lainnya secara bersamaan.

 

Baca juga: Arduino dan Motor Servo - Panduan Lengkap Mengontrol Posisi Servo dengan Arduino 

 

 

 

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

0 on: "Arduino dan MG996R - Cara Mengontrol Motor Servo Torsi Tinggi dengan Arduino"