중급⏱ 예상 시간: 45분📝 4단계
초음파 거리 알림기
초음파 센서로 거리를 측정하고, 가까워지면 부저로 경고음을 울리는 장치를 만들어봅니다.
🧩 필요한 모듈
Arduino Uno
브레드보드
피에조 부저
점퍼 와이어
LED
저항 (220Ω / 10kΩ)
초음파 센서 (HC-SR04)
📖 단계별 설명서
1단계준비물 확인
다음 부품들을 준비해주세요:
- Arduino Uno 1개
- 브레드보드 1개
- 점퍼 와이어 8개
- 초음파 센서 (HC-SR04) 1개
- 피에조 부저 1개
- LED 3개 (초록, 노랑, 빨강)
- 220Ω 저항 3개
2단계회로 연결하기
- 초음파 ��서: VCC→5V, GND→GND, Trig→D7, Echo→D6
- 부저: (+)→D8, (-)→GND
- 초록 LED: D11 → 220Ω → LED → GND
- 노랑 LED: D10 → 220Ω → LED → GND
- 빨강 LED: D9 → 220Ω → LED → GND
📐 회로도
회로도 이미지
/images/projects/distance-alarm-circuit.png
3단계코드 작성하기
거리에 따라 LED 색상과 부저 소리가 달라지는 코드입니다.
code.ino
// 초음파 거리 알림기 - ModuKit
// 거리에 따라 LED와 부저로 알림을 줍니다.
const int TRIG = 7;
const int ECHO = 6;
const int BUZZER = 8;
const int LED_GREEN = 11;
const int LED_YELLOW = 10;
const int LED_RED = 9;
long getDistance() {
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
long duration = pulseIn(ECHO, HIGH);
return duration * 0.034 / 2; // cm 변환
}
void setup() {
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(BUZZER, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_YELLOW, OUTPUT);
pinMode(LED_RED, OUTPUT);
Serial.begin(9600);
Serial.println("거리 알림기 시작!");
}
void loop() {
long distance = getDistance();
Serial.print("거리: ");
Serial.print(distance);
Serial.println(" cm");
// 모든 LED 끄기
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_RED, LOW);
noTone(BUZZER);
if (distance < 10) {
// 매우 가까움 - 빨간 LED + 빠른 경고음
digitalWrite(LED_RED, HIGH);
tone(BUZZER, 1000);
Serial.println("⚠️ 매우 가까움!");
} else if (distance < 20) {
// 가까움 - 노란 LED + 느린 경고음
digitalWrite(LED_YELLOW, HIGH);
tone(BUZZER, 500);
Serial.println("⚡ 가까움");
} else if (distance < 50) {
// 보통 - 초록 LED
digitalWrite(LED_GREEN, HIGH);
Serial.println("✅ 안전");
}
delay(200);
}+44 줄 더 보기
💡 팁: 거리 기준값을 변경하여 감지 범위를 조절할 수 있어요.
4단계업로드 및 테스트
- 코드를 업로드합니다.
- 초음파 센서 앞에 손을 가까이/멀리 이동해보세요.
- 거리에 따라 LED 색상과 부저 소리가 달라집니다!
- 50cm 이상: LED 모두 꺼짐
- 20~50cm: 초록 LED
- 10~20cm: 노란 LED + 경고음
- 10cm 미만: 빨간 LED + 빠른 경고음
💡 팁: 시리얼 모니터로 실시간 거리값을 확인하세요!