Como usar com Arduino – Sensor Ultrasonico HC-SR04

Como usar com Arduino – Sensor Ultrasonico HC-SR04

img00_usar_com_arduino_sensor_ultrasonico_hc-sr04_distancia_uno_mega_leonardo_nano - Copia

– Descrição:

Sensor Ultrasonico HC-SR04 é 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.

A composição do Sensor Ultrasonico HC-SR04 é feita de um emissor e um receptor ultrassônico, onde o sensor emite (emissor) sinais ultrassônicos que serão refletidos no obstáculo / objeto retornando ao sensor (receptor). Com base no tempo que o sinal emitido levou para retornar ao sensor, o mesmo efetua o cálculo da distância.

– Especificações e características:

– Tensão de operação: 5VDC
– Corrente de operação: 15mA
– Faixa de detecção (ângulo): ±15º
– Alcance: 2cm a 4m
– Margem de erro: ±3mm

– Datasheet:

Datasheet HC-SR04

– Aplicações:

Projetos com Arduino ou outras plataformas microcontroladas em que seja necessário fazer medição de distâncias.

– Proposta da prática:

Utilizar o Sensor Ultrasonico HC-SR04 em conjunto com o Arduino para fazer a medição da distância de um objeto. A distância medida será mostrada no monitor serial do ambiente de programação do Arduino.

– Lista dos itens necessários:

01 – Arduino com Cabo USB
01 – Sensor Ultrasonico HC-SR04
01 – Protoboard
04 – Cabos Jumper macho-macho

– Esquema de ligação da prática

img01_usar_com_arduino_sensor_ultrasonico_hc-sr04_distancia_uno_mega_leonardo_nano - Copia

– Tutorial de instalação e configuração do ambiente de programação do Arduino:

Arduino – Instalação e Configuração da IDE no Windows

– Biblioteca:

Download biblioteca Ultrasonic

– Importando bibliotecas para o ambiente de programação do Arduino:

Arduino – Importando bibliotecas para a IDE

– Código:

– Resultado final:

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.

Obrigado 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:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação, Técnico em Eletroeletrônica, Fundador e Diretor da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.

Existem 12 comentários para esta postagem
  1. henrique às 15:52

    Boa tarde,

    Estou a a produzir uma escultura que interaje com o público, para isto, resolvi tentar usar o arduino com sensores ultra-sônicos hcsr04 para medir distancias de interação que fazem acionar os relés onde estão ligados os motores que movimentam partes da escultura.
    Consegui fazer um relé funcionar com um sensor mas quando adiciono mais um tudo fica baralhado e os relés abrem e fecham os circuitos constantemente. Não estou a conseguir encontrar soluções semelhantes onde possa saber qual ou quais as minhas falhas. Envio o meu código que fiz o upload na minha placa mega 2560.
    Podem me ajudar? estou a ficar com pouco tempo para a exposição e já não sei o que fazer…
    Obrigado por tudo e pelo excelente trabalho desenvolvido aqui.
    Henrique Richard

    //#define tINT 2 // Total number of interrupts
    #define trigPin1 6 //Define the HC-SE04 triger on pin 6 on the arduino
    #define echoPin1 7 //Define the HC-SE04 echo on pin 5 on the arduino
    #define trigPin2 6 //Define the HC-SE04 triger on pin 6 on the arduino
    #define echoPin2 8 //Define the HC-SE04 echo on pin 5 on the arduino

    #define bulb 11 //Define the relay signal on pin 9 on the arduino
    #define bulb1 10 //Define the relay signal on pin 10 on the arduino

    void setup()

    {

    Serial.begin (9600); //Start the serial monitor

    pinMode(trigPin1, OUTPUT); //set the trigpin to output
    pinMode(echoPin1, INPUT); //set the echopin to input

    pinMode(trigPin2, OUTPUT); //set the trigpin to output
    pinMode(echoPin2, INPUT); //set the echopin to input

    pinMode (bulb, OUTPUT); //set the bulb on pin 9 to output
    pinMode (bulb1, OUTPUT); //set the bulb on pin 9 to output

    }

    void loop()

    {

    int duration, distance; //Define two intregers duration and distance to be used to save data

    digitalWrite(trigPin1, HIGH); //write a digital high to the trigpin to send out the pulse
    digitalWrite(trigPin2, HIGH); //write a digital high to the trigpin to send out the pulse

    delayMicroseconds(1500); //wait half a millisecond

    digitalWrite(trigPin1, LOW); //turn off the trigpin
    digitalWrite(trigPin2, LOW); //turn off the trigpin

    duration = pulseIn(echoPin1, HIGH); //measure the time using pulsein when the echo receives a signal set it to high
    duration = pulseIn(echoPin2, HIGH); //measure the time using pulsein when the echo receives a signal set it to high

    distance = (duration/2) / 29.1; //distance is the duration devided by 2 becasue the signal traveled from the trigpin then back to the echo pin, then divide by 29.1 to convert to centimeters

    if (distance < 10) //if the distance is less than 10 CM

    {

    Light(); //execute the Light subroutine below

    }

    Serial.print(distance); //Dispaly the distance on the serial monitor

    Serial.println(" CM"); //in centimeters

    delay(500); //delay half a second

    }

    void Light() //Start the Light subroutine

    { digitalWrite(bulb, HIGH); //turn on the light
    digitalWrite(bulb1, HIGH); //turn on the light

    delay (3500); //wait 31.5 seconds 31500

    digitalWrite(bulb, LOW); //turn off the light
    digitalWrite(bulb1, LOW); //turn off the light

    }

  2. Euler Oliveira Autor às 14:50

    Olá Alessandro.

    Agradeço pelo comentário!

    Pode ser problema no sensor ou mau contato no esquema de ligação, pois a prática funciona e inclusive no final da mesma tem vídeo mostrando o resultado final.

  3. Leandro Lopes às 22:16

    Olá Tudo bem?

    Comprei um sensor HC-SDO4 para instalar na minha cisterna e controlar a quantidade de água com Arduino.

    está funcionando perfeitamente no protoboard com o sensor, até ai tudo certo.

    o Arduino fica a 4 metros da entrada da cisterna, onde passei um cabo manga de 4 vias e conectei o sensor em um local onde seco.

    quando conecto no Arduino, o sensor não responde mais. Estou usando alimentação de fonte com 9V e 1A.

    Vocês já tiveram alguma experiência parecida? o que vocês sugerem?

    Não sou profissional e faço isso somente por Hobby e a ajuda de vocês será fundamental para esse projeto

    Super obrigado

  4. Beatriz Prado Martins às 11:01

    Olá

    Eu fui fazer o teste e a programação desta linha está errada
    distancia = (ultrasonic.Ranging(CM)); //VARIÁVEL GLOBAL RECEBE O VALOR DA DISTÂNCIA MEDIDA

    • Euler Oliveira Autor às 14:04

      Olá Beatriz.

      Agradeço pelo comentário!

      Não tem nenhuma linha errada no código, até porque é tudo testado antes de disponibilizar aqui no Blog e no final da postagem tem o vídeo que mostra tudo funcionando perfeitamente.

  5. Diego Zeppe às 20:12

    Olá, no meu está aparecendo o erro “‘class Ultrasonic’ has no member named ‘Ranging'”
    Pode me ajudar? Obrigado desde já

    • Euler Oliveira Autor às 08:56

      Olá Diego.

      Agradeço pelo comentário!

      Provavelmente não instalou a biblioteca corretamente.

  6. Moisés Cruz às 19:21

    Eu estou iniciando um projeto que, detectaria se existe ou nao um objeto em um local, por exemplo, se existe um carro ou não em um determinado lugar.
    Será que esse sensor seria o ideal? ou existe outros mais adequados ?

    • Euler Oliveira Autor às 09:43

      Olá Alfredo.

      Agradeço pelo comentário!

      Vlw!!!