Bóson Treinamentos em Ciência e Tecnologia

Acionando um alarme com buzzer e LED usando sensor HC-SR04 e Arduino

Alarme com Arduino, Buzzer e LED, com sensor de ultrassom HC-SR04

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:

Circuito

O diagrama esquemático a seguir detalha o circuito que devemos construir:

Diagrama Esquemático criado com Fritzing

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.

 

Sair da versão mobile