Course Content
코딩소스
0/1
[아두이노 키트] 소리감지센서
About Lesson

기본설정

  1. 아두이노 설치 및 환경설정이 완료된 상태여야 합니다.

2. 라이브러리는 하기 버튼을 눌러 다운로드하고 설치하세요

3. 아래 소스코드를 보드설정-컴파일-업로드 과정을 진행 후 실행하세요

소스 코드

– 코드설명 :

  • 소리센서는 소리의 크기를 감지해 전기적 변화를 발생시킵니다. (가까이서 박수를 크게 쳐보세요)
  • 모듈의 가변저항(파란색 조절부)을 통해 임계값을 설정합니다.
    미감지 시 HIGH(디지털 값 1) / 감지 시 LOW(디지털 값 0) 신호 발생.
  • 본 예시에서는 디지털 값 기반으로 이전 소리데이터와 현재데이터를 비교하여 “소리감지” 시리얼모니터에 출력함
				
					// 소리 감지 관련 변수
int soundSensor = 2;           // 사운드 센서 핀
int clapCounter = 0;           // 소리 카운터
Unsigned long lastClapTime = 0; // 마지막 소리 시간

void setup() {
  pinMode(soundSensor, INPUT);  // 사운드 센서를 입력으로 설정
  Serial.begin(9600);          // 시리얼 통신 시작
}

void loop() {
  detectClap();  // 소리 감지 함수 호출
  
  // 소리 카운터 리셋 (900ms 후)
  if (lastClapTime > 0 && millis() - lastClapTime > 900) {
    clapCounter = 0;
  }
}

void detectClap() {
  int soundState = digitalRead(soundSensor);  // 사운드 센서 상태 읽기
  unsigned long now = millis();               // 현재 시간
  
  // 사운드가 감지되고 마지막 박수로부터 200ms 이상 경과했을 때
  if (soundState == LOW && now - lastClapTime > 200) {
    clapCounter++;           // 소리 카운터 증가
    lastClapTime = now;      // 마지막 소리 시간 업데이트
    
    Serial.println("소리감지");
  }
}


				
			

작동영상