• COMPONENTE

    SENSOR
    ULTRASSÔNICO
    HC-SR04

    Sensor Ultrassônico

O que é um sensor ultrassônico?

O sensor ultrassônico é capaz de detectar objetos e medir suas proximidades com precisão. Isso é possível graças a um receptor e um emissor de ondas sonoras que o compõem. Ambos trabalham com ondas de alta frequência (faixa de 40.000 Hz), as quais os ouvidos humanos não são capazes de detectar.

Após a colisão do sinal emitido ao alvo, o mesmo é refletido de volta na direção do sensor, o tempo levado durante este processo é marcado pelo cronômetro embutido no próprio sensor e dessa forma é possível saber quanto tempo o sinal levou desde a sua emissão até o seu retorno.

A partir disso, é possível descobrir a distância entre o sensor e o obstáculo, tendo em vista que tempo é igual à distância dividida pela velocidade: d = ( V * t ) / 2. A divisão por dois existe pois o tempo medido pelo sensor é na realidade o tempo para ir e voltar, ou seja, duas vezes a distância que desejamos descobrir. O sensor possui quatro pinos, sendo dois deles utilizados para alimentação do sensor (VDD e GND), outro utilizado para disparar o sinal ultrassônico (TRIG) e outro para medir o tempo que ele leva para retornar ao sensor (ECHO).

Sensor ultrassonico HC-SR04
Sensor ultrassonico arduino

Propriedades

O sensor ultrassônico HC-SR04 consegue detectar a distancia entre um alvo, que esteja acima de 2cm, e abaixo de 4m. Ele deve estar na linha de visão direta da superfície do objeto para receber um eco sonoro adequado.

Montagem dos componentes

Logo abaixo temos a lista de componentes utilizado neste exemplo, e sua ligação com o Arduino.

  • 1 x Arduino Uno SMD
  • 1 x Cabo USB para comunicação
  • 1 x Protoboard 400 pontos
  • 1 x Sensor ultrassônico HC-SR04
  • 4 x Jumpers macho/macho
Esquema montagem ultrassonico reflexívo

Código exemplo

O código de exemplo abaixo é referente ao esquema ilustrado acima.

IDE Arduino

// baixar biblioteca ‘Ultrassonic’

#include "Ultrasonic.h" //inclusão da biblioteca necessária

const int echoPin = 13; //pino digital utilizado pelo echo(recebe)
const int trigPin = 12; //pino digital utilizado pelo trig(envia)

Ultrasonic ultrasonic(trigPin,echoPin); //inicializando os pinos do arduino

int distancia; //variável inteira
String result; //variável string

void setup(){
pinMode(echoPin, INPUT); //define o echoPin como entrada
pinMode(trigPin, OUTPUT); //define o trigPin como saida
Serial.begin(9600); //inicia a transmissao para monitor serial
}

void loop(){

hcsr04(); // faz a chamada do método "hcsr04()"

//imprime a distancia no monitor serial
Serial.print("Distancia= ");
Serial.print(result);
Serial.println("cm");
}

//método responsável por calcular a distância
void hcsr04(){
digitalWrite(trigPin, LOW); //seta o pino 12 com um pulso baixo "low"
delayMicroseconds(2); //intervalo de 2 microssegundos
digitalWrite(trigPin, HIGH); //seta o pino 12 com pulso alto "high"
delayMicroseconds(10); //intervalo de 10 microssegundos
digitalWrite(trigPin, LOW); //seta o pino 12 com pulso baixo "low" novamente

distancia = (ultrasonic.Ranging(CM)); //função ranging, faz a conversão para centimetros, e armazena na variavel "distancia"

result = String(distancia); //variável result recebe a distância convertido de inteiro para string
delay(500); //intervalo de 500 milissegundos
}

IDE Arduino