← Semua artikel
Tips & Trik09 Nov 2026ariel8 menit baca

Servo SG90 Arduino: Wiring dan Web Controller

Hubungkan servo SG90 ke Arduino Uno, uji kabel dan port USB, lalu rancang kontrol servo lewat browser menggunakan Python dan Codex CLI.
Dashboard web SG90 Servo Tester menampilkan diagram wiring Arduino dan status koneksi

Ingin menggerakkan servo SG90 menggunakan Arduino Uno, lalu mengontrolnya lewat browser? Tutorial ini membahas proses lengkap dari pemasangan kabel, pengujian sketch, identifikasi port USB, sampai rancangan aplikasi web berbasis Python dan Codex CLI. Cocok untuk eksperimen robotika, mekanisme wiper mini, maupun prototipe otomasi.

Ringkasan praktik: kabel cokelat → GND, merah → 5V, oranye/kuning → D9. Gunakan catu daya 5V terpisah untuk servo berbeban, dengan ground yang disatukan.
Arduino Uno kompatibel dan servo SG90 sebelum konektor dipasang
Dokumentasi perangkat asli: Arduino Uno kompatibel dan servo SG90. Pada foto, konektor tiga kabel servo belum terhubung ke header Arduino. Foto ini merupakan kondisi persiapan, bukan bukti servo sudah bergerak.

1. Peralatan yang dibutuhkan

  • Arduino Uno R3 atau board kompatibel ATmega328P.
  • Micro servo SG90 (umumnya 180° nominal).
  • Kabel USB data sesuai konektor board (sering kali USB Type-B pada Uno standar; beberapa clone memakai jenis lain).
  • Tiga kabel jumper male-to-male untuk konektor servo female ke header Arduino female.
  • Laptop Windows atau Linux, Arduino IDE atau Arduino CLI, Python 3, dan Codex CLI untuk pengembangan aplikasi.
  • Opsional: catu daya 5V eksternal dengan arus memadai untuk servo berbeban.

2. Diagram wiring servo SG90 ke Arduino Uno

ARDUINO UNODIGITAL: D9POWER: 5VPOWER: GNDSG90Sinyal (oranye)5V (merah)GND (cokelat)
Diagram skematis hubungan tiga kabel SG90 dan Arduino Uno. Posisi fisik pin pada board harus dicek berdasarkan tulisan D9, 5V, dan GND.
Warna kabel SG90Pin ArduinoFungsi
Oranye / kuningD9Sinyal kendali servo
Merah5VCatu daya
Cokelat / hitamGNDGround

Perhatian: matikan atau cabut USB sebelum mengubah wiring. Jangan tertukar pin 5V dengan VIN. Jika memakai sumber 5V eksternal untuk servo, sambungkan positif adaptor ke kabel merah servo, negatif adaptor ke kabel cokelat servo, dan satukan ground adaptor dengan GND Arduino. Jangan menghubungkan positif adaptor ke pin 5V Arduino yang sedang diberi daya USB tanpa rancangan power-sharing yang benar.

3. Uji servo menggunakan Arduino IDE terlebih dahulu

Sebelum membangun dashboard, pastikan wiring dan servo bekerja. Instal Arduino IDE dari halaman resmi Arduino Software. Pilih board Arduino Uno dan port yang sesuai di menu Tools, lalu unggah sketch berikut. Library Servo.h tersedia melalui Arduino Library Manager jika belum terpasang.

#include <Servo.h>
Servo servo;
const byte SERVO_PIN = 9;
void setup() {
  servo.attach(SERVO_PIN);
  servo.write(90);
}
void loop() {
  servo.write(60);
  delay(1000);
  servo.write(90);
  delay(1000);
  servo.write(120);
  delay(1000);
  servo.write(90);
  delay(1000);
}

Jika sistem sehat, servo bergerak bergantian ke posisi perintah 60°, 90°, dan 120°. Angka tersebut merupakan perintah sudut, bukan pembacaan posisi aktual karena SG90 standar tidak memiliki umpan balik posisi yang bisa dibaca Arduino.

4. Cara mendeteksi Arduino melalui USB

Windows

Buka Device Manager → Ports (COM & LPT). Sambungkan Arduino dan amati port COM yang baru muncul, misalnya COM3 atau COM5 (nomornya berbeda pada setiap komputer). Jika clone menggunakan chip CH340/CH341, driver yang sesuai mungkin diperlukan. Unduh driver hanya dari sumber resmi produsen chip atau vendor board.

Linux

Gunakan perintah berikut untuk memeriksa perangkat serial dan pesan kernel:

python3 --version
python3 -m pip --version
ls /dev/ttyACM* /dev/ttyUSB* 2>/dev/null
dmesg | tail -n 30

Port Uno asli sering muncul sebagai /dev/ttyACM0, sedangkan clone USB-serial dapat muncul sebagai /dev/ttyUSB0. Ini bukan aturan mutlak. Pada Linux, akses dmesg bisa dibatasi; gunakan sudo dmesg hanya bila diperlukan. Jika ada masalah izin, cek grup pemilik perangkat dan aturan distribusi; jangan memakai chmod 777 sebagai solusi permanen.

Deteksi lintas platform dengan PySerial

Instal paket terlebih dahulu:

python -m pip install pyserial
python -m serial.tools.list_ports -v

Di Linux, jika perintah python tidak tersedia, gunakan python3. Daftar port saja belum membuktikan perangkat itu Arduino; identifikasi juga VID/PID, deskripsi perangkat, serta respons firmware yang diunggah.

5. Mengapa menggunakan Codex CLI untuk web controller?

Codex CLI membantu membuat dan menguji kode proyek lokal. Arsitektur yang disarankan adalah browser → FastAPI → PySerial → USB → Arduino → SG90. Browser tidak mengakses motor secara langsung: backend mengirim perintah serial ke sketch Arduino. Web dapat berjalan lokal pada http://127.0.0.1:8000.

Siapkan Python dari python.org, Arduino CLI dari panduan instalasi Arduino CLI, dan Codex CLI mengikuti dokumentasi resmi Codex CLI. Ikuti prasyarat dan metode autentikasi yang berlaku pada versi masing-masing.

6. Prompt Codex CLI siap pakai

Tempel prompt berikut pada Codex CLI di komputer yang terhubung ke Arduino. Prompt ini meminta pembuatan program sungguhan, bukan hanya mockup.

Bertindak sebagai Senior Embedded Systems Engineer, Python Backend Engineer, dan Web UI Developer.

Bangun proyek lokal Arduino Uno + SG90 Web Servo Tester secara lengkap.

Hardware: Arduino Uno/clone ATmega328P, servo SG90, sinyal di D9, kabel merah 5V, cokelat GND, USB ke komputer.

1. Audit sistem operasi, Python, pip, Arduino CLI, driver dan izin port serial.
2. Gunakan pyserial.tools.list_ports untuk mendeteksi kandidat Arduino, termasuk clone CH340/CH341. Jangan menganggap semua port serial adalah Arduino.
3. Buat sketch Arduino memakai Servo.h dan Serial 115200 baud. Implementasikan PING, SET:<angle>, CENTER, STATUS, balasan OK/ERR, validasi rentang 0–180.
4. Compile untuk arduino:avr:uno bila toolchain tersedia. Minta persetujuan sebelum upload firmware. Tutup koneksi serial sebelum upload, lalu hubungkan kembali.
5. Buat backend FastAPI + PySerial dengan endpoint untuk scan port, connect, disconnect, status, set angle, center, sweep start dan sweep stop.
6. Buat dashboard responsif dark mode: status koneksi nyata, port selector, tombol rescan, slider sudut, preset 0/45/90/135/180, center, sweep start/stop, batas sudut dan panel log.
7. Default pengujian aman 60–120 derajat. Sediakan opsi memperluas batas setelah konfirmasi pengguna.
8. Lindungi akses: bind server ke 127.0.0.1, validasi input, jangan eksekusi shell dari input web, serial timeout, dan locking koneksi.
9. Sweep harus bisa dihentikan cepat tanpa menunggu loop blocking panjang.
10. Buat requirements.txt, README, instruksi setup Windows/Linux, dan skrip run.
11. Jalankan syntax check, pengujian API, dan tes serial nyata bila perangkat tersedia. Jangan mengklaim servo bergerak bila belum diverifikasi.
12. Tampilkan URL lokal untuk membuka web controller.

Langsung implementasikan proyek. Berhenti untuk meminta izin jika perlu memasang driver, mengubah izin sistem, atau mengunggah firmware.

7. Fitur dashboard yang perlu tersedia

Dokumentasi tampilan SG90 Servo Tester

Berikut contoh hasil antarmuka web lokal yang dibuat untuk proyek ini. Screenshot diambil dari browser pada 127.0.0.1:8000; alamat tersebut hanya bisa dibuka pada komputer yang menjalankan server aplikasinya.

Dashboard SG90 Servo Tester dark mode dengan petunjuk wiring dan foto Arduino
Gambar 1. Tampilan utama dashboard dengan panel keselamatan, skema pemasangan kabel, dan foto perangkat asli.
Tampilan deteksi serial USB, tombol compile dan upload firmware, serta slider servo pada SG90 Servo Tester
Gambar 2. Bagian koneksi board dan kontrol servo: pemilihan port, Rescan, Connect, Compile/Upload Firmware, serta kontrol sudut. Pada tangkapan layar ini koneksi masih belum aktif, sehingga tombol tertentu dinonaktifkan.
  • Auto-detect USB: menampilkan port kandidat dan tombol scan ulang.
  • Connect / Disconnect: koneksi serial terverifikasi lewat respons firmware.
  • Slider 0–180°: rentang penuh tersedia dengan peringatan; gunakan 60–120° saat uji pertama.
  • Preset dan Center: memudahkan pemeriksaan arah dan titik tengah.
  • Sweep Test: gerakan bolak-balik dengan kecepatan, interval, dan batas yang dapat diatur.
  • Log: menampilkan perintah, respons, timeout, dan kegagalan upload.

8. Troubleshooting yang paling sering terjadi

Pengaturan batas gerak servo dan log serial error Errno 5 input output pada dashboard Arduino
Gambar 3. Panel Motion Settings dan Serial & Error Log. Tercatat write failed: [Errno 5] Input/output error serta pemutusan koneksi setelah port serial tidak tersedia.
Catatan hasil pengujian: screenshot membuktikan antarmuka web sudah berjalan, tetapi belum membuktikan servo bergerak dengan sukses. Status yang ditampilkan adalah Disconnected dan log menunjukkan kegagalan penulisan serial. Pastikan port tetap tersedia, tutup aplikasi lain yang memakai serial, periksa kabel USB/driver dan daya, lalu ulangi koneksi setelah upload firmware selesai. Jangan menyimpulkan penyebab hanya dari satu pesan error.
GejalaPemeriksaanTindakan
Arduino tidak terdeteksiKabel USB hanya untuk charging, driver, atau portGanti kabel data; periksa Device Manager / lsusb dan port serial
Upload gagalBoard/port salah atau port sedang dipakaiPilih board yang benar dan tutup Serial Monitor atau backend
Servo diamGND, 5V, D9, konektor, dan sketchCabut daya lalu cek ulang wiring dan uji sketch minimal
Servo bergetar / Arduino restartDrop tegangan atau arus servo berlebihGunakan catu daya servo 5V eksternal dengan common ground
Web terbuka tetapi servo tidak bergerakStatus serial dan respons firmwarePeriksa log, baud rate, protokol dan port yang dipilih
Permission denied di LinuxHak akses device serialPeriksa grup akses perangkat dan login ulang setelah perubahan grup yang sah

9. Tips khusus untuk proyek wiper mini

Jika SG90 akan dipakai sebagai penggerak wiper, jangan langsung menguji 0–180° ketika lengan terpasang. Mulailah tanpa beban pada 90°, uji 60° dan 120°, lalu tentukan batas mekanis yang aman. Servo SG90 kecil memiliki torsi terbatas dan tidak cocok untuk beban berlebihan. Jangan memaksa servo menahan ujung mekanis; hal itu bisa membuat motor panas, bergetar, atau merusak gear.

Kesimpulan

Menghubungkan SG90 ke Arduino Uno cukup menggunakan tiga koneksi: D9 untuk sinyal, 5V untuk daya, dan GND untuk ground. Tantangan berikutnya adalah membuat koneksi USB, firmware serial, serta backend web bekerja konsisten. Dengan pengujian bertahap dan prompt Codex CLI di atas, pembaca bisa membangun servo tester lokal yang dapat diperiksa dan dikembangkan untuk kebutuhan prototipe.

Referensi teknis: Arduino Servo Library, Arduino IDE, PySerial List Ports, FastAPI, dan OpenAI Codex CLI.

Catatan editorial: Diagram bersifat konseptual kecuali diberi label sebagai hasil uji. Verifikasi konfigurasi di perangkat lu sendiri sebelum dipakai pada sistem produksi.

END OF NOTE.Jelajahi artikel lain ↗