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

Acionando 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:

Arduino com sensor ultrassônico e alarme com buzzer e LED

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.

 

Sobre Fábio dos Reis (1250 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*