Logo SatellaSoft



Arduino com sensor ultrasônico HC-SRO4

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


Ícone homem Gunnar Correa
Ícone data de publicação 02/05/2015
Ícone quantidade de visualização 11,867
Ícone bandeira do Brasil Português

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 .

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.

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

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.

LED Branco

Pino positivo: porta 7
Pino negativo: GND
 

LED Vermelho:

Pino positivo: porta 6
Pino negativo: GND

LED Verde:

Pino positivo: porta 7
Pino negativo: GND
 

Sensor HC-SR-04

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



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.

 


Veja abaixo algumas imagens do nosso Projeto.

Teste dos LEDs

 

Ligação dos componentes

 

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!

 



Downloads


Biblioteca Sensor Ultrasônico Arduino


Biblioteca Sensor Ultrasônico Arduino

Tamanho: 7KB

Data de upload: 01/05/2015

Tipo de arquivo: .zip

Quantidade de download: 1,713


Biblioteca para o Sensor Ultrasônico HC-SR04.

Você precisa estar autenticado para fazer o Download. Clique Aqui para ser redirecionado a página de login.





Sobre o autor


Gunnar Correa

Nome: Gunnar Correa

Site: http://www.gunnarcorrea.com


Autodidata, graduado em Desenvolvimento Web e aluno de pós-graduação em Tecnologias na Educação em uma universidade no interior de São Paulo. Comecei meus estudos na área de programação quando ainda era criança, e atualmente estou estudando desenvolvimento de jogos.

Sou fundador do portal SatellaSoft dentre outros projetos. Nas minhas horas livres quando não estou com meus amigos, estou fazendo alguns cursos.


Comentários



É necessário estar autenticado para comentar, clique aqui para se registrar ou aqui para acessar a sua conta!