// ESP32 ESP32S2 AnalogWrite Libray
#include <Servo.h>
#define switchPin1 2
#define switchPin2 42
const int servoPin1 = 14;
const int servoPin2 = 1;
Servo self_rotation_servo = Servo();
Servo btn_control_rotation_servo = Servo();
int pos = 0;
void selfRotation();
void btnControlRotation();
void setup()
{
Serial.begin(115200);
pinMode(switchPin1, INPUT_PULLUP);
pinMode(switchPin2, INPUT_PULLUP);
}
void loop()
{
// selfRotation();
btnControlRotation();
}
/**
* 不用按钮控制自转
*/
void selfRotation()
{
for (int angle = 0; angle <= 180; angle++)
{ // go from 0-180 degrees
self_rotation_servo.write(servoPin1, angle); // set the servo position (degrees)
delay(15);
}
for (int angle = 180; angle >= 0; angle--)
{ // go from 180-0 degrees
self_rotation_servo.write(servoPin1, angle); // set the servo position (degrees)
delay(15);
}
}
/**
* 按钮控制旋转
*/
void btnControlRotation()
{
if (digitalRead(switchPin1) == LOW)
{
pos += 10;
if (pos > 180)
{
pos = 180;
}
btn_control_rotation_servo.write(servoPin2, pos);
delay(100);
}
if (digitalRead(switchPin2) == LOW)
{
pos -= 10;
if (pos < 0)
{
pos = 0;
}
btn_control_rotation_servo.write(servoPin2, pos);
delay(100);
}
Serial.println(pos);
}