0

Como ligar uma lâmpada batendo palmas com o Arduino? [Video]

Todos nós já vimos, em filmes, o protagonista ligar as lâmpadas batendo palmas,e hoje neste artigo iremos mostrar como pode fazê-lo utilizando um arduino, um sensor de som e um módulo de relé.

Se preferir ver o exercício em video, temos um vídeo sobre este mesmo projeto no nosso canal de Youtube.

 

 

Esquema de montagem do Arduino

 

Esquema do circuito do arduino

 

A montagem deste projeto é bastante simples e passaremos a explicá-la passo a passo:

  1. Ligamos a alimentação de ambos os módulos aos 5V e GND do arduino.
  2. Ligamos o pino Sinal do sensor de som ao pino A0 do arduino.
  3. Por fim, ligamos o pino Sinal do módulo relé ao pino Digital 4.

Nota: Como este projeto utiliza 230V de corrente alternada, que pode ser perigoso, aconselhamos a utilizar um Led durante os testes.

 

Código utilizado no Arduino IDE

Apresentaremos agora o código utilizado, com comentários à frente para facilitar a compreensão.

Com o código deste projeto pretendemos que quando forem batidas duas palmas o valor na saida do relé seja invertida. Vamos de seguida ver como conseguimos realizar isto:

 //Definir os pinos para o microfone e relé
int relay = 8;
int microphone = A0;

int contador = 0;  //Contador de palmas
int contador2 = 0; //Contador de tempo para Reset

void setup() {
Serial.begin(9600);  

pinMode(relay,OUTPUT);
pinMode(microphone, INPUT);

/*
 Utilizamos a instrução a seguir para,
 quando ligarmos o arduino
 garantirmos que o relay esteja sempre desligado
*/
digitalWrite(relay, LOW); 

}

void loop() {

  if(digitalRead(microphone)){
    Serial.print("PALMA DETETADA! "); //Esta linha é apenas necessária para testes
    Serial.print("Valor do sensor: "); // Esta linha é apenas necessária para testes
    Serial.println(analogRead(microphone)); // Esta linha é apenas necessária para testes
    contador++; //Incrementar a variável contador
    delay(50);
    contador = 0; //Recomeça o tempo de reset


//Quando foram batidas duas palmas
  if(contador == 2){  
   digitalWrite(relay, !digitalRead(relay)); //Inverte o valor na saida do relé
   contador2 = 0; // Recomeça o tempo de reset
    }
    
  }
  //Contagem do tempo para dar reset
   contador2++;
   delay(1);

 //Quando passam 3 seg sem qualquer tipo de palma
 if(contador2 == 3000){
  
      Serial.println("Tempo Resetado"); // Necessário apenas para testes
      contador = 0; // Reseta a variável de palmas batidas
      contador2 = 0; // Reseta a variável contador2
      
    }

}

Calibrar sensibilidade do sensor de som

Na primeira vez que carregamos o código para o arduino este provavelmente ligará e desligará a luz repetidamente, isto acontece pelo facto da sensibilidade do sensor de som estar demasiado baixa. Para ajustar isso, devemos primeiro abrir o Serial Monitor no computador, e depois rodar o potênciometro no sensor de som no sentido dos ponteiros do relógio até não aparecerem novas mensagens.

 

Sensor de som

 

Caso isto não tenha qualquer efeito, experimente tentar o método inverso, isto é, rodar o potênciometro no sentido contrário aos ponteiros do relógio. Neste caso, roda-se até aparecerem novas mensagens no Serial Monitor e voltamos a rodar no sentido dos ponteiros do relógio até estas desaparecerem.

Lista do Material Utilizado neste Artigo

Aqui está o material que usamos para este projeto com o arduino:

> Arduino Nano (Também com o UNO ou Mega)

> Sensor de Som para Arduino

> Módulo Relé 5V 1 Canal

Comments

Comentários

Pedro Pereira

Deixar uma resposta

Este site utiliza o Akismet para reduzir spam. Fica a saber como são processados os dados dos comentários.