🧪 예제 따라하기메뉴
코딩하기 · 예제 따라하기

기기 코딩 21 / 31

버튼으로 LED 켜고 끄기

버튼을 누를 때마다 LED가 켜졌다 꺼졌다 바뀌는 스위치를 만들어요.

  • 준비물: 버튼 1개, 빨간 LED 1개, 220Ω 저항 1개, 점퍼선 4개
연결 표
부품 다리아두이노 UnoESP32
보드 핀 → 220Ω → LED 긴 다리, 짧은 다리 → GND10번GPIO 25
버튼 한쪽 다리2번GPIO 14
버튼 대각선 반대쪽 다리GNDGND

버튼은 브레드보드 가운데 홈에 걸쳐 꽂아요. 다리 4개 중 '대각선'으로 마주 보는 두 다리를 쓰면 방향이 헷갈려도 항상 맞아요.

코드
// 버튼을 누를 때마다 LED 켜기/끄기
#ifdef ARDUINO_ARCH_ESP32
const int LED = 25, BUTTON = 14;← ESP32 보드면 이쪽 번호를 써요 (보드에 따라 자동으로 골라져요)
#else
const int LED = 10, BUTTON = 2;
#endif
bool 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가 여러 번 바뀌어요”