Arduino – Utilizando o Sensor
Ultrasonico HC-SR04 e Buzzer 5V
Nesta prática você vai aprender a utilizar o
Arduino em conjunto com o Sensor Ultrasonico
junto e Buzzer 5V.
O Sensor Ultrasonico HC-SR04 é um dos sensores mais conhecido do mercado.
Pode-se dizer que todos que estão iniciando com Arduino sempre procuram pelo
Sensor Ultrasonico HC-SR04 para desenvolver seus primeiros projetos medindo
distâncias de obstáculos / objetos em relação ao sensor. O mesmo é aplicado com
mais frequência em projetos de robótica, principalmente em chassis robóticos, robôs
ou carrinhos. O sensor é capaz de medir com precisão (3mm de margem de erro)
distâncias de 2cm até 4m.
O Buzzer 5V é um componente utilizado para emitir sinais sonoros. O mesmo possui
um circuito oscilador que produz o som e só necessita ser energizado.
Basicamente o que será feito nesta prática é definir uma distância mínima do objeto
em relação ao Sensor Ultrasonico HC-SR04 para que o Buzzer 5V seja ativado.
Abaixo está a lista dos itens necessários, e mais informações sobre cada um deles:
– Arduino Uno Com Cabo USB A/B
– Buzzer Ativo 5V
– Cabo Jumper
– Protoboard
– Sensor Ultrasônico HC-SR04
Abaixo está o esquema de ligação para esta prática:
Feito o esquema de ligação, será necessário instalar uma biblioteca na IDE do
Arduino para em seguida carregar o código na placa.
Faça o download da biblioteca Ultrasonic e em seguida faça a instalação da mesma na
IDE do Arduino.
Se você não sabe como fazer a instalação de bibliotecas na IDE, acesse o link abaixo
e em seguida retorne para continuar:
Arduino – Importando bibliotecas para a IDE
O código para testes está abaixo, basta copiar o mesmo, colar na IDE, salvar e
carregar:
1 #include "Ultrasonic.h" //INCLUSÃO DA BIBLIOTECA NECESSÁRIA PARA FUNCIONAMENTO DO CÓDIGO
2
3 const int echoPin = 6; //PINO DIGITAL UTILIZADO PELO HC-SR04 ECHO(RECEBE)
4 const int trigPin = 7; //PINO DIGITAL UTILIZADO PELO HC-SR04 TRIG(ENVIA)
5
6 const int pinoBuzzer = 2; //PINO DIGITAL EM QUE O BUZZER ESTÁ CONECTADO
7
8 Ultrasonic ultrasonic(trigPin,echoPin); //INICIALIZANDO OS PINOS
9
10 int distancia; //CRIA UMA VARIÁVEL CHAMADA "distancia" DO TIPO INTEIRO
11 String result; //CRIA UMA VARIÁVEL CHAMADA "result" DO TIPO STRING
12
13 void setup(){
14 pinMode(echoPin, INPUT); //DEFINE O PINO COMO ENTRADA (RECEBE)
15 pinMode(trigPin, OUTPUT); //DEFINE O PINO COMO SAÍDA (ENVIA)
16 pinMode(pinoBuzzer, OUTPUT); //DECLARA O PINO COMO SENDO SAÍDA
17 }
18 void loop(){
19
20 hcsr04(); // FAZ A CHAMADA DO MÉTODO "hcsr04()"
21
22 if(distancia <= 30){// SE A DISTÂNCIA ENTRE O OBJETO E O SENSOR ULTRASONICO FOR MENOR QUE 30CM,
23 FAZ
24 tone(pinoBuzzer,1500);//ACIONA O BUZZER
25 }else{//SENÃO, FAZ
26 noTone(pinoBuzzer);//BUZZER PERMANECE DESLIGADO
27 }
28 }
29 //MÉTODO RESPONSÁVEL POR CALCULAR A DISTÂNCIA
30 void hcsr04(){
31 digitalWrite(trigPin, LOW); //SETA O PINO 6 COM UM PULSO BAIXO "LOW"
32 delayMicroseconds(2); // DELAY DE 2 MICROSSEGUNDOS
33 digitalWrite(trigPin, HIGH); //SETA O PINO 6 COM PULSO ALTO "HIGH"
34 delayMicroseconds(10); // DELAY DE 10 MICROSSEGUNDOS
35 digitalWrite(trigPin, LOW); //SETA O PINO 6 COM PULSO BAIXO "LOW" NOVAMENTE
36 // FUNÇÃO RANGING, FAZ A CONVERSÃO DO TEMPO DE
37 //RESPOSTA DO ECHO EM CENTÍMETROS E ARMAZENA
38 //NA VARIÁVEL "distancia"
39 distancia = (ultrasonic.Ranging(CM)); // VARIÁVEL GLOBAL RECEBE O VALOR DA DISTÂNCIA MEDIDA
40 delay(500); //INTERVALO DE 500 MILISSEGUNDOS
Definimos no código que quando o objeto estiver a uma distância de 30cm (ou menos)
em relação ao Sensor Ultrasonico HC-SR04 o Buzzer 5V deverá ser ativado. Caso a
distância seja superior a 30cm o Buzzer 5V permanecerá desligado.