Olá pessoal, hoje iremos aprender como acender um LED com o módulo sensor de som, este módulo é capaz de captar ruídos e transformá-los em sinais, estes sinais são recebidos pelo Arduino que em conjunto com outros acessórios podem acionar lâmpadas, motores ou os mais diversos equipamentos eletrônicos. Para que o LED acenda e apague faz-se necessário batermos duas palmas seguidas. Mãos aos componentes e bom trabalho !!!
COMPONENTES NECESSÁRIOS
1 Arduino Uno R3
1 Protoboard
1 Resistor de 330Ω
1 LED (Qualquer cor)
1 Módulo sensor de som
Fios jumpers
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB. Agora, pegue a protoboard, o LED, o resistor, o sensor de som e os fios jumpers e conecte-os como mostra a figura.
Não importa se você utiliza fios de cores diferentes ou furos diferentes na protoboard, desde que os componentes e os fios estejam conectados na mesma ordem da figura. Tenha cuidado ao inserir os componentes na protoboard. Caso sua protoboard seja nova, a superfície dos furos ainda estará rígida. A não inserção cuidadosa dos componentes pode resultar em danos. Certifique-se de que todos os componentes estejam conectados corretamente. Quando você estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino conectando-o ao cabo USB.
AGORA VAMOS AO CÓDIGO
// Projeto 45 – Acendendo LED com sensor de som
int microfone = 7; // Pino digital ligado ao sensor de som (DO)
int led = 8; // Pino ligado ao LED
int contPalmas = 0; // Contador de Palmas
int palmasRequeridaLigaLed = 2; // Contagem para acender o LED
int palmasRequeridaDesligaLed = 2; // Contagem para apagar o LED
// Tempo máximo entre o pulso seguinte
unsigned long tempMaxSom = 1000;
unsigned long tempMinSom = 300;
unsigned long compriSonoro = 100; // Comprimento do som esperado
unsigned long time;
unsigned long startTime = 0;
void setup() {
pinMode(microfone, INPUT); // Inicia o pino do microfone como entrada
pinMode(led, OUTPUT); // Inicia os pino do LED como saída
// Desliga LED (o LED é invertido HIGH = desliga / LOW = liga)
digitalWrite(led, HIGH);
}
void loop() {
// Inicia a contagem de tempo
time = millis();
// Verifica o tempo entre o pulso inicial e o seguinte
unsigned long tempoAposPalma = time – startTime;
if (tempoAposPalma >= compriSonoro && digitalRead(microfone) == LOW) {
// Verifica se o pulso recebido respeita o intervalo entre 1 pulso e outro
if (tempoAposPalma < tempMinSom || tempoAposPalma > tempMaxSom) {
// Caso contrario o intervalo resetara a contagem e o tempo
contPalmas = 0;
startTime = millis();
}
else {
// Iniciada a contagem de pulso e o tempo
contPalmas ++;
startTime = millis();
}
// Verifica se a contagem de palma é igual ou superior ao número…
//esperado e se o LED esta desligado
if((contPalmas>=palmasRequeridaLigaLed-1)&&(digitalRead(led)==HIGH)){
// Acende o LED e zera a contagem
digitalWrite(led, LOW);
contPalmas = 0;
}
// Verifica se a contagem de palma é igual ou superior ao número…
//esperado e se o LED esta aceso
if((contPalmas>=palmasRequeridaDesligaLed-1)&&(digitalRead(led)==LOW)){
// Desliga LED e zera contagem
digitalWrite(led, HIGH);
contPalmas = 0;
}
}
}
Para certificar se o código está correto pressione o botão Verify/Compile. Se tudo estiver correto pressione o botão Upload para fazer o upload do código para seu Arduino. Pronto, agora basta bater duas palmas seguidas para apagar o LED e mais duas para acende-lo novamente.