- Descrição: O Sensor de Velocidade (Encoder) / Chave Óptica 5mm é…
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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#include "Ultrasonic.h" //INCLUSÃO DA BIBLIOTECA NECESSÁRIA PARA FUNCIONAMENTO DO CÓDIGO const int echoPin = 6; //PINO DIGITAL UTILIZADO PELO HC-SR04 ECHO(RECEBE) const int trigPin = 7; //PINO DIGITAL UTILIZADO PELO HC-SR04 TRIG(ENVIA) const int pinoBuzzer = 2; //PINO DIGITAL EM QUE O BUZZER ESTÁ CONECTADO Ultrasonic ultrasonic(trigPin,echoPin); //INICIALIZANDO OS PINOS int distancia; //CRIA UMA VARIÁVEL CHAMADA "distancia" DO TIPO INTEIRO void setup(){ pinMode(echoPin, INPUT); //DEFINE O PINO COMO ENTRADA (RECEBE) pinMode(trigPin, OUTPUT); //DEFINE O PINO COMO SAÍDA (ENVIA) pinMode(pinoBuzzer, OUTPUT); //DECLARA O PINO COMO SENDO SAÍDA } void loop(){ hcsr04(); // FAZ A CHAMADA DO MÉTODO "hcsr04()" if(distancia <= 30){// SE A DISTÂNCIA ENTRE O OBJETO E O SENSOR ULTRASONICO FOR MENOR QUE 30CM, FAZ tone(pinoBuzzer,1500);//ACIONA O BUZZER }else{//SENÃO, FAZ noTone(pinoBuzzer);//BUZZER PERMANECE DESLIGADO } } //MÉTODO RESPONSÁVEL POR CALCULAR A DISTÂNCIA void hcsr04(){ digitalWrite(trigPin, LOW); //SETA O PINO 6 COM UM PULSO BAIXO "LOW" delayMicroseconds(2); // DELAY DE 2 MICROSSEGUNDOS digitalWrite(trigPin, HIGH); //SETA O PINO 6 COM PULSO ALTO "HIGH" delayMicroseconds(10); // DELAY DE 10 MICROSSEGUNDOS digitalWrite(trigPin, LOW); //SETA O PINO 6 COM PULSO BAIXO "LOW" NOVAMENTE // FUNÇÃO RANGING, FAZ A CONVERSÃO DO TEMPO DE //RESPOSTA DO ECHO EM CENTÍMETROS E ARMAZENA //NA VARIÁVEL "distancia" distancia = (ultrasonic.Ranging(CM)); // VARIÁVEL GLOBAL RECEBE O VALOR DA DISTÂNCIA MEDIDA 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.
No vídeo abaixo você pode ver o resultado final desta prática:
Gostou desta prática? Então deixa seu comentário, dúvida ou sugestão aí embaixo!
Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop
Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.
Obrigada e até a próxima!
Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.
Postagem anterior: Arduino – Medindo a Temperatura com o Sensor DS18B20
Próxima postagem: Arduino – Controlando uma Lâmpada com o Sensor Capacitivo Touch TTP223B
Boa tarde! Consegui executar o projeto. Queria implementar um Display LCD mostrando a distância. Vocês têm como me da uma dica de como implementar?
Ola. Reproduzi o código e com os jumpers todos ligados corretos, porém o buzzer fica ativado direto. Ele detecta quando se aproxima mais parece não obedecer o “if else”. Já observei a saída e está imprimindo de boa. Mais para os valores maior de que 30cm, ele continua com buzzer ativo.
Alguma sugestão?
Olá, tudo bem?
Segui os passos do tutorial, porém não está funcionando. Sou novato na parte do Arduino, mas acredito ter seguido os passos corretamente.
Meu Arduino está se conectando com a IDE, mas não acontece nada, não da erro e nada do tipo.
Poderiam me ajudar?
Obrigado.
Ola, tudo bem?
tentei reproduzir este projeto, porem teve problema na linha: const int trigPin = 7; , diz que o arquivo não existe. O que tenho que fazer?
Olá Jose Carlos.
Agradeço pelo comentário!
Você precisa importar a biblioteca conforme está mencionado na postagem.
Boa noite, tudo bem?
Estou fazendo um projeto, e estou limitado em quantidade de portas do microcontrolador, minha pergunta é: é possível conectar mais de um sensor na mesma porta do microcontrolador?? ou seja, conectar o trigpin na mesma porta para 3 sensores, e os echopin ligar em portas diferentes
É possível?
Olá Bruno.
Agradeço pelo comentário!
Recomendo que pesquise no Google pelo termo: multiple ultrasonic Sensor hc-sr04
Acredito que conseguirá mais informações do que eu consigo fornecer, pois nunca liguei 2 ou mais HC-SR04 em um Arduino.
Oi poderia me ajudar no meu caso o buzzer dispara ,e fica disparado independente da distância fica acionado
Boa Tarde,
Para que finalidade foi criada uma variavel String result sendo que não a vi sendo utilizada em nenhum lugar do código fonte apresentado.
Olá Fagner.
Agradeço pelo comentário!
De fato ela não está sendo utilizada, portanto, basta ignorar a mesma ou remover do código.
nao estou conseguindo
conectei tudo de acordo mas mesmo assim nao esta conectando e mostra q a programação
compilou sem problemas
Olá Nicolas.
Agradeço pelo comentário!
“conectei tudo de acordo mas mesmo assim nao esta conectando”
Não consegui compreender. O que não está conectando?
ola como seria o codigo para 2 sensores ultrasonicos e um buzzer? teria como fazer isso? ou ate 3 sensores?
Boa noite!
Funcionou na perfeição.
Mas tendo executado o: “Como usar com Arduino – Sensor Ultrasonico HC-SR04” que também funcionou direito, andei tentando que este além do sinal acústico para o buzzer, me pudesse também dar a distância no monitor serial. Será possível?
Desde já o meu obrigado.
A. Magalhães
Olá António Magalhães.
É possível sim. No void setup() do código, insira a linha:
Serial.begin(9600);
E após a linha hcsr04(); no void loop(), insira a linha:
Serial.println(distancia);
Olá, com o buzzer passivo é a mesma coisa?
Olá Lavínia Souza.
Não, a forma de programar o buzzer passivo é diferente.
ola, tentei fazer o teste, mas assim que enerigizamos o circuito o buzzer dispara direto, vi toda a ligaçao so que mesmo assim continua a mesma coisa, se poder me ajudar eu ficaria muito grato pois esse circuito faz parte do meu tcc
Oi Alex. Conseguiu resolver o problema com o buzzer que disparou no sensor ultrassonico ? Poderia me ajudar pq ele disparou e não para
Boa tarde! Alguém pode me ajudar com este erro:
error: ‘hcsr04’ was not declared in this scope
Eu insistidamente tentei reproduzir este projeto, porém tive problemas nessa linha de código :
distancia = (ultrasonic.Ranging(CM)); biblioteca perfeitamente instalada como tutorial.
poderia me ajudar?
agradeço desde já
Olá Celso.
Infelizmente não sei te dizer o que pode ser, pois acabei de fazer um teste com o código e biblioteca disponíveis no artigo e está funcionando perfeitamente.
Alguem poderia me ajudar? Estou tentando fazer um projeto onde as medidas são lidas pelo android através do app inventor, via modulo wifi ESP 8266, é preciso colocar algum “calculo matematico” no app invento… pois ele não mostra a medida correta só numeros aleatórios…
Bom dia!
Eu não tenho um buzzer 5v, tenho somente o 3.3v e aqui na minha cidade não tem esse produto. Como faço para ligar esse buzzer 3.3v?
Olá Sidney.
Neste caso, você pode fazer um divisor de tensão para reduzir os 5V do Arduino para 3.3V e acionar o Buzzer.
Boa tarde, eu gostaria de que o projeto funcionasse com uma bateria 9v, como eu poderia fazer pra incluir ela nesse projeto? Não entendo muito
Olá Erika.
Você pode utilizar um clip de bateria 9V e conectar os terminais na protoboard, por exemplo. Para alimentar o Arduino, basta conectar o VCC da bateria no pino VIN e o GND no GND do Arduino. Pode usar também um clip de bateria 9V com plug P4 e conectar no plug jack do Arduino, desta forma, eliminaria a alimentação USB.
Com esse sensor posso aumentar a distância de percepção para quantos metros?
Olá Vitor.
A faixa de medição do sensor é fixa. O HC-SR04 mede na faixa de 2cm a 4m.
Gostei, eu coloquei um led e ficou legal! Parabéns!
Olá Nilce.
Show de bola!
Vlw!
Boa tarde!
Tentei reproduzir este projeto, porém tive problemas nessa linha de código :
distancia = (ultrasonic.Ranging(CM));
poderia me ajudar?
agradeço desde já!
Olá Isabella.
Você instalou a biblioteca conforme orientado no tutorial?
Executei o código disponível na postagem e foi compilado sem nenhum problema.
Boa tarde Isabella também tive o mesmo problema, resolvi com um simples renomear de palavras: onde estava a função distancia = (ultrasonic.Ranging(CM));
renomeie para distancia = (ultrasonic.distanceRead(CM));
//PORQUE ATUAL BIBLIOTECA Ultrasonic.h NÃO SABE OQUE É distanceRead(CM));
ENTÃO MUDA PARA distanceRead(CM));
Ou então procure uma ultrasonic que aceite a palavra Ranging; E passe-me o link, pois maioria
projetos encontrados vem com as configurações para esta (ultrasonic.Ranging(CM));