#define LED_PIN 2
#define SWITCH_PIN 19
int lastSwitchState = HIGH; // 풀업 저항이 연결된 스위치의 초기 상태
bool ledState = false; // LED의 초기 상태 (꺼진 상태)
void setup() {
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW); // LED는 OFF 된 상태로 시작
pinMode(SWITCH_PIN, INPUT_PULLUP);
Serial.begin(115200);
}
void loop() {
int currentSwitchState = digitalRead(SWITCH_PIN);
// 스위치 상태가 바뀌었는지 확인 (HIGH -> LOW)
if (lastSwitchState == HIGH && currentSwitchState == LOW) {
ledState = !ledState; // LED 상태 토글
digitalWrite(LED_PIN, ledState ? HIGH : LOW); // LED 상태 업데이트
// 시리얼 모니터에 스위치 상태 출력
if (ledState) {
Serial.println("스위치 ON, LED ON");
} else {
Serial.println("스위치 OFF, LED OFF");
}
}
lastSwitchState = currentSwitchState; // 스위치 상태 업데이트
delay(50); // 디바운싱을 위한 딜레이
}