본문 바로가기
카테고리 없음

버튼으로 LED 켜고 끄기 실습

by AI 세상, 2025. 4. 27.

 

 

버튼으로 LED 켜고 끄기 실습

지금까지는 LED를 단순히 켜고 끄거나 깜빡이게 만들었죠? 이번 시간에는 입력 장치인 버튼을 사용해서 사용자의 동작에 따라 LED가 반응하도록 만들어볼 거예요.

이 실습을 통해 digitalRead() 함수를 배우고, 입력을 감지해서 출력으로 연결하는 아두이노의 기본 구조를 익히게 될 거예요.

실습 목표

  • 버튼을 눌렀을 때 LED가 켜지게 만들기
  • 버튼에서 손을 떼면 LED가 꺼지게 만들기
  • 입력(INPUT)과 출력(OUTPUT)의 관계 이해

준비물

  • 아두이노 우노 보드
  • USB 케이블
  • 브레드보드
  • LED 1개
  • 저항 220Ω 또는 330Ω (LED용)
  • 푸시 버튼 1개
  • 저항 10kΩ (풀다운 저항용)
  • 점퍼선 몇 개

회로 연결 방법

  1. LED의 긴 다리(양극)를 저항을 거쳐 아두이노 8번 핀에 연결
  2. LED의 짧은 다리(음극)는 GND로 연결
  3. 버튼의 한쪽 다리를 아두이노 2번 핀에 연결
  4. 같은 쪽 다리에 10kΩ 저항을 연결하여 GND로 연결 (풀다운 저항)
  5. 버튼의 다른 다리는 5V 핀에 연결

※ 풀다운 저항은 버튼이 눌리지 않았을 때 불필요한 신호가 들어오는 것을 막아주는 역할을 해요.

코드 작성하기

int ledPin = 8;
int buttonPin = 2;
int buttonState = 0;

void setup() {
  pinMode(ledPin, OUTPUT);      // LED 출력
  pinMode(buttonPin, INPUT);    // 버튼 입력
}

void loop() {
  buttonState = digitalRead(buttonPin);  // 버튼 상태 읽기

  if (buttonState == HIGH) {
    digitalWrite(ledPin, HIGH);  // 버튼 눌림 → LED 켜기
  } else {
    digitalWrite(ledPin, LOW);   // 버튼 안 눌림 → LED 끄기
  }
}

코드 설명

  • pinMode(buttonPin, INPUT); : 버튼은 입력 장치예요.
  • digitalRead() : 버튼이 눌렸는지 감지해요.
  • if문 : 버튼 상태에 따라 LED ON/OFF 제어

작동 원리

버튼을 누르면 아두이노 2번 핀에 HIGH(5V)가 들어오고, 손을 떼면 LOW(0V)가 들어와요. 이 값을 감지해서 LED를 켜거나 끄는 거예요.

실습 중 흔한 실수

  • 버튼에 풀다운 저항을 연결하지 않음 → 불안정한 신호
  • LED 방향 반대로 연결 → 안 켜짐
  • 핀 번호 코드와 회로 연결이 일치하지 않음

응용 아이디어

  • 버튼을 누를 때마다 LED 상태를 바꾸도록 만들기 (토글 기능)
  • 두 개의 버튼으로 서로 다른 색 LED를 켜기
  • 버튼을 눌렀을 때 부저도 함께 울리게 하기

마무리하며

이번 실습에서는 입력 장치인 버튼과 출력 장치인 LED를 연결해서 입력 → 조건 판단 → 출력이라는 기본 흐름을 이해했어요. 이 구조는 앞으로 센서, 모터, 디스플레이 등에도 똑같이 적용돼요!

다음 시간에는 버튼을 눌렀을 때 LED가 잠깐 깜빡이고 꺼지게 만드는 실습을 해볼 거예요. 입력에 따른 다양한 반응을 만드는 재미있는 실습이 될 거예요!