Cara Menggunakan Servo Di ESP32

Cara Menggunakan Servo Di ESP32

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, bernama servo.
  • 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 (misalnya posisi_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 objek servo 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:
    1. Pindahkan servo ke 0ยฐ,
    2. Cetak pesan "servo 0 derajat" ke Serial Monitor,
    3. Tunggu 1 detik,
    4. Pindahkan servo ke 90ยฐ,
    5. Cetak pesan "servo 90 derajat",
    6. Tunggu lagi 1 detik,
    7. 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 :