#include <ESP32Servo.h>
Servo testServo;
const int servoPin = 18; // Menggunakan GPIO 18 seperti proyek Anda yang berhasil
int posBuka = 0;
int posTutup = 90;
void setup() {
Serial.begin(115200);
delay(1000); // Tunggu serial siap
Serial.println("Memulai tes servo pada GPIO " + String(servoPin) + "...");
// Alokasi timer (penting untuk ESP32Servo)
ESP32PWM::allocateTimer(0);
ESP32PWM::allocateTimer(1);
ESP32PWM::allocateTimer(2);
ESP32PWM::allocateTimer(3);
testServo.setPeriodHertz(50); // Frekuensi standar servo
// Coba attach servo dengan min/max pulse width standar
if (testServo.attach(servoPin, 500, 2400)) {
Serial.println("Servo BERHASIL di-attach pada GPIO " + String(servoPin) + "!");
Serial.println("Menggerakkan servo ke posisi BUKA (" + String(posBuka) + " derajat)...");
testServo.write(posBuka);
delay(1500); // Jeda agar gerakan terlihat
Serial.println("Menggerakkan servo ke posisi TUTUP (" + String(posTutup) + " derajat)...");
testServo.write(posTutup);
delay(1500); // Jeda agar gerakan terlihat
Serial.println("Menggerakkan servo kembali ke posisi BUKA (" + String(posBuka) + " derajat)...");
testServo.write(posBuka);
delay(1500); // Jeda
Serial.println("Tes servo selesai.");
} else {
Serial.println("ERROR: Servo GAGAL di-attach pada GPIO " + String(servoPin) + "!");
}
}
void loop() {
// Tidak ada yang perlu dilakukan di loop untuk tes sederhana ini
delay(1000);
}