#include <Servo.h>
#include <ezButton.h>
Servo myservo;
const int neutralAngle = 90;
const int forwardAngle = 75;
const int reverseAngle = 105;
const int btnStartPin = 13;
const int btnStopPin = 12;
ezButton btnStart(btnStartPin);
ezButton btnStop(btnStopPin);
void setup()
{
myservo.attach(9);
myservo.write(neutralAngle);
delay(100);
btnStart.setDebounceTime(50);
btnStop.setDebounceTime(50);
}
void loop()
{
btnStart.loop();
btnStop.loop();
if (btnStart.isPressed())
{
myservo.write(forwardAngle);
// 서보 모터가 지정된 각도로 이동한 후 경과된 시간을 측정합니다.
long startTime = millis();
// 서보 모터가 지정된 각도로 이동할 때까지 기다립니다.
while (myservo.read() != forwardAngle)
{
// do nothing
}
// 2초가 경과했는지 확인합니다.
if (millis() - startTime >= 2000)
{
myservo.write(reverseAngle);
}
}
if (btnStop.isPressed())
{
myservo.write(neutralAngle);
}
}