어제 우리 프로젝트 팀의 첫 오프라인 미팅이 있었다. 플젝 진행 방향에 대한 논의가 끝나고 잠시 남아서 리더님에게 아두이노 푸시버튼 연결을 좀 도와달라고 했다. 지난 글에서 아두이노 내장 LED로 S.O.S 신호 깜빡이기 실습을 했는데, 이 때 사실 원래 목표는 루프로 계속 돌리지 않고, 버튼을 한 번 눌렀다 떼면 S.O.S 신호가 한 차례 점멸하도록 하는 것이었다.
그런데 브래드보드에 푸시버튼과 점퍼와이어를 연결하는 방법을 제대로 몰라서 결국 이렇게 저렇게 시도하다가 포기했었는데, 어제 드디어 프로젝트 미팅에 가서 성공시켰다. (내가 한 건 아니고 리더님이 해주셨지만... ㅎㅎ)
우선 가장 중요한 회로를 다시 복기해 보도록 한다. 지난 포스팅에서 소개했던 팅커캐드를 이용해서 회로를 깔끔하게 정리해 보았다.

사용한 코드는 다음과 같다.
const int buttonPin = 2; // 버튼 연결 핀
const int ledPin = 13; // 내장 LED 핀
int buttonState = 0;
void dot() {
digitalWrite(ledPin, HIGH);
delay(250);
digitalWrite(ledPin, LOW);
delay(250);
}
void dash() {
digitalWrite(ledPin, HIGH);
delay(750);
digitalWrite(ledPin, LOW);
delay(250);
}
void sos() {
// S: ...
dot(); dot(); dot();
delay(200);
// O: ---
dash(); dash(); dash();
delay(200);
// S: ...
dot(); dot(); dot();
}
void setup() {
pinMode(buttonPin, INPUT_PULLUP); // 내부 풀업 저항 사용
pinMode(ledPin, OUTPUT); // LED 핀을 출력으로 설정
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == LOW) {
// 버튼이 눌렸으면 LED ON
sos();
} else {
// 버튼이 안 눌렸으면 LED OFF
digitalWrite(ledPin, LOW);
}
}
아래는 실제 동작하는 것을 촬영한 동영상이다.
'Journey to CS > 임베디드' 카테고리의 다른 글
| 아두이노에 PWM을 적용해서 LED에 페이드 인 & 페이드 아웃 효과 주기 (1) | 2025.07.17 |
|---|---|
| ESP32 시뮬레이터 - WOKWI 소개 (2) | 2025.06.24 |
| 아두이노 내장 LED로 S.O.S 구조 신호 깜빡이게 만들어 보기 (0) | 2025.06.14 |
| 아두이노의 디지털 신호와 논리값에 대해... (+프로그래밍 연습) (7) | 2025.05.20 |
| TinkerCAD로 아두이노와 친해질 준비하기 (2) | 2025.05.10 |