Komponen · 3 mnt baca

Apa Itu Motor Servo? Mengendalikan Servo dengan Arduino

Apa itu motor servo, bagaimana cara kerjanya, dan bagaimana menghubungkannya ke Arduino? SG90 vs MG90S vs MG996R, library Servo, catu daya servo, dan kesalahan umum.

Motor servo adalah motor kecil yang porosnya berputar ke sudut tertentu lalu diam di sana. Motor DC biasa terus berputar; servo bergerak tepat ke 90 derajat ketika kamu memintanya ke 90 derajat dan menahan beban di posisi itu. Lengan robot, dudukan kamera pan-tilt, kunci pintu otomatis, dan sirip kendali pesawat model semuanya digerakkan oleh servo.

SG90
SG90
MG90S
MG90S
MG996R
MG996R

Bagaimana cara kerja motor servo?

Di dalam servo ada empat bagian: motor DC kecil, gearbox yang menurunkan kecepatan dan menaikkan torsi, potensiometer yang mengukur posisi poros, dan rangkaian kendali yang mengatur semuanya. Rangkaian kendali terus membandingkan sudut yang diminta dengan sudut yang dibaca potensiometer, lalu memutar motor sampai selisihnya nol. Berkat loop tertutup ini, servo tetap menahan posisinya meski sedang menanggung beban.

Sudut dikirim ke servo sebagai sinyal PWM: sebuah pulsa datang setiap 20 ms (50 Hz) dan lebar pulsanya menentukan sudut. Sekitar 1 ms berarti 0°, 1,5 ms berarti 90°, dan 2 ms berarti 180°. Sebagian besar servo menerima rentang 0,5–2,5 ms; nilai pastinya sedikit berbeda antarmodel.

Kabel servo dan pengkabelannya

Warna kabelFungsiTempat sambungannya di Arduino
Cokelat / hitamGND (ground)GND
MerahDaya (+4,8–6 V)5V atau catu daya eksternal 5–6 V
Oranye / kuning / putihSinyal (PWM)Pin digital mana saja (mis. 9)
Jangan memberi daya ke beberapa servo, atau ke servo kuat seperti MG996R, dari pin 5V Arduino. Servo yang sedang terbebani bisa menarik arus lebih dari 1 A; board akan reset dan port USB bisa rusak. Pakai catu daya eksternal 5–6 V dan selalu hubungkan GND-nya ke GND Arduino.

Servo mana yang sebaiknya kupilih?

FS90R
ModelTorsi (kira-kira)GirCocok untuk
SG901,8 kg·cmPlastikPekerjaan ringan, percobaan pertama, pan-tilt
MG90S2,2 kg·cmLogamUkurannya sama dengan SG90, lebih awet
MG996R9–11 kg·cmLogamLengan robot, tutup dan mekanisme yang berat
FS90R1,5 kg·cmPlastikPutaran kontinu: robot beroda kecil
Servo putaran kontinu seperti FS90R tidak bergerak ke sudut tertentu; sinyalnya menentukan kecepatan dan arah (90 berhenti, 0 kecepatan penuh ke satu arah, 180 kecepatan penuh ke arah sebaliknya). Kalau kamu butuh kendali posisi, pilih servo standar.

Mengendalikan servo dengan Arduino: mengatur sudut dengan potensiometer

Potensiometer
Potensiometer
Arduino Uno
Arduino Uno
  1. Hubungkan kabel cokelat servo ke GND dan kabel merahnya ke 5V (untuk satu SG90).
  2. Hubungkan kabel sinyal oranye ke pin digital 9.
  3. Hubungkan kaki luar potensiometer ke 5V dan GND, lalu kaki tengahnya ke A0.
  4. Upload kode di bawah; servo akan berputar antara 0 dan 180° ketika kamu memutar potensiometer.
C++ (Arduino IDE)
1#include <Servo.h>
2
3Servo servo;                       // servo nesnesi / servo object
4const int POT_PIN = A0;            // potansiyometre / potentiometer
5
6void setup() {
7  servo.attach(9);                 // sinyal 9. pinde / signal on pin 9
8}
9
10void loop() {
11  int value = analogRead(POT_PIN);         // 0–1023 oku / read 0–1023
12  int angle = map(value, 0, 1023, 0, 180); // açıya çevir / convert to angle
13  servo.write(angle);                      // servoyu döndür / move the servo
14  delay(15);                               // servo yetişsin / let the servo settle
15}

servo.write(angle) menerima sudut dari 0 sampai 180. Untuk kendali yang lebih halus, pakai servo.writeMicroseconds(1500) untuk mengatur lebar pulsa langsung dalam mikrodetik. Kamu bisa melihat pin mana di board-mu yang PWM dan digital di alat pinout.

Servo dengan ESP32 dan Raspberry Pi Pico

  • ESP32: library Servo standar tidak berfungsi; instal library ESP32Servo di Arduino IDE. Cara pakainya sama. Sinyal 3,3 V sudah cukup untuk sebagian besar servo.
  • Raspberry Pi Pico (MicroPython): atur PWM ke 50 Hz dan berikan lebar pulsa dengan duty_ns(): 1.000.000 ns ≈ 0°, 1.500.000 ns ≈ 90°, 2.000.000 ns ≈ 180°.
  • Di kedua board, jangan memberi daya servo dari pin 3,3 V board; pakai jalur 5 V atau catu daya eksternal.

Kesalahan servo yang paling umum

  • Bergetar dan bergerak acak: biasanya karena dayanya kurang. Pakai catu daya eksternal dan pasang kapasitor 470–1000 µF di jalur daya servo.
  • Lupa GND bersama: servo yang diberi daya dari catu daya eksternal tidak bisa memahami sinyal kalau ground-nya tidak disatukan.
  • Memaksa servo sampai batasnya: servo yang menekan batas mekanisnya akan berdengung dan memanas. Kalau perlu, batasi rentangnya ke 10–170°.
  • Mengharapkan PWM di pin 9 dan 10: di Uno, library Servo memakai Timer1, jadi analogWrite tidak berfungsi di pin ini selama servo terpasang.
  • Mengharapkan sudut dari servo putaran kontinu: model seperti FS90R tidak tahu posisinya; hanya kecepatan dan arahnya yang bisa dikendalikan.

Untuk melihat apa saja yang bisa kamu buat dengan servo, cek proyek robot dan motor di BlueGrays. Kalau kamu baru mengenal Arduino, baca dulu Apa Itu Arduino?, lalu Apa Itu Breadboard? untuk merakit rangkaiannya di papan.

Pertanyaan umum

Motor servo berputar berapa derajat?

Servo standar berputar sekitar 180°; beberapa model 90° atau 270°. Servo putaran kontinu berputar tanpa batas, tapi tidak menahan sudut.

Bolehkah aku memberi daya servo dari pin 5V Arduino?

Kamu bisa memberi daya satu SG90 dengan beban ringan untuk uji coba. Untuk beberapa servo, model kuat seperti MG996R, atau proyek yang menanggung beban, pakai catu daya eksternal 5–6 V dan satukan ground-nya.

Berapa banyak servo yang bisa dikendalikan satu Arduino?

Library Servo mendukung hingga 12 servo di Arduino Uno dan 48 di Mega. Untuk banyak servo, board driver I2C 16 kanal seperti PCA9685 lebih praktis.

Kenapa servo-ku bergetar?

Penyebab paling umum adalah daya yang kurang, tidak ada ground bersama, dan kabel sinyal yang panjang. Pakai catu daya yang kuat, tambahkan kapasitor di jalur daya servo, dan buat kabelnya pendek.

Apa bedanya motor servo dan motor stepper?

Servo memakai umpan balik untuk bergerak ke sudut tertentu dan diam di sana, dan biasanya terbatas sampai 180°. Motor stepper berputar langkah demi langkah tanpa batas; ia butuh board driver untuk penempatan posisi yang presisi dan tidak mengukur posisinya sendiri.

Lihat semua proyek
Menggunakan Motor Servo
#35Pemula
Premium

Menggunakan Motor Servo

Lengan motor servo kecil berputar ke tiga posisi bergantian: penuh ke awal, tepat ke tengah, dan penuh ke akhir, menunggu dua detik di setiap perhentian. Arduino memberi tahu motor sudut mana yang har

4.7(48)
67
Menggerakkan Motor Servo dengan Potensiometer
#36Pemula
Premium

Menggerakkan Motor Servo dengan Potensiometer

Ketika kamu memutar kenop potensiometer, lengan motor servo ikut berputar: satu ujung kenop berarti nol derajat, ujung lainnya berarti setengah putaran. Arduino terus membaca posisi kenop dan servo la

4.6(37)
52
Kendali Servo dengan Joystick
#60Menengah
Premium

Kendali Servo dengan Joystick

Arahkan dua motor dengan joystick, persis seperti memutar kamera keamanan. Dorong tuas ke kiri atau kanan dan servo bawah berputar perlahan, dorong ke atas atau bawah dan servo atas mendongak dan menu

4.7(42)
58
Servo 360 Derajat dari Motor Stepper
#68Menengah
Premium

Servo 360 Derajat dari Motor Stepper

Ajari motor stepper biasa untuk pergi ke sudut mana pun yang kamu mau, satu lingkaran penuh. Arduino menghitung berapa langkah yang dibutuhkan setiap sudut; motor bergerak ke 0, 90, 45, 180, 135, dan

4.5(22)
32
Motor Servo ESP32 (Kendali Potensiometer)
#118Menengah
Premium

Motor Servo ESP32 (Kendali Potensiometer)

Di proyek ini, kita mengendalikan motor servo SG90 memakai potensiometer. Kita mengatur sudut servo dengan memetakan nilai analog yang dibaca dari potensiometer ke rentang 0–180 derajat. Library ESP32Servo menghasilkan sinyal servo di pin GPIO ESP32 yang sesuai dan bisa menjadi output; proyek ini memakai GPIO 18. Ini metode kendali dasar untuk lengan robot, gimbal kamera, dan mekanisme pintu otomatis.

4.3(29)
42
Kunci Pintu RFID ESP32 (RC522 + Servo + OLED + Buzzer + LED)
#137Mahir
Premium

Kunci Pintu RFID ESP32 (RC522 + Servo + OLED + Buzzer + LED)

Kita membuat kunci pintu pintar dengan ESP32, modul RFID RC522, motor servo SG90, layar OLED SSD1306, buzzer aktif, dan 2 LED. Ketika sebuah kartu dipindai, UID-nya dibandingkan dengan daftar kartu resmi yang disimpan di kode; jika resmi, motor servo berputar untuk membuka kunci (LED hijau + 2 bunyi bip pendek), dan pintu otomatis terkunci lagi setelah 5 detik. Untuk kartu tidak resmi, LED merah menyala, peringatan diberikan dengan 3 bunyi bip cepat, dan UID yang terbaca ditampilkan di layar.

4.8(9)
15
Koreografi Lingkaran Servo - Pola Animasi dengan 32 Servo
#102Mahir
Premium

Koreografi Lingkaran Servo - Pola Animasi dengan 32 Servo

Proyek animasi visual dengan 32 motor servo yang disusun melingkar di Arduino Mega. Servo-servo dikelola dalam satu array, tersambung ke pin 22-53 Mega, dan menampilkan empat urutan gerak: getaran kacau ketika semua servo bergerak ke sudut acak, sapuan serempak ketika semuanya bergerak bersamaan, gelombang yang berputar halus mengelilingi lingkaran, dan terakhir jarum kompas yang berayun ke kiri dan kanan.

4.5(40)
62