03. Módulo Sensor de Som por Microfone
Nesta categoria temos 2 módulos quase idênticos, pelo menos na programação, a diferença entre eles está na sensibilidade de detecção do som.Estes sensores podem detectar som e emitem um sinal analógico ou digital que pode ser usado, por exemplo, para criar um interruptor de luz ao bater palmas. No lado analógico mede a intensidade sonora do ambiente e do lado digital varia o estado caso seja detectado um sinal sonoro.
As ligações com o Arduino são:
- A0 - Para o pino analógico
- G - Negativo do Arduino (ou GND)
- + - Positivo do Arduino (ou 5V)
- D0 - Para o pino digital
#define SOM_AN A5; void setup () { pinMode(ruido_an, INPUT); Serial.begin (9600); } void loop () { Serial.println(analogRead(SOM_AN), DEC); delay (100); }
É o suficiente para procedermos os ajustes que deve estar com o valor em torno dos 500. Agora podemos realizar um projeto mais interessante, observe a figura com as ligações:
Temos 4 LEDs ligados nas digitais 3 a 6, todos estão em linha com o polo negativo juntamente com um resistor de 220Ω. A ligação com o sensor está ligado na porta analógica A5 e digital 7, além do GND e 5V.
Para a programação temos:
#define SOM_AN A5 #define SOM_DG 7 #define VERM 6 #define AZUL 5 #define AMAR 4 #define VERD 3 int ruido_an = 0; int ruido_dg = 0; int liguei = false; void setup() { pinMode(SOM_AN, INPUT); pinMode(SOM_DG, INPUT); pinMode(VERM, OUTPUT); pinMode(AZUL, OUTPUT); pinMode(AMAR, OUTPUT); pinMode(VERD, OUTPUT); } void loop() { digitalWrite(VERM, LOW); digitalWrite(AZUL, LOW); digitalWrite(AMAR, LOW); digitalWrite(VERD, LOW); ruido_an = analogRead(SOM_AN); ruido_dg = digitalRead(SOM_DG); if (ruido_dg == 0) { liguei = true; digitalWrite(VERM, HIGH); } if (ruido_an > 510) { liguei = true; digitalWrite(AZUL, HIGH); } if (ruido_an > 520) { liguei = true; digitalWrite(AMAR, HIGH); } if (ruido_an > 530) { liguei = true; digitalWrite(VERD, HIGH); } if (liguei) { delay(100); liguei = false; } delay(10); }
Primeiro definimos e habilitamos todas as portas usadas, no método setup() indicamos quem são as entradas e as saídas. No método loop(), apagamos todos os LEDs; obtemos os valores da porta analógica e digital; se houver variação na digital acendemos o LED Vermelho, se a porta analógica ultrapassar os 510 acendemos o azul, se ultrapassar 520 o amarelo e se ultrapassar 530 o verde; caso qualquer LED tenha sido ligado aumentamos o tempo de espera.
Pronto, acabamos de criar um sequenciador de som, agora basta falar um pouco mais alto para ver os LEDs acendendo e apagando.
Obrigado e até o próximo sensor
Fernando Anselmo
0 comentários:
Postar um comentário