fbpixel
Etiquetas: , , ,
0
(0)

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

  • Computador
  • Arduino UNO
  • Cabo USB para ligar o Arduino ao computador
  • Sensor de distância ultrassônico HC-SR04

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

HC-SR04 arduino schematics

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

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?