Gostaria de ter a comodidade de acionar a lâmpada do seu quarto apenas batendo palmas?
Nesse Artigo Acender lampada com palmas Arduino, eu vou te dar o passo a passo para que você seja capaz de controlar as lâmpadas da sua casa apenas batendo palmas.
Utilizando poucos componentes somos capazes de fazer este sensor, apenas o Arduino, sensor de ruído e um relé.
E do mesmo jeito que acionamos uma lâmpada podemos ligar qualquer aparelho em casa que esteja conectado a tomada, por exemplo, um ventilador.
Vamos ao Projeto?
Sumário
Acender lâmpada com palmas Arduino
O projeto vai utilizar poucos componentes, se você já utiliza o Arduino para os seus projetos provavelmente já tem quase todos os componentes ai guardado, o sensor que vai nos capacitar a fazer está maravilha é o de ruído.
O sensor de ruído é um componente que capta o som ambiente podendo regular nele a sensibilidade para não captar nenhum tipo de ruído.
Vamos utilizar essa característica para acionar uma lâmpada com 2 palmas, este projeto pode ser chamado de sensor claps (palmas).
E no demais é o que já estamos acostumados a usar como relé, e a placa Arduino, outra parte que deve ser bem elaborada é a programação, vemos exemplos por ai de sensor de palmas, com uma programação mais simples e que é acionado apenas por uma palma.
Neste vamos utilizar uma programação mais elaborada para que só ligue e desligue a lâmpada (ou qualquer aparelho ligado ao relé) quando bater duas palmas, e essas palmas devem se encaixar no intervalo de tempo determinado.
Com a programação e montagem você vai entender melhor.
Detector de som Arduino
O detector de Som Arduino usado neste projeto é um sensor digital, ou seja, ela apenas detecta se tem ou não algum ruído, ele capta informações por um microfone de eletreto que podemos regular esta sensibilidade por um trimpot, como mostra a imagem.
Existe também sensores de som analógicos, ou seja, ficam captando continuamente e variando seus valores de acordo a intensidade.
Especificações Técnicas:
- Chip principal: LM393;
- Tensão de funcionamento: 5V DC;
- Dimensões (CxLxA): 33x16x9,5mm;
Sensor de palmas Arduino
A ligação dos componentes do sensor de palmas Arduino é bem simples, já que são poucos elementos, caso não tenha experiência em elétrica peça ajuda alguém que tenha.
O relé pode ser ligado em NA (normalmente aberto) ou NF (normalmente fechado) depende de como você quer instalar.
No NA o circuito fica aberto caso tenha algum problema com o Arduino, então a lâmpada ficará apagada direto, já se ligar no NF do relé e ter algum problema com o Arduino, ela irá ficar acesa direto.
Neste projeto optei por ligar no NF.
Esquema de montagem
Clique na imagem para ver em melhor resolução.
Programação
A programação é a chave deste projeto.
/* Programa:Acender lampada com palmas Arduino
Autor: Luan Silver - www.guiarobotica.com
*/
int sensorSom = 7; // Pino sensor de som
int rele = 8; // Pino rele
int contPalmas = 0; // Contador de Palmas
unsigned long tempMaxSom = 1000; // Tempo máximo entre o pulso seguinte
unsigned long tempMinSom = 300; // Tempo minimo entre o pulso seguinte
unsigned long compriSom = 100; // Comprimento do som esperado
unsigned long time;
unsigned long startTime = 0;
void setup() {
pinMode(sensorSom, INPUT); // Inicia o pino do sensor como entrada
pinMode(rele, OUTPUT); // Inicia os pino do rele como saída
// Desliga rele (o rele é invertido HIGH desliga / LOW liga)
digitalWrite(rele, 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 >= compriSom && digitalRead(sensorSom) == LOW) {
// Verifica se o pulso recebido respeita o intervalo
if (tempoAposPalma < tempMinSom || tempoAposPalma > tempMaxSom) {
// Caso não respeite reseta 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 a 1 e se o rele esta desligado
if ((contPalmas >= 1) && (digitalRead(rele) == HIGH)) {
// se rele estiver desligado, Liga e zera a contagem
digitalWrite(rele, LOW);
contPalmas = 0;
}
// Verifica se a contagem de palma é igual a 1 e se o rele esta ligado
if ((contPalmas >= 1) && (digitalRead(rele) == LOW)) {
// se rele estiver ligado, desliga e zera a contagem
digitalWrite(rele, HIGH);
contPalmas = 0;
}
}
}
A programação é bem elaborada, as palmas devem respeitar o intervalo de tempo estabelecido, então não é qualquer palma que irá acionar a lâmpada.
Regule a sensibilidade do detector de som Arduino de acordo sua necessidade.
Conclusão
- O projeto acender lampada com palmas Arduino, apesar da facilidade da montagem dos componentes temos que observar bem a programação, ela tem pequenos detalhes que é importante entender.
- Se não souber fazer ligações elétricas, peça ajuda a alguém que tenha experiência e tome cuidado.
Bem legal? Comodidade é tudo…
Link permanente
Excelentes esse seu projeto Luan! Obrigado