기기 코딩 21 / 31
버튼으로 LED 켜고 끄기
버튼을 누를 때마다 LED가 켜졌다 꺼졌다 바뀌는 스위치를 만들어요.
- 준비물: 버튼 1개, 빨간 LED 1개, 220Ω 저항 1개, 점퍼선 4개
| 부품 다리 | 아두이노 Uno | ESP32 |
|---|---|---|
| 보드 핀 → 220Ω → LED 긴 다리, 짧은 다리 → GND | 10번 | GPIO 25 |
| 버튼 한쪽 다리 | 2번 | GPIO 14 |
| 버튼 대각선 반대쪽 다리 | GND | GND |
버튼은 브레드보드 가운데 홈에 걸쳐 꽂아요. 다리 4개 중 '대각선'으로 마주 보는 두 다리를 쓰면 방향이 헷갈려도 항상 맞아요.
// 버튼을 누를 때마다 LED 켜기/끄기#ifdef ARDUINO_ARCH_ESP32const int LED = 25, BUTTON = 14;← ESP32 보드면 이쪽 번호를 써요 (보드에 따라 자동으로 골라져요)#elseconst int LED = 10, BUTTON = 2;#endifbool lightOn = false;← 지금 LED가 켜져 있나요? (처음엔 꺼짐)int before = HIGH;← 바로 전 버튼 상태 (안 누름 = HIGH)void setup() { pinMode(LED, OUTPUT); pinMode(BUTTON, INPUT_PULLUP);← 누르면 LOW, 안 누르면 HIGH}void loop() { int now = digitalRead(BUTTON); if (before == HIGH && now == LOW) {← 안 눌림 → 눌림으로 바뀐 '순간'만 lightOn = !lightOn;← 켜짐 ↔ 꺼짐 뒤집기 digitalWrite(LED, lightOn ? HIGH : LOW); delay(50);← 버튼 떨림 막기 } before = now;← 다음 비교를 위해 기억}바꿔 보기: ① 누르고 있는 동안만 켜지게 ② 누를 때마다 숫자를 세어 시리얼 모니터에 보여 주기 ③ 3번 누르면 깜빡이 모드가 되게 해 보세요.
💬 막히면 도우미에게 물어보세요
오류가 나면 오류 문구를 그대로 붙여 넣으면 더 정확해요. 예: “버튼을 한 번 눌렀는데 LED가 여러 번 바뀌어요”