#include <ESP32Servo.h> // Library untuk mengontrol servo pada ESP32
// Membuat objek servo
Servo servoSatu;
Servo servoDua;
void setup() {
// Menghubungkan servo ke pin GPIO pada ESP32
// Parameter kedua dan ketiga adalah rentang durasi pulsa (500 - 2400 mikrodetik)
servoSatu.attach(33, 500, 2400);
servoDua.attach(32, 500, 2400);
// Inisialisasi komunikasi serial untuk debugging
Serial.begin(9600);
Serial.println("Setup selesai, program mulai...");
}
void loop() {
// Menggerakkan kedua servo ke sudut 0 derajat
Serial.println("Menggerakkan servo ke 0 derajat...");
servoSatu.write(0);
servoDua.write(0);
delay(500); // Menunggu selama 500 ms
// Menggerakkan kedua servo ke sudut 90 derajat
Serial.println("Menggerakkan servo ke 90 derajat...");
servoSatu.write(90);
servoDua.write(90);
delay(500); // Menunggu selama 500 ms
// Menggerakkan kedua servo ke sudut 180 derajat
Serial.println("Menggerakkan servo ke 180 derajat...");
servoSatu.write(180);
servoDua.write(180);
delay(500); // Menunggu selama 500 ms
}
/*
Penjelasan Program:
1. Library ESP32Servo:
- Library ini memungkinkan ESP32 untuk mengontrol servo motor menggunakan sinyal PWM.
2. Objek `servoSatu` dan `servoDua`:
- Digunakan untuk mengontrol masing-masing motor servo.
3. Fungsi `attach`:
- Menghubungkan servo ke pin GPIO tertentu. Rentang durasi pulsa menentukan sudut minimum (0°) dan maksimum (180°).
4. Fungsi `write`:
- Mengontrol posisi servo berdasarkan sudut tertentu (dalam derajat).
5. Fungsi `delay`:
- Memberikan jeda waktu untuk memungkinkan servo mencapai posisi yang diinginkan.
6. Fungsi `Serial.println`:
- Digunakan untuk mencetak pesan ke serial monitor untuk tujuan debugging.
Saran Pengembangan:
1. **Gerakan Bertahap:**
- Tambahkan pergerakan bertahap dengan loop, misalnya dari 0° ke 180° secara perlahan.
```cpp
for (int angle = 0; angle <= 180; angle++) {
servoSatu.write(angle);
servoDua.write(angle);
delay(10); // Jeda kecil untuk gerakan halus
}
```
2. **Pola Gerakan:**
- Buat pola gerakan yang kompleks seperti gerakan sinusoidal atau pola tertentu yang berguna untuk aplikasi spesifik.
3. **Optimasi Catu Daya:**
- Pastikan servo diberi daya dari sumber eksternal dengan kapasitas cukup untuk mencegah kelebihan beban pada ESP32.
4. **Interaksi Input:**
- Tambahkan input (seperti potensiometer atau sensor) untuk mengontrol sudut servo secara dinamis.
5. **Debugging dan Monitoring:**
- Cetak sudut servo dan status pada serial monitor untuk memastikan semuanya berjalan sesuai rencana.
*/