Arduino com sensor ultrasônico HC-SR04

Gunnar CorreaGunnar Correa02/05/2015 às 02:46:00 - 24.945 acessos

Arduino com sensor ultrasônico HC-SR04

Utilizando sensor ultrassônico com Arduino UNO e entendendo como funciona o componente.


Neste artigo será apresentado como conectar e verificar colisões utilizando o componente Sensor Ultrasônico HC-SR04, porém antes de começarmos, precisamos entender como ele funciona.

Sensores ultrassônicos são dispositivos que possibilitam detectar se há alguma interferência física em determinada ocasião, podemos compara-los com sensores de ré, que são instalados na parte traseira de um carro e através dele é possível informar para o manobrista a qual distancia está o objeto que poderá ser colidido, sendo que estas medidas são precisas.

O sensor que vamos trabalhar tem o mesmo objetivo, que pode variar uma distância de 2 cm a 400 cm (quatro metros), sendo que dependendo do local onde será aplicado, como em estúdios de gravação poderá interferir, por conter isolamento de eco.

Este sensor conta com quatro pinos que são eles:

VCC- Entrada de energia, podendo ser de 4,5V a 5V;
Trig – Trigger é o mesmo que Gatilho, este pino é a entrada do sensor;
Echo – Saída o sensor;
GND – Ground, terra .

HCSR04Ultrasonic

Para começarmos nosso projeto, precisamos fazer algumas ligações, aqui será utilizado três LED para representar a distância atual, que são Branco (< 10), Vermelho (< 20 && > 10) e Verde (> 20).

Para podemos usar o sensor, será necessário primeiramente fazer a instalação da biblioteca HCSR04Ultrasonic, isto não é nada complicado, apenas siga os procedimentos abaixo.

1 - Faça o Download da biblioteca, ela está disponível no final deste artigo.

2 – Descompacte a pasta que acabou de fazer o Download para dentro da pasta libraries onde encontra-se o executável do seu Arduino.

Descompactando pasta HCSR04Ultrasonic

3 – Com a IDE do Arduino em execução, clique no menu Sketch, repouse o mouse sobre a opção Importarbiblioteca e por fim clique em HCSR04Ultrasonic.

IDE do Arduino

Com a biblioteca instalada, precisamos agora fazer toda ligação dos LEDs e do Sensor na Protoboard. Para isto, fixe os LEDs na seguinte ordem na Protoboard, Branco, Vermelho e Verde e por final, fixe o Sensor.

Abaixo veja a ligação de cada pino dos LED do Sensor.

LEDBranco

Pino positivo: porta 7
Pino negativo: GND
 

LEDVermelho:

Pino positivo: porta 6
Pino negativo: GND

LEDVerde:

Pino positivo: porta 7
Pino negativo: GND
 

Sensor HC-SR-04

VCC – Entrada 5V;
Trig – Porta 8;
Echo – Porta 9;
GND – GND.


Leds, sensor, protoboard conectadas no Arduino Uno.

 

Veja toda a programação comentada no código abaixo, leia atentamente para que possa entender, não é absolutamente nada complicado.

 

Código 01:

#include  //Importamos a Biblioteca do sensor ao projeto.

  int branco   = 7; //Pino 7 será saída do LED Branco
  int vermelho = 6; //Pino 6 será saída do LED Vermelho
  int verde    = 5; //Pino 5 será saída do LED Verde
  Ultrasonic ultrasonic(8,9); //Instanciamos a biblioteca, 8 representa a porta do Trigger e 9  a porta do Echo

  long microSegundos = 0;
  float distanciaCentimetros = 0;

void setup() {
  Serial.begin(9600); //Iniciamos a porta serial com Baud Rate de 9600B (velocidade de trasnferência)
 
  pinMode(branco, OUTPUT); //Pino representando LED Branco.
  pinMode(vermelho, OUTPUT); //Pino representando LED vermelho.
  pinMode(verde, OUTPUT); //Pino representando LED verde.
}

void loop() {
   digitalWrite(branco, LOW); //Desligamos o LED Branco
   digitalWrite(vermelho, LOW); //Desligamos o LED Vermelho
   digitalWrite(verde, LOW); //Desligamos o LED Verde
  
  microSegundos = ultrasonic.timing(); 
  /*
    Obtem o tempo de retorno do Echo.
    Leia mais informações: http://forum.arduino.cc/index.php?topic=37712.0
  */
 
  //Converte de segundos para centimtros.
  distanciaCentimetros = ultrasonic.convert(microSegundos, Ultrasonic::CM); 
  
  //Já temos o valor em CM, agora basta usar o IF para fazer a compração, poderiamos até verificar se for menor X distância disparar um Buzzer.
  if(distanciaCentimetros < 10){ //Se a distância for menor que 10 cm...
    digitalWrite(branco, HIGH); //Ligamos LED Branco
  }
  
  if(distanciaCentimetros > 10 && distanciaCentimetros < 20){
     //Se a distância for maior que 10 cm e menor que 20 cm...
    digitalWrite(vermelho, HIGH); //Ligamos LED Vermelho
  }
  
  if(distanciaCentimetros > 20){ //Se a distância for maior que 20 cm...
    digitalWrite(verde, HIGH); //Ligamos LED Verde
  }
  
    Serial.print(distanciaCentimetros); //Imprime na porta serial qual é atual distância de uma colisão
    Serial.println(" CM"); //Imprime espaço e CM, não podemos concatenar com o valor acima.
    delay(500);  //Aguarda um meio segundo para finalizar o método
}

Neste exemplo usamos uma comunicação serial para exibir através do Monitor serial presente na IDE a distância que está sendo calculada. O botão do Monitor serial está no canto superior direito da tela, basta dar um clique para uma nova janela abrir.

 

Comunicação serial exibindo através do Monitor serial na IDE

Veja abaixo algumas imagens do nosso Projeto.

Teste dos LEDs


Testando os LEDs no Arduino com o Sesor de distância

 

Ligação dos componentes


Ligação dos componentes do sensor no Arduino

 

Espero que tenham entendido, em caso de dúvidas, deixem nos comentários e confira o vídeo do resultado final logo abaixo.

Até a próxima!

 



Arduino Uno Sensor Ultrasônico Ultrasonic HC-SRO4 Componente Desenvolvimento Hardware Robôs LED Jumper Protoboard

Compartilhe


Gunnar Correa

Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web (FIPP), Especialista em Tecnologias na Educação (Unoeste) e Pós-graduando em Segurança da Informação (Universidade Cruzeiro do Sul). Começou seus estudos na área de programação quando era criança, e atualmente está estudando desenvolvimento de jogos. É CEO do portal SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.



Site atualizado

Olá, nosso site recebeu uma nova atualização e por conta disso, alguns artigos ainda estão sendo atualizados. Dependendo do conteúdo que você procura, poderá encontrar imagens e trechos de códigos mal formatados.

Estamos trabalhando para normalizar todos os conteúdos, muito em breve, esse problema não mais existirá.


Comentários