Servo (atau servo motor) adalah motor kecil yang bisa berputar ke posisi tertentu dengan presisi, biasanya digunakan untuk menggerakkan sesuatu ke sudut tertentu seperti:
- Pintu otomatis
- Lengan robot
- Kamera
- Kendali kemudi robot
berikut ini adalah cara memprogram servo di esp32 dengan mudah:
untuk code bisa gunakan kode dibawah ini :
#include <Arduino.h>
#include <Servo.h>
Servo servo;
int port_servo = 9;
void posisi_servo(int posisi)
{
servo.write(posisi);
}
void setup()
{
Serial.begin(9600);
servo.attach(port_servo);
posisi_servo(0);
}
void loop(){
posisi_servo(0);
Serial.println("servo 0 derajat");
delay(1000);
posisi_servo(90);
Serial.println("servo 90 derajat");
delay(1000);
}
๐ 1. Import Library & Deklarasi
#include <Arduino.h>
#include <Servo.h>
#include <Arduino.h>
: Digunakan agar kode Arduino bisa dikenali compiler, biasanya otomatis diimpor.#include <Servo.h>
: Memasukkan library Servo, untuk mengontrol servo motor menggunakan sinyal PWM.
โ๏ธ 2. Objek dan Variabel Servo
Servo servo;
int port_servo = 9;
- Membuat objek servo dari class
Servo
, bernamaservo
. port_servo = 9
: Menentukan pin PWM digital 9 sebagai tempat servo terhubung.
๐ฏ 3. Fungsi posisi_servo(int posisi)
void posisi_servo(int posisi)
{
servo.write(posisi);
}
- Fungsi ini menerima parameter sudut (derajat) dari 0โ180, lalu mengatur servo ke posisi tersebut.
Fungsi ini sebenarnya hanya membungkus
servo.write(posisi)
agar kamu bisa panggilnya dengan nama yang lebih deskriptif (misalnyaposisi_servo(90)
).
๐ ๏ธ 4. Fungsi setup()
void setup()
{
Serial.begin(9600);
servo.attach(port_servo);
posisi_servo(0);
}
Serial.begin(9600)
: Mulai komunikasi serial dengan baudrate 9600 (untuk debug).servo.attach(port_servo)
: Menghubungkan objekservo
ke pin 9.posisi_servo(0)
: Saat awal, servo diarahkan ke posisi 0 derajat.
๐ 5. Fungsi loop()
void loop(){
posisi_servo(0);
Serial.println("servo 0 derajat");
delay(1000);
posisi_servo(90);
Serial.println("servo 90 derajat");
delay(1000);
}
- Program akan terus mengulang pergerakan servo seperti berikut:
- Pindahkan servo ke 0ยฐ,
- Cetak pesan
"servo 0 derajat"
ke Serial Monitor, - Tunggu 1 detik,
- Pindahkan servo ke 90ยฐ,
- Cetak pesan
"servo 90 derajat"
, - Tunggu lagi 1 detik,
- Kembali ke awal.
โ๏ธ Gambaran Gerakan
Servo akan bergerak bolak-balik antara 0ยฐ dan 90ยฐ setiap 1 detik, dan statusnya akan tampil di Serial Monitor.
๐ Catatan Tambahan
- Servo hanya bisa bergerak dalam rentang 0โ180 derajat.
- Pastikan daya servo cukup, terutama jika menggunakan servo besar. Sebaiknya jangan ambil daya dari pin 5V Arduino langsung, tapi pakai sumber eksternal (dengan ground yang disambung ke Arduino).
๐งช Contoh Aplikasi:
- Menggerakkan pintu otomatis,
- Mengontrol sudut kamera,
- Membuat robot servo bergerak.
untuk diskusi bisa kontak dibawah ini :

Sosial media :