소리 감지 센서(KY-038): 두 판 사이의 차이
(새 문서: {{#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| | {{#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| | [[파일:Ky038 회로.png|가운데|class=coders100]] | ||
== '''예제 코드''' == | == '''예제 코드''' == | ||
63번째 줄: | 66번째 줄: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== 실행 결과 === | === 실행 결과 === | ||
<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);
}
실행 결과