PROJETO 45 – ACENDENDO LED COM SENSOR DE SOM

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.

fonte: facacomarduino.info