반응형
MAX4466는 앰프라서 데시벨 값 정도밖에 알 수는 없다.
따라서 출력도 라이브러리 없이 아날로그 값을 읽어 들이기만 하면 된다.
음성인식을 하려면 다른 마이크 모듈을 사야 한다.
아래와 같이 실제 환경에서 소음의 크기를 이퀄라이져 형식으로 표현해 봤다.
귀찮아서 LED의 저항연결은 생략함..
출력을 그래프로 그리면 아래와 같이 나온다.
LED 4개를 이용해서 소리의 크기를 나타낸 것으로 음악을 틀어서 저작권에 걸릴까 봐 무음 동영상으로 올린다.
아래는 이번에 사용한 직접짠 샘플 코드.
소리값의 범위는 특별한 의미 없이 지정한 것으로 각자의 목적에 맞게 설정해 주면 되겠다.
void setup() { Serial.begin(115200); pinMode(32,OUTPUT); pinMode(33,OUTPUT); pinMode(25,OUTPUT); pinMode(26,OUTPUT); } void loop() { int val = analogRead(27); Serial.println(val); if(val<2000){ digitalWrite(32, LOW); digitalWrite(33, LOW); digitalWrite(25, LOW); digitalWrite(26, LOW); }else if(val>2000 && val<2500){ digitalWrite(32, HIGH); digitalWrite(33, LOW); digitalWrite(25, LOW); digitalWrite(26, LOW); }else if(val>2500 && val<3000){ digitalWrite(32, HIGH); digitalWrite(33, HIGH); digitalWrite(25, LOW); digitalWrite(26, LOW); }else if(val>3000 && val<3500){ digitalWrite(32, HIGH); digitalWrite(33, HIGH); digitalWrite(25, HIGH); digitalWrite(26, LOW); }else if(val>3500){ digitalWrite(32, HIGH); digitalWrite(33, HIGH); digitalWrite(25, HIGH); digitalWrite(26, HIGH); } delay(10); } |
다음에는 ESP32로 음성인식 기능을 실현시켜 보고 싶다.
반응형