Cara Mengontrol Servo dengan Arduino (Panduan Lengkap)

Robotik & Hardware, Elrolumnews — Anda sudah bisa membuat robot pengikut garis, sudah bisa mengukur jarak dengan ultrasonik, sudah bisa mendeteksi gerakan dengan PIR. Tapi bagaimana caranya membuat robot yang bisa menggerakkan lengan, membuka pintu, atau mengarahkan kamera?

Artikel ini cocok untuk: Anda yang sudah familiar dengan dasar Arduino dan ingin belajar menggunakan motor servo—aktuator yang paling umum untuk gerakan presisi.

Motor servo adalah motor yang bisa berputar ke sudut tertentu—bukan terus berputar seperti motor DC biasa. Ia bisa bergerak ke 0°, 45°, 90°, 180°, dan berhenti di sana . Inilah yang membuatnya sempurna untuk lengan robot, pintu otomatis, kamera pan-tilt, dan mekanisme presisi lainnya.

- Advertisement -

Di artikel ini, kita akan bahas dari nol: apa itu servo, jenis-jenisnya, wiring ke Arduino, kode program, hingga proyek kontrol servo dengan potensiometer dan kontrol via Serial Monitor.

Apa Itu Motor Servo dan Bagaimana Cara Kerjanya?

Motor servo adalah motor DC yang dilengkapi rangkaian kontrol dan potensiometer internal untuk umpan balik posisi .

- Advertisement -

Prinsip Kerja Servo

LangkahApa yang Terjadi
1. Sinyal PWMArduino mengirim pulsa PWM ke servo
2. Baca PosisiServo membaca posisi saat ini dari potensiometer internal
3. BandingkanServo membandingkan posisi saat ini dengan target
4. GerakMotor bergerak sampai posisi sesuai target
5. BerhentiServo berhenti di posisi yang diminta

Sinyal PWM untuk servo:

  • Pulsa 1ms → sudut 0°

  • Pulsa 1,5ms → sudut 90° (tengah)

  • Pulsa 2ms → sudut 180°

💡 Analogi: Servo seperti lengan manusia. Anda bisa memerintahkan untuk mengangkat ke sudut tertentu, dan lengan akan bergerak ke sana—lalu berhenti.

Jenis-Jenis Motor Servo

Ada dua jenis servo yang paling umum digunakan dengan Arduino:

AspekSG90 (Micro Servo)MG996R (Standard Servo)
Torsi1,8 kg·cm11 kg·cm
Berat9 gram55 gram
Tegangan4,8V – 6V4,8V – 7,2V
Kecepatan0,1 detik/60°0,17 detik/60°
HargaRp15-25 ribuRp40-60 ribu
Cocok UntukProyek ringan (kamera, sensor)Lengan robot, pintu

⚠️ Peringatan Penting: Servo MG996R bisa menarik arus hingga 2,5A saat bergerak. Jangan menyalakannya langsung dari pin 5V Arduino—bisa merusak board. Gunakan power supply eksternal .

Komponen yang Dibutuhkan

KomponenFungsiPerkiraan Harga
Arduino Uno / NanoMikrokontrolerRp80-150 ribu
Motor Servo SG90AktuatorRp15-25 ribu
Potensiometer 10kΩKontrol sudutRp2-5 ribu
Kabel JumperKoneksiRp10-20 ribu
BreadboardPrototypingRp15-25 ribu
Power Supply 5V 2AUntuk servo besarRp30-50 ribu

Langkah 1: Wiring Servo ke Arduino

Koneksi Servo SG90 (Kecil)

ServoWarna KabelArduino
VCCMerah5V
GNDCoklat/HitamGND
SignalOranye/KuningDigital Pin 9 (PWM)

Koneksi Servo MG996R (Besar)

ServoWarna KabelKoneksi
VCCMerahPower Supply 5V eksternal
GNDCoklat/HitamGND Power Supply + GND Arduino
SignalOranye/KuningDigital Pin 9 (PWM)

⚠️ Peringatan: Untuk servo MG996R, wajib menggunakan power supply eksternal. Hubungkan GND power supply ke GND Arduino (common ground) agar sinyal PWM terbaca .

Langkah 2: Kode Program Dasar — Sweep

Ini kode paling sederhana: servo bergerak dari 0° ke 180° lalu kembali.

Kode

#include <Servo.h>

Servo myservo;

void setup() {
  myservo.attach(9); // Servo di pin 9
}

void loop() {
  // Gerak dari 0° ke 180°
  for (int sudut = 0; sudut <= 180; sudut += 1) {
    myservo.write(sudut);
    delay(15);
  }

  // Gerak dari 180° ke 0°
  for (int sudut = 180; sudut >= 0; sudut -= 1) {
    myservo.write(sudut);
    delay(15);
  }
}

Penjelasan Kode

BagianFungsi
#include <Servo.h>Library Servo bawaan Arduino
Servo myservoMembuat objek servo
myservo.attach(9)Menghubungkan servo ke pin 9
myservo.write(sudut)Memerintahkan servo ke sudut tertentu
delay(15)Jeda agar gerakan halus

💡 Tips Pro: Library Servo.h sudah termasuk dalam Arduino IDE—tidak perlu install tambahan .

Langkah 3: Kontrol Servo dengan Potensiometer

Sekarang kita kontrol sudut servo secara manual dengan potensiometer.

Wiring Potensiometer

PotensiometerArduino
Kaki 1 (kiri)5V
Kaki 2 (tengah)Analog Pin A0
Kaki 3 (kanan)GND

Kode

#include <Servo.h>

Servo myservo;

#define POT_PIN A0
#define SERVO_PIN 9

void setup() {
  myservo.attach(SERVO_PIN);
  Serial.begin(9600);
}

void loop() {
  // Baca potensiometer (0-1023)
  int nilaiPot = analogRead(POT_PIN);

  // Konversi ke sudut (0-180)
  int sudut = map(nilaiPot, 0, 1023, 0, 180);

  // Gerakkan servo
  myservo.write(sudut);

  // Tampilkan di Serial Monitor
  Serial.print("Pot: ");
  Serial.print(nilaiPot);
  Serial.print(" | Sudut: ");
  Serial.println(sudut);

  delay(15);
}

Cara Kerja

PotensiometerNilai ADCSudut Servo
Diputar kiri00°
Tengah51290°
Diputar kanan1023180°

💡 Tips Pro: Fungsi map() adalah cara mudah mengkonversi satu rentang nilai ke rentang lain. Rumusnya: map(nilai, fromLow, fromHigh, toLow, toHigh) .

Langkah 4: Kontrol Servo via Serial Monitor

Anda juga bisa mengontrol servo dengan mengetik sudut di Serial Monitor.

Kode

#include <Servo.h>

Servo myservo;

void setup() {
  myservo.attach(9);
  Serial.begin(9600);
  Serial.println("Masukkan sudut (0-180):");
}

void loop() {
  if (Serial.available() > 0) {
    int sudut = Serial.parseInt();

    if (sudut >= 0 && sudut <= 180) {
      myservo.write(sudut);
      Serial.print("Servo bergerak ke: ");
      Serial.println(sudut);
    } else {
      Serial.println("Sudut harus 0-180!");
    }
  }
}

Cara Menggunakan

  1. Upload kode

  2. Buka Serial Monitor (baud 9600)

  3. Ketik angka 0-180, tekan Enter

  4. Servo akan bergerak ke sudut tersebut

Langkah 5: Proyek Kamera Pan-Tilt

Dengan dua servo, Anda bisa membuat kamera pan-tilt—dasar dari sistem monitoring otomatis.

Konsep

ServoFungsi
Servo 1 (Pan)Gerak horizontal (kiri-kanan)
Servo 2 (Tilt)Gerak vertikal (atas-bawah)

Kode Dasar

#include <Servo.h>

Servo panServo;
Servo tiltServo;

void setup() {
  panServo.attach(9);
  tiltServo.attach(10);
}

void loop() {
  // Pan dari kiri ke kanan
  for (int sudut = 0; sudut <= 180; sudut += 1) {
    panServo.write(sudut);
    delay(15);
  }
  for (int sudut = 180; sudut >= 0; sudut -= 1) {
    panServo.write(sudut);
    delay(15);
  }

  // Tilt dari atas ke bawah
  for (int sudut = 0; sudut <= 90; sudut += 1) {
    tiltServo.write(sudut);
    delay(15);
  }
  for (int sudut = 90; sudut >= 0; sudut -= 1) {
    tiltServo.write(sudut);
    delay(15);
  }
}

💡 Tips Pro: Gabungkan dengan sensor PIR atau ESP32-CAM untuk membuat kamera yang mengikuti gerakan .

Troubleshooting: Masalah Umum

MasalahPenyebabSolusi
Servo tidak bergerakWiring salahCek VCC, GND, Signal
Servo bergetar/jiiterPower tidak stabilGunakan power supply eksternal
Servo berputar terusBukan servo, tapi motor DCCek jenis motor
Servo panasBeban berlebihKurangi beban atau ganti servo lebih kuat
Sudut tidak akuratKalibrasiCek attach() dan write()
Arduino restartServo menarik arus besarGunakan power eksternal

Kesalahan Umum dan Cara Menghindarinya

KesalahanAkibatSolusi
Servo besar dari pin 5V ArduinoBoard rusak/restartGunakan power eksternal
Tidak common groundSinyal tidak terbacaHubungkan GND
Lupa #include <Servo.h>Compile errorTambahkan library
Pin bukan PWMServo tidak bergerakGunakan pin 9, 10, atau 11
Delay terlalu pendekGerakan patah-patahTambahkan delay(15)

Kesimpulan

Motor servo adalah aktuator fundamental untuk robotik—presisi, mudah digunakan, dan terjangkau. Kuncinya:

  1. Pahami cara kerjanya — sinyal PWM menentukan sudut

  2. Pilih servo yang tepat — SG90 untuk ringan, MG996R untuk berat

  3. Wiring dengan benar — VCC, GND, Signal

  4. Gunakan library Servo — attach() dan write()

  5. Kontrol dengan potensiometer — map() untuk konversi

  6. Kontrol via Serial — untuk presisi

  7. Kombinasikan dengan sensor — untuk proyek robotik nyata

Dengan servo, Anda bisa membuat lengan robot, pintu otomatis, kamera pan-tilt, atau mekanisme presisi lainnya—semua dengan biaya di bawah Rp50 ribu.

Ingat: Servo adalah otot untuk robot Anda. Ia tidak sempurna—bisa jitter, bisa panas, bisa terbatas torsinya. Tapi untuk 90% aplikasi robotik, ia sudah lebih dari cukup.

Sudah siap membuat proyek servo pertama Anda?

💬 Punya proyek dengan servo? Bagikan di kolom komentar!

⚠️ Disclaimer

Artikel ini disusun untuk tujuan edukasi. Segala tindakan yang Anda lakukan berdasarkan artikel ini adalah tanggung jawab Anda sendiri.

⚡ Risiko yang Perlu Anda Pahami

▸
Sengatan listrik — jika wiring tidak benar
▸
Kerusakan Arduino — jika servo terhubung langsung
▸
Servo jitter — jika power tidak stabil
▸
Servo panas — jika beban berlebih

✅ Yang Harus Anda Lakukan

▸
Selalu matikan sumber listrik sebelum wiring
▸
Gunakan power supply eksternal untuk servo besar
▸
Pastikan common ground antara Arduino dan power supply
▸
Jangan menghubungkan servo besar langsung ke pin 5V Arduino

elrolum.com tidak bertanggung jawab atas segala kerusakan, kehilangan data, atau kerugian yang timbul akibat penggunaan informasi dalam artikel ini.

(el)

Share:

Tinggalkan Komentar

Please enter your comment!
Please enter your name here

Iklan

Terkait
Ilustrasi holografik Planar Tracker DaVinci Resolve Fusion dengan smartphone

Cara Menggunakan Planar Tracker di DaVinci Resolve

Photo & Video Editing, ElrolumNews — Anda punya video. Di dalamnya, ada layar HP yang bergerak—direkam dari...
Ilustrasi multi-angle Multicam Editing DaVinci Resolve dengan beberapa sudut kamera

Cara Menggunakan Multicam Editing di DaVinci Resolve

Photo & Video Editing, Elrolumnews — Anda merekam podcast. Tiga kamera: satu menghadap pembicara A, satu menghadap...
Ilustrasi cinematic ACES DaVinci Resolve dengan patung emas dan spektrum warna

Cara Menggunakan ACES di DaVinci Resolve

Photo & Video Editing, ELrolumNews — Anda punya footage dari beberapa kamera. Sony, Canon, Panasonic, DJI. Masing-masing...
Advertisement

Lainnya

Popular