1. 프로젝트 개요
1.1 기획 배경
현대 사회에서 이어폰이나 헤드폰을 사용하여 음악을 듣거나 영상을 시청하는 일이 흔해졌습니다. 하지만 장시간 높은 볼륨으로 소리를 듣는 것은 청력 손실 및 귀 건강에 부정적인 영향을 미칠 수 있습니다. 이에 따라, 초음파 센서를 활용하여 사용자가 이어폰을 착용 중인지 감지하고, 볼륨 강도에 따라 경고를 주는 시스템을 개발하였습니다. 이를 통해 사용자가 청력 보호에 대한 인식을 높이고 보다 안전한 볼륨 수준을 유지하도록 돕는 것이 목표입니다.
1.2 프로젝트 목표
본 프로젝트는 초음파 센서를 이용하여 사용자가 이어폰을 착용하고 있는지를 감지하고, 볼륨 강도가 일정 수준 이상이면 경고를 제공하는 시스템을 구축하는 것을 목표로 합니다. 사용자가 이어폰을 착용한 상태에서 볼륨이 너무 높으면 LED를 이용해 시각적인 피드백을 제공하며, LCD 화면을 통해 볼륨 정보를 표시합니다.
2. 시스템 구성 요소
- 초음파 센서 (HC-SR04): 사용자의 이어폰 착용 여부 감지
- 가변저항 (Potentiometer): 현재 볼륨 강도를 측정하여 0~100% 범위로 변환
- LCD 디스플레이: 현재 볼륨과 감지된 거리 정보 출력
- LED (RGB): 볼륨 강도에 따라 색상 변경 (안전/주의/경고)
3. 시스템 동작 방식
- 초음파 센서가 사용자의 이어폰 착용 여부를 감지 (예: 50cm 이내)
- 볼륨을 측정하여 0~100%로 변환
-
볼륨 강도에 따라 LED 색상 변경:
- 0~40% → 파란색 (안전한 볼륨)
- 41~80% → 초록색 (주의 필요)
- 81~100% → 빨간색 (위험한 볼륨)
- LCD 화면에 현재 볼륨과 감지된 거리 출력
4. 코드 구현
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// LCD 설정
LiquidCrystal_I2C lcd(0x27, 16, 2);
// 초음파 센서 핀 설정
#define TRIG_PIN 9
#define ECHO_PIN 10
// 가변저항 핀 설정
#define VOLUME_PIN A0
// LED 핀 설정
#define LED_BLUE 3
#define LED_GREEN 4
#define LED_RED 5
// 거리 기준 (볼륨 조절 허용 범위)
#define DETECTION_DISTANCE 50 // cm (이 거리 내에서 볼륨 조절 가능)
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_BLUE, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_RED, OUTPUT);
lcd.init();
lcd.backlight();
Serial.begin(9600);
}
void loop() {
long duration;
int distance;
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
distance = duration * 0.034 / 2;
int volumeLevel = 0;
if (distance <= DETECTION_DISTANCE) {
int potValue = analogRead(VOLUME_PIN);
volumeLevel = map(potValue, 0, 1023, 0, 100);
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Volume: ");
lcd.print(volumeLevel);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("Dist: ");
lcd.print(distance);
lcd.print("cm");
if (volumeLevel <= 40) {
digitalWrite(LED_BLUE, HIGH);
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_RED, LOW);
} else if (volumeLevel > 40 && volumeLevel <= 80) {
digitalWrite(LED_BLUE, LOW);
digitalWrite(LED_GREEN, HIGH);
digitalWrite(LED_RED, LOW);
} else {
digitalWrite(LED_BLUE, LOW);
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_RED, HIGH);
}
delay(500);
}
5. 프로젝트 결과
이 시스템을 구현한 결과, 사용자는 이어폰을 착용한 상태에서 실시간으로 볼륨 상태를 확인할 수 있었으며, 볼륨이 너무 높을 경우 LED 색상 변화를 통해 경고를 받을 수 있었습니다.
6. 느낀 점
이번 프로젝트를 통해 초음파 센서를 활용한 감지 기술과, 가변저항을 이용한 볼륨 측정 및 변환 과정을 실습할 수 있었습니다. 또한, LED를 이용한 시각적 피드백이 사용자 경험 향상에 중요한 요소임을 깨닫게 되었습니다. 하지만 초음파 센서의 감지 정확도가 환경에 따라 달라질 수 있으며, 볼륨 측정의 정밀도를 높이기 위해 추가적인 보정이 필요하다는 점을 확인했습니다. 향후에는 더욱 정밀한 센서를 도입하거나, 일정 시간 동안 높은 볼륨을 유지할 경우 추가적인 경고 기능(예: 스마트폰 앱 연동)을 제공하는 방식으로 확장할 수 있을 것입니다.