#include <ESP32Servo.h>
int led1 = 22;
int led2 = 23;
Servo servoMotor; //ini merupakan penamaan dari library Servo
Servo servo1Motor;
int pos = 0; // variabel yang menyimpan posisi servo dimulai dari 0
int pos1 = 0;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
servo1Motor.attach(4);
servoMotor.attach(2); // Deklarasi pin servoMotor
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { //(+) untuk memutar servo searah jarum jam
/*pada for loop ini mengatur posisi awal dan posisi akhir yaitu 0 derajat hingga 180
derajat, dan juga dapat mengatur jarak langkah dari setiap step dengan mengatur nilai
pada pos +=1 disini setiap step akan merubah sudut sebesar 1 drajat*/
servoMotor.write(pos); //memerintah servo untuk menuju posisi yang telah ditentukan sebelumnya
delay(10); /* delay untuk proses servo menuju posisi yang telah ditetapkan, delay ini
yang menentukan seberapa cepat penambahan nilai pada variabel pos sehingga mempengaruhi
kecepatan rotasi servo*/
if(pos > 90 ){ // akan menghidupkan led jika variabel pos memiliki nilai melebihi 90
digitalWrite(led1, HIGH);
}else{
digitalWrite(led1, LOW);// led mati jika dibawah 90
}
}
for (pos1 = 0; pos1 <= 90; pos1 += 1) {
servo1Motor.write(pos1);
delay(10);
if(pos1 > 45 ){
digitalWrite(led2, HIGH);
}else{
digitalWrite(led2, LOW);
}
}
for (pos = 180; pos >= 0; pos -= 1) { //(-) untuk memutar servo berlawanan arah jarum jam
servoMotor.write(pos);
delay(10);
if(pos > 90 ){
digitalWrite(led1, HIGH);
}else{
digitalWrite(led1, LOW);
}
}
for (pos1 = 90; pos1 >= 0; pos1 -= 1) {
servo1Motor.write(pos1);
delay(10);
if(pos1 > 45 ){
digitalWrite(led2, HIGH);
}else{
digitalWrite(led2, LOW);
}
}
}