É possível dotar o seu microcontrolador do sentido da audição ligando-o a um microfone. O microfone capta as vibrações no ar e transforma-as num sinal elétrico que pode ser analisado e processado com um algoritmo. Neste tutorial, veremos como detectar um nível sonoro utilizando o microcontrolador.
Material
- Computador
- Arduino UNO
- Cabo USB A Macho/B Macho
- Microfone
Princípio de funcionamento
O sensor utilizado neste tutorial é um microfone condensador elétrico. Ele é composto por duas superfícies, uma fixa e a outra móvel. As vibrações do ar geram o movimento da membrana móvel, causando a variação do potencial elétrico detectado pelo sensor, que então envia um sinal elétrico para o microcontrolador. Existem vários modelos de microfone com diferentes sensibilidades, para detectar sons mais ou menos fortes. O modelo mais adequado varia conforme o uso que se pretende fazer. Verifique a documentação do módulo.
Obs: Este tipo de módulo não permite gravar ou analisar sons complexos, mas principalmente níveis sonoros.
Esquema
O microfone requer pouca potência e pode ser alimentado diretamente no pino de 5V do Arduino. Ele devolve um valor analógico que é enviado para uma entrada analógica do microcontrolador. Dependendo do modelo, o módulo pode conter um potenciômetro para ajustar a sensibilidade do microfone.
- AUD no pino A0
- Vcc no pino 5V
- GND no pino GND
Código
Para medir o nível sonoro, usamos a função AnalogRead(), como para a maioria dos sensores analógicos.
//Parameters
const int micPin = A0;
//Variables
int micVal = 0;
void setup() {
//Init Serial USB
Serial.begin(9600);
Serial.println(F("Initialize System"));
//Init Microphone
pinMode(micPin, INPUT);
}
void loop() {
readMicrophone();
}
void readMicrophone( ) { /* function readMicrophone */
////Test routine for Microphone
micVal = analogRead(micPin);
Serial.print(F("mic val ")); Serial.println(micVal);
if (micVal > 600) {
Serial.println("mic detected");
}
}
Resultado
Depois de carregar o código no microcontrolador, podemos ver o valor analógico mudar conforme o ruído ambiente. Tente bater palmas, estalar os dedos ou falar para ver como o microfone se comporta. Isso ajudará a determinar o nível necessário para desencadear uma ação.
Aplicações
- Ativar uma lâmpada batendo palmas
- Criar um alarme ativado pelo ruído
Fontes
- https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/
- Gestão de sensores com o Arduino
Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie
