소리 감지 센서(KY-038): 두 판 사이의 차이

아두위키 : Arduwiki
(새 문서: {{#seo:|title=아두위키 : 아두이노 소리 감지 센서(KY-038) 가이드|title_mode=append|keywords=아두이노, 정보과학, 메이커학습, 수행평가, 소리 감지 센서(KY-038), 아두이노 작품, 캡스톤작품, 아두이노 예제코드|description=아두이노로 소리 감지 센서(KY-038)를 제어하는 방법(기본정보, 회로, 예제 코드)을 소개합니다. 정보과학과 메이커수업에 활용가능합니다.}}파일:소리감지ky038...)
 
잔글편집 요약 없음
 
(같은 사용자의 중간 판 3개는 보이지 않습니다)
1번째 줄: 1번째 줄:
{{#seo:|title=아두위키 : 아두이노 소리 감지 센서(KY-038) 가이드|title_mode=append|keywords=아두이노, 정보과학, 메이커학습, 수행평가, 소리 감지 센서(KY-038), 아두이노 작품, 캡스톤작품, 아두이노 예제코드|description=아두이노로 소리 감지 센서(KY-038)를 제어하는 방법(기본정보, 회로, 예제 코드)을 소개합니다. 정보과학과 메이커수업에 활용가능합니다.}}[[파일:소리감지ky038대표이미지.jpg|501x501픽셀]]
{{#seo:|title=아두위키 : 아두이노 소리 감지 센서(KY-038) 가이드|title_mode=append|keywords=아두이노, 정보과학, 메이커학습, 수행평가, 소리 감지 센서(KY-038), 아두이노 작품, 캡스톤작품, 아두이노 예제코드|description=아두이노로 소리 감지 센서(KY-038)를 제어하는 방법(기본정보, 회로, 예제 코드)을 소개합니다. 정보과학과 메이커수업에 활용가능합니다.}}
[[파일:소리감지ky038대표이미지.jpg|center|class=coders100]]


소리의 강도를 감지하고 주변 소리의 크기에 따라 출력 전압이 변화하여 이를 아날로그 신호로 출력하는 모듈입니다.
소리의 강도를 감지하고 주변 소리의 크기에 따라 출력 전압이 변화하여 이를 아날로그 신호로 출력하는 모듈입니다.
[[소리 감지 모듈(KY-037)|KY-037]]와 유사한 모델입니다.


== '''사양''' ==
== '''사양''' ==
34번째 줄: 37번째 줄:
| colspan="1" rowspan="1" |AO
| colspan="1" rowspan="1" |AO
|}
|}
[[파일:Ky038 회로.png|837x837픽셀]]
[[파일:Ky038 회로.png|가운데|class=coders100]]


== '''예제 코드''' ==
== '''예제 코드''' ==
63번째 줄: 66번째 줄:
}
}
</syntaxhighlight>
</syntaxhighlight>


=== 실행 결과 ===
=== 실행 결과 ===
[https://blog.naver.com/gongzipsa/223187239751 링크]에서 작동 영상을 확인해주세요.
<div class="coders70">
<youtube> Ja-vqIg21eQ </youtube>
</div>





2024년 7월 10일 (수) 14:06 기준 최신판

소리의 강도를 감지하고 주변 소리의 크기에 따라 출력 전압이 변화하여 이를 아날로그 신호로 출력하는 모듈입니다.

KY-037와 유사한 모델입니다.

사양

  • 작동전압[V] : 3.3 ~ 5
  • 주파수 범위[Hz] : 50 ~ 20K

예제 사용 하드웨어

연결

디지털 핀은 본 예제에서는 사용하지 않지만 연결 예시로 참고하시기 바랍니다.

KY-038 모듈을 디지털로 사용할 때는 조용한 환경에서 모듈에 전원 공급하신 후, 가변저항을 돌려서 감도를 조절해주세요.

아두이노 우노 KY-038
5V +
GND G
D8 DO
A0 AO

예제 코드

소리가 감지되면 아두이노 내부 LED(13번핀)가 켜졌다가 일정 시간 후 꺼지는 예제입니다.

int analogPin = A0;
int ledPin = 13;
int analogVal = 0;
long int past_time = 0;
int past_analogVal = 0;

void setup() {
  pinMode(analogPin, INPUT);
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, HIGH);
  Serial.begin(9600);
}

void loop() {
  analogVal = analogRead(analogPin);
  if (millis() - past_time > 1000) {
    if (abs(past_analogVal - analogVal) > 3) {
      digitalWrite(ledPin, !digitalRead(ledPin));
      past_analogVal = analogVal;
      past_time = millis();
    }
  }
  delay(10);
}


실행 결과


구매 링크