#include <Servo.h>
Servo myServo;
const int servoPin = 9;
const int buttonPin = 2;
int currentAngle = 0;
bool lastButtonState = HIGH;
bool toggledState = false;
void setup() {
myServo.attach(servoPin);
pinMode(buttonPin, INPUT_PULLUP); // 使用內建上拉電阻
Serial.begin(9600);
myServo.write(0); // 初始角度
Serial.println("0 角度: 0");
}
void loop() {
bool currentButtonState = digitalRead(buttonPin);
// 檢測按鈕從 HIGH → LOW 的邊緣(剛按下)
if (lastButtonState == HIGH && currentButtonState == LOW) {
toggledState = !toggledState;
if (toggledState) {
currentAngle = 90;
myServo.write(currentAngle);
Serial.print("1 角度: ");
Serial.println(currentAngle);
} else {
currentAngle = 0;
myServo.write(currentAngle);
Serial.print("0 角度: ");
Serial.println(currentAngle);
}
delay(300); // 防彈跳+避免連續觸發
}
lastButtonState = currentButtonState;
}