본문 바로가기

아두이노

IR 센서와 소리 감지 센서로 소리 제어

반응형

IR 센서와 소리 감지 센서를 사용한 음악 및 소리 제어 시스템을 아두이노로 구현하는 프로젝트에 대한 설명을 제공하겠습니다.

1. 이론 소개

  • IR 센서: 물체의 존재 여부를 감지하는데 사용되며, 특정 거리 내에 물체가 있는지 없는지를 확인할 수 있습니다.
  • 소리 감지 센서: 주변 환경의 소음을 감지하는 센서로, 소리의 크기를 전기 신호로 변환합니다.

2. 준비물

  • 아두이노 보드 (Uno, Mega 등)
  • IR 센서
  • 소리 감지 센서
  • 점퍼 와이어
  • 브레드보드

3. 비슷한 센서 모델명

  • IR 센서: Sharp GP2Y0A21YK0F
  • 소리 감지 센서: KY-037

4. 추천 보드 및 간단한 설명

  • 아두이노 Uno: 초보자에게 적합하며 다양한 센서와 호환 가능합니다.
  • 아두이노 Mega: 더 많은 I/O 핀과 메모리를 제공합니다.

5. 회로 구성

  • IR 센서의 VCC와 GND 핀을 각각 아두이노의 5V와 GND에 연결합니다.
  • 소리 감지 센서의 VCC와 GND를 아두이노의 5V와 GND에 연결하고, 신호 핀을 아날로그 핀에 연결합니다.

6. 코딩 내용

 

#define IR_PIN 2 // IR 센서 핀
#define SOUND_SENSOR_PIN A0 // 소리 감지 센서 핀
#define BUZZER_PIN 3 // 부저 핀

void setup() {
  pinMode(IR_PIN, INPUT); // IR 센서를 입력으로 설정
  pinMode(SOUND_SENSOR_PIN, INPUT); // 소리 센서를 입력으로 설정
  pinMode(BUZZER_PIN, OUTPUT); // 부저를 출력으로 설정
  Serial.begin(9600); // 시리얼 통신 시작
}

void loop() {
  int irValue = digitalRead(IR_PIN); // IR 센서 값 읽기
  int soundValue = analogRead(SOUND_SENSOR_PIN); // 소리 센서 값 읽기

  // IR 센서에 물체가 감지된 경우
  if (irValue == HIGH) {
    tone(BUZZER_PIN, 1000); // 1000Hz 톤 발생
    delay(100); // 100ms 동안 지속
    noTone(BUZZER_PIN); // 톤 중지
  }

  // 소리 센서 값에 따른 처리
  if (soundValue > 500) { // 소리 수준이 임계값 이상인 경우
    tone(BUZZER_PIN, 500); // 500Hz 톤 발생
    delay(100); // 100ms 동안 지속
    noTone(BUZZER_PIN); // 톤 중지
  }

  delay(100); // 100ms 간격으로 루프 반복

 

7. 코딩 내용 설명

이 코드는 IR 센서를 사용하여 물체의 감지 여부를 확인하고, 소리 감지 센서로부터 주변 소음 수준을 측정합니다. IR 센서에 물체가 감지되면 1000Hz의 소리를, 소리 감지 센서에서 높은 소음 수준이 감지되면 500Hz의 소리를 부저를 통해 발생시킵니다.

8. 코드 업로드 및 테스트

  • 아두이노 IDE에 코드를 입력하고, 보드에 업로드합니다.
  • IR 센서 앞에 물체를 움직여 톤의 변화를 관찰합니다.
  • 소리 감지 센서 근처에서 소음을 발생시켜 톤의 변화를 확인합니다.

9. 응용 업그레이드

  • 다양한 주파수와 멜로디로 소리 변화 구현
  • LED 또는 LCD 디스플레이를 추가하여 시각적 피드백 제공
  • 외부 음악 재생 장치와 연동하여 음악 제어 구현

10. 전문용어 및 설명

  • IR (Infrared) 센서: 적외선을 사용하여 물체의 존재 여부를 감지합니다.
  • 소리 감지 센서: 주변의 소리를 전기 신호로 변환하여 감지합니다.

11. 기타

환경에 따라 센서의 감도 조정이 필요할 수 있으며, 정확한 동작을 위해 여러 조건에서 테스트하는 것이 좋습니다.

 

반응형