14 - Aplicação : sensor de distância HC-SR04

O sensor HC-SR04 permite detectar objetos que lhe estão distantes entre 2 cm e 500 cm com uma resolução de 0,3 cm. Estes sensores emitem um sinal ultrasônico que reflete num objeto e retorna ao sensor. O sinal de retorno é captado, permitindo-se deduzir a distância do objeto ao sensor tomando o tempo de trânsito do sinal.

O velocidade do sinal ultrasônico é de aproximadamente 340 m/s no ar, assim, se o sensor estiver a uma distância d do objeto, o sinal percorrerá uma distância equivalente a 2d para sair e retornar ao sensor, conforme figura abaixo:



Dessa forma, o tempo que o sinal leva para sair e retornar ao sensor permite calcular a distância d pela equação:  



Na figura abaixo é visualizado o sensor HC-SR04. Nele são encontrados 4 pinos de conexão que da direita para a esquerda são respectivamente :
  • VCC : alimentação de 5V
  • TRIG : pino de gatilho
  • ECHO : pino de eco
  • GND : terra


O pino TRIG normalmente deve estar em nível baixo. Para iniciar uma leitura de distância, o mesmo deve ser colocado em nível alto por 10us e retornar para nível baixo em seguida. Neste momento, 8 pulsos de 40kHz são emitidos e no pino ECHO será gerado um sinal em nível alto proporcional à distância do sensor ao objeto. Em seguida, basta verificar o tempo em que o pino ECHO permaneceu em nível alto e utilizar a fórmula abaixo para obter a distância:


A biblioteca Ultrasonic para o arduino facilita o cálculo da distância. Basta descompactá-la e copiar a pasta "Ultrasonic" para o diretório "libraries" do ambiente arduino. Um exemplo de utilização da biblioteca segue abaixo, onde o pino digital 12 foi conectado ao TRIG e o pino 13 ao ECHO.

#include "Ultrasonic.h"

Ultrasonic ultrasonic(12,13); // TRIG = pino 12     ECHO = pino 13

void setup() {
   Serial.begin(9600);
}

void loop()
{
   Serial.print("distancia em centimetros : ");
   Serial.println(ultrasonic.Ranging(CM));
   delay(1000);
}


Para monitorar as distâncias amostradas, basta pressionar o botão "Serial Monitor" no ambiente arduino para obter uma tela similar a:


Nenhum comentário:

Postar um comentário