#include <ESP32Servo.h>
Servo myservo;
int pos = 0;
int servoPin = 12;
int greenLed = 14;
int redLed = 27;
int buttonPin = 13;
bool run = true;
void setup() {
ESP32PWM::allocateTimer(0);
ESP32PWM::allocateTimer(1);
ESP32PWM::allocateTimer(2);
ESP32PWM::allocateTimer(3);
myservo.setPeriodHertz(50);
myservo.attach(servoPin, 700, 2000);
pinMode(greenLed, OUTPUT);
pinMode(redLed, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
int val = digitalRead(buttonPin);
if(!val) {
run = true;
digitalWrite(redLed, LOW);
myservo.write(0);
} else {
run = false;
myservo.write(180);
digitalWrite(greenLed, LOW);
digitalWrite(redLed, HIGH);
}
if(run) {
myservo.write(0);
digitalWrite(greenLed, HIGH);
delay(250);
digitalWrite(greenLed, LOW);
delay(250);
digitalWrite(greenLed, HIGH);
delay(250);
digitalWrite(greenLed, LOW);
delay(250);
myservo.write(180);
digitalWrite(greenLed, HIGH);
delay(250);
digitalWrite(greenLed, LOW);
delay(250);
digitalWrite(greenLed, HIGH);
delay(250);
digitalWrite(greenLed, LOW);
delay(250);
}
}