Wiring Robot Arm dengan Arduino Nano: Kalibrasi Servo dan Pemrograman Dasar
31 Juli 2026 · Kodea Robotics Learning Series · Pertemuan 02
Persiapan Elektronik & Kalibrasi
Wiring · Setup Arduino IDE · Kalibrasi Servo · Program Dasar
Selamat datang di Pertemuan 02. Pada pertemuan ini, kita akan mempersiapkan seluruh sistem elektronik Robot Arm:
- Wiring dengan Arduino Nano dan Nano Expansion Shield
- Mengunggah program kalibrasi
- Melakukan pengujian awal pada semua motor servo
Tahap ini sering dianggap sederhana, namun memegang peranan penting — kesalahan kecil dalam wiring atau kalibrasi dapat menyebabkan posisi yang tidak presisi, pergerakan servo yang tidak sinkron, dan mempersulit proses perakitan nantinya.
Tujuan Pembelajaran (7 Tujuan)
- Memahami Arduino Nano sebagai kontroler utama
- Mengetahui Nano Expansion Shield & manfaatnya
- Melakukan wiring sesuai diagram
- Mengkonfigurasi Arduino IDE sebelum upload
- Mengunggah program kalibrasi ke Arduino Nano
- Melakukan uji coba awal pada semua servo
- Memastikan Robot Arm siap untuk perakitan
Hardware & Software yang Diperlukan
Hardware
- Arduino Nano
- Nano Expansion Shield
- Motor Servo SG90 (×4)
- Kabel USB
- Power Supply 5V
- Kit Robot Arm
- Laptop / Komputer
Software
- Arduino IDE 2.x
- Driver USB (CH340 untuk clone)
Setup Arduino IDE (3 Langkah)
1. Pilih Board — Tools → Board → Arduino AVR Boards → Arduino Nano
2. Pilih Processor — Tools → Processor — pilih ATmega328P (atau Old Bootloader jika upload gagal)
3. Pilih Port — Tools → Port — pilih port COM yang muncul setelah menghubungkan Nano.
Wiring Robot Arm (Expansion Shield)
Menggunakan Nano Expansion Shield memudahkan koneksi: setiap pin digital menyediakan Signal (S), 5V (V), dan Ground (G).
Ikuti diagram wiring di bawah ini. Semua konfigurasi pin sesuai dengan kode sumber yang disediakan.
Periksa:
- Nano terpasang dengan benar
- Konektor servo terorientasi (S · V · G)
- Tidak ada kabel longgar
Kalibrasi & Upload: Mengapa & Bagaimana
Mengapa Kalibrasi?
Setiap servo mungkin memiliki posisi awal yang berbeda. Kalibrasi menetapkan posisi home yang sama sebelum perakitan, memastikan pergerakan yang presisi.
Cara Upload Program Kalibrasi
- Buka
Kalibrasi Robot Arm.ino - Verifikasi Board, Processor, Port
- Klik Verify → Upload
- Tunggu hingga selesai — servo akan bergerak ke posisi kalibrasi.
Uji Coba Servo Awal
Setelah upload, periksa bahwa:
- Semua servo bergerak halus
- Tidak ada suara berdengung
- Berhenti di posisi yang sama
- Bergerak serempak
Program Dasar (Dasar Robot Arm.ino)
#include <Servo.h>
Servo base;
Servo shoulder;
Servo elbow;
Servo gripper;
void setup() {
base.attach(9);
shoulder.attach(10);
elbow.attach(11);
gripper.attach(12);
}
void loop() {
gripper.write(5);
elbow.write(90);
shoulder.write(90);
base.write(90);
}
Kode Sumber: Kalibrasi + Dasar
Di bawah ini adalah dua program yang digunakan dalam pertemuan ini. Anda dapat menyalinnya langsung.
Program Kalibrasi (Kalibrasi Robot Arm.ino)
#include <Servo.h>
Servo base;
Servo shoulder;
Servo elbow;
Servo gripper;
void setup() {
base.attach(9);
shoulder.attach(10);
elbow.attach(11);
gripper.attach(12);
}
void loop() {
// Sapuan elbow 0-60
for (int angle = 0; angle <= 60; angle++) {
elbow.write(angle); delay(15);
}
for (int angle = 60; angle >= 0; angle--) {
elbow.write(angle); delay(15);
}
// Sapuan shoulder 50-140
for (int angle = 50; angle <= 140; angle++) {
shoulder.write(angle); delay(15);
}
gripper.write(0); delay(400);
gripper.write(80); delay(400);
gripper.write(0); delay(400);
gripper.write(80); delay(400);
gripper.write(0); delay(400);
gripper.write(80); delay(400);
for (int angle = 140; angle >= 50; angle--) {
shoulder.write(angle); delay(15);
}
base.write(0); delay(1000);
base.write(90); delay(1000);
}
Pemecahan Masalah
Berikut adalah panduan troubleshooting jika mengalami kendala saat wiring, upload, atau pengujian servo:
❌ Nano tidak terdeteksi
- Kabel USB hanya untuk charging (bukan data) → Ganti dengan kabel USB yang mendukung transfer data
- Driver CH340 belum terinstall → Install driver CH340 (khusus untuk Arduino Nano clone)
- Port COM salah → Cek di Device Manager (Windows) atau
ls /dev/tty*(Linux/Mac) - USB port bermasalah → Coba colok ke port USB lain
- Nano rusak / mati → Coba ganti Nano atau cek dengan multimeter
❌ Upload gagal
- Board salah pilih → Pastikan pilih
Arduino Nanodi Tools → Board - Processor salah → Coba ganti Processor ke
ATmega328P (Old Bootloader) - Port salah → Pilih port yang benar (COMx / ttyUSBx / tty.usbserial)
- Kabel USB longgar → Colok ulang kabel USB
- IDE bermasalah → Restart Arduino IDE atau coba versi 1.8.x
- Sketch terlalu besar → Optimasi kode atau kurangi library yang tidak perlu
❌ Servo tidak bergerak
- Wiring terbalik (Signal, VCC, GND) → Pastikan urutan: S (Signal) · V (5V) · G (Ground)
- Shield tidak terpasang benar → Tekan shield sampai benar-benar masuk ke pin Nano
- Pin tidak sesuai kode → Cocokkan pin di
attach(pin)dengan wiring yang digunakan - Power supply kurang → Gunakan adaptor 5V eksternal, jangan hanya dari USB
- Servo rusak → Coba servo lain atau uji servo dengan kode sederhana
❌ Servo tidak stabil / bergetar
- Terbebani / terpasang ke rangka → Lepas servo dari rangka saat kalibrasi
- Power supply tidak cukup → Pastikan adaptor 5V dengan arus minimal 2A
- Kabel longgar → Periksa semua koneksi jumper
- Signal noise → Jauhkan kabel signal dari kabel power
- Servo sudah aus → Ganti servo baru jika perlu
❌ Upload berhasil tapi servo diam
- Program tidak ada di
loop()→ Cek apakah adadelay()yang terlalu panjang - Pin attach salah → Pastikan
servo.attach(pin)sesuai dengan pin yang dipakai - Servo belum di-
write→ Tambahkanservo.write(sudut)disetup()atauloop() - Power tidak tersambung → Periksa apakah servo mendapat 5V dari shield
❌ Kode error / compile gagal
- Library Servo tidak ada → Install library Servo (biasanya sudah bawaan Arduino)
- Syntax error → Periksa titik koma (
;), kurung kurawal ({}), dan tanda kutip - Nama variabel typo → Pastikan nama servo sesuai di semua bagian kode
⚠️ Tips Umum
- Lakukan kalibrasi sebelum servo dipasang ke rangka mekanik
- Gunakan power supply eksternal untuk menghindari drop tegangan
- Jangan menarik atau menahan servo secara paksa saat bergerak
- Jika ragu, mulai ulang dari wiring paling dasar (1 servo dulu)
Masih bermasalah? Jangan ragu untuk bertanya di forum atau grup diskusi!
