Site icon AranaCorp

Medição de distância com um sensor HC-SR04

distance sensor hcsr04 arduino wiring

O HC-SR04 é um sensor ultrassônico que mede distâncias por meio de raios ultrassom. Seu princípio é o mesmo que o de um sonar, ou seja, ele emite um sinal sonoro e calcula o tempo entre a emissão e a recepção do eco.

Material

Princípio de funcionamento

O módulo HC-SR04 é composto de um emissor e um receptor por ultrassom. O emissor envia ondas sonoras quando recebe um sinal do comando trigger. Essas ondas são refletidas ao encontrarem um obstáculo. O emissor detecta as ondas refletidas e devolve um sinal para o pino Echo.

Obs: Algumas superfícies possuem maior capacidade de reflexão de ondas sonoras do que outras. Escolha bem o seu sensor em função de como pretende usá-lo.

Esquema de ligação

Código

De acordo com as especificações do sensor, o HC-SR04 pode medir distâncias de 2 a 400 cm. Para isso, precisa enviar um pulso de 10µs para o pino Trigger e medir a duração do pulso de saída no pino Echo (usar pulseIn()). Esta duração dividida por 58 nos dá a distância em centímetros.

#define trigPin 3 
#define echoPin 2

long distance;
long duration; 

void setup() { 
  Serial.begin(9600); 
  pinMode(trigPin, OUTPUT); 
  pinMode(echoPin, INPUT); 
  } 
  
  void loop() { 
    distance=readUltrasonicSensor();
    if (distance >= 400 || distance <= 0){ 
      Serial.println("Unknown value"); } 
    else { 
      Serial.print(distance); 
      Serial.println(" cm"); 
      } 
      delay(500);// delay in milliseconds 
 } 

long readUltrasonicSensor(){ 
  // Send 10µs pulse 
  digitalWrite(trigPin, HIGH); 
  delayMicroseconds(10); 
  digitalWrite(trigPin, LOW); 
  // Read pulse duration 
  duration = pulseIn(echoPin, HIGH); 
  Serial.println(duration); //Convert and return value 
  return duration/ 58; 
}

Obs. Dependendo da versão e do fornecedor do seu sensor, os parâmetros de medição (alcance, conversão) podem ser diferentes. Verifique as informações técnicas do seu equipamento.

Biblioteca

Para simplificar o código, é possível criar uma biblioteca ou baixar e instalar a biblioteca SR04.h (by mrRobot62). O código pode então ser reescrito da seguinte forma:

#include "SR04.h"
#define TRIG_PIN 3
#define ECHO_PIN 2
#define LOOPDELAY 1000

SR04 hcsr04 = SR04(ECHO_PIN,TRIG_PIN);
long distance;

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

void loop() {
   distance=hcsr04.Distance();
   Serial.print(distance);
   Serial.println("cm");
   delay(LOOPDELAY);
}

Aplicação

Fontes

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie

Exit mobile version