Acionando um alarme com buzzer e LED usando sensor HC-SR04 e Arduino
Como acionar buzzer e LED com sensor HC-SR04 e Arduino
Olá pessoal! Vamos criar mais um projetinho usando Arduino? Vamos construir um pequeno alarme de distância!
Neste projeto vamos empregar o sensor ultrassônico de distância HC-SR04 para criar um alarme sonoro e visual, que será acionado quando um objeto for detectado a uma determinada distância do sensor, que pode ser ajustada via código.
O alarme consistirá na emissão de um tom sonoro de frequência específica por meio de um buzzer, além de um sinal luminoso utilizando-se um LED colorido. É possível usar um pequeno alto-falante no lugar do buzzer, porém nesse caso o volume sonoro gerado deve ser menor.
Lista de Materiais:
- Arduino
- Sensor ultrassônico HC-SR04
- LED de qualquer cor
- Resistor de 220Ω
- Buzzer (ou alto-falante pequeno)
- Matriz de Contatos
- Jumpers diversos
Circuito
O diagrama esquemático a seguir detalha o circuito que devemos construir:
Conectamos o pino de Trigger do sensor ao pino digital 8 do arduino, o pino de eco ao pino digital 7, e vamos acionar o buzzer e o LED por meio dos pinos digitais 4 e 3, respectivamente. Note que acrescentamos um resistor de 220Ω para limitação de corrente no LED, de modo a evitar que se danifique quando se acender.
Código-fonte
A seguir temos o código do Arduino para a aplicação do sensor de distância, comentado:
/* Acionando alarme com Sensor Ultrassônico HC-SR04 Por Fábio dos Reis www.bosontreinamentos.com.br */ // Definir os números dos pinos const int trigger = 8; const int eco = 7; const int buzzer = 4; const int led = 3; // Definir as variáveis long duracao; float dist; void setup() { pinMode(trigger, OUTPUT); // Configura o pino trigger como saída pinMode(eco, INPUT); // Configura o pino eco como entrada. pinMode(buzzer, OUTPUT); // Configura o pino de acionamento do buzzer pinMode(led, OUTPUT); // Configura o pino de acionamento do LED digitalWrite(led, LOW); // Desliga LED ao iniciar a placa. digitalWrite(buzzer, LOW); // Desliga buzzer ao iniciar a placa. } void loop() { // Limpa o trigger digitalWrite(trigger, LOW); delayMicroseconds(5); // Configurar o trigger para nível alto para transmissão de sinais digitalWrite(trigger, HIGH); delayMicroseconds(10); // tempo para envio do sinal digitalWrite(trigger, LOW); // Inicia contagem de tempo e lê o pino de eco duracao = pulseIn(eco, HIGH); // Calcular a distância dist = duracao * 0.034 / 2; // Acionar buzzer e LED se objeto detectado estiver a menos de 10cm do sensor: if (dist <= 10) { tone(buzzer, 700); digitalWrite(led, HIGH); } else { noTone(buzzer); digitalWrite(led, LOW); } // Aguardar 100ms antes da próxima leitura para evitar interferência delay(100); }
A explicação detalhada de como funciona o sensor ultrassônico HC-SR04 pode ser consultada aqui.
Para acionar o buzzer usamos a função tone(), que gera um tom de frequência determinada a ser enviado a um dos pinos do Arduino. E, para parar a execução do som, samos a função noTone().
Como testar o circuito
Testar o circuito é bem simples: basta aproximar um objeto do sensor de ultrassom, e observar que o buzzer é acionado, juntamente com o LED, quando o objeto chegar a 10cm ou menos de distância, e o “alarme” pára quando o obstáculo se afasta além dos 10 centímetros.
Você pode fazer modificações diversas no circuito, como por exemplo alterar a distância de disparo do alarme, ou ainda tentar modificar o circuito para que o buzzer reproduza sons de diferentes frequências dependendo da distância do obstáculo ao sensor.
Escreva um comentário