#include <ESP32Servo.h>
Servo myservo; // create servo object to control a servo
int angle =90; // initial angle for servo
int angleStep =5;
#define Led1 14
#define Led2 32
#define LEFT 25 // pin 12 is connected to left button
#define RIGHT 26 // pin 2 is connected to right button
void setup() {
// Servo button demo by Robojax.com
myservo.attach(18); // attaches the servo on pin 9 to the servo object
pinMode(LEFT,INPUT_PULLUP); // assign pin 12 ass input for Left button
pinMode(RIGHT,INPUT_PULLUP);// assing pin 2 as input for right button
myservo.write(angle);// send servo to the middle at 90 degrees
pinMode(14,OUTPUT);
pinMode(32,OUTPUT);
}
void loop() {
delay(100);
// Servo button demo by Robojax.com
while(digitalRead(RIGHT) == LOW){
if (angle > 0 && angle <= 180) {
angle = angle - angleStep;
if(angle < 0){
angle = 0;
}else{
myservo.write(angle); // move the servo to desired angle
}
}
if(angle == 180){
digitalWrite(Led1, HIGH);
digitalWrite(Led2, LOW);
}else if(angle == 0){
digitalWrite(Led1, LOW);
digitalWrite(Led2,HIGH);
}else{
digitalWrite(Led1, LOW);
digitalWrite(Led2,LOW);
}
delay(100); // waits for the servo to get there
}// while
// Servo button demo by Robojax.com
while(digitalRead(LEFT) == LOW){
// Servo button demo by Robojax.com
if (angle >= 0 && angle <= 180) {
angle = angle + angleStep;
if(angle >180){
angle =180;
}else{
myservo.write(angle); // move the servo to desired angle
}
}
if(angle == 180){
digitalWrite(Led1, HIGH);
digitalWrite(Led2, LOW);
}else if(angle == 0){
digitalWrite(Led1, LOW);
digitalWrite(Led2,HIGH);
}else{
digitalWrite(Led1, LOW);
digitalWrite(Led2,LOW);
}
delay(100); // waits for the servo to get there
}//
if(angle == 180){
digitalWrite(Led1, HIGH);
digitalWrite(Led2, LOW);
}else if(angle == 0){
digitalWrite(Led1, LOW);
digitalWrite(Led2,HIGH);
}else{
digitalWrite(Led1, LOW);
digitalWrite(Led2,LOW);
}
}