• COMPONENTE
    SENSOR ULTRASSÔNICO

O que é?

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 arduino
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

Abaixo temos um código exemplo que fará o Ultrassônico medir a distância que está de objetos em centímetros.

LISTA DOS COMPONENTES

  • 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