Ultrassom HC-SR04

A comunicação I2C simplifica a comunicação entre dispositivos

O Sensor Ultrassônico HC-SR04 é um componente muito comum em projetos com Arduino, e permite que você faça leituras de distâncias entre 2 cm e 4 metros, com precisão de 3 mm. Pode ser utilizado simplesmente para medir a distância entre o sensor e um objeto, como para acionar portas do microcontrolador, desviar um robô de obstáculos, acionar alarmes, etc. Neste tutorial ensinaremos a conectar o HC-SR04 ao Arduino.

O funcionamento do HC-SR04 se baseia no envio de sinais ultrassônicos pelo sensor, que aguarda o retorno (echo) do sinal, e com base no tempo entre envio e retorno, calcula a distância entre o sensor e o objeto detectado.


Primeiramente é enviado um pulso de 10µs, indicando o início da transmissão de dados. Depois disso, são enviado 8 pulsos de 40 KHz e o sensor então aguarda o retorno (em nível alto/high), para determinar a distância entre o sensor e o objeto, utilizando a equação Distância = (Tempo echo em nível alto * velocidade do som) /2

HC-SR04 Serial
const int trigPin = 5;
const int echoPin = 4;

long duration;
float distance;

void setup() {
    pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
    pinMode(echoPin, INPUT);  // Sets the echoPin as an Input
    Serial.begin(9600);       // Starts the serial communication
}
void loop() {
    digitalWrite(trigPin, LOW);  // Clears the trigPin
    delayMicroseconds(2);
    digitalWrite(trigPin, HIGH); // Sets the trigPin on HIGH state for 10 micro seconds
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
    
    duration = pulseIn(echoPin, HIGH); // Reads the echoPin, returns the sound wave travel time in microseconds
    distance = duration * 0.034 / 2;   // Calculating the distance
    
    Serial.print("Distance: ");        // Prints the distance on the Serial Monitor
    Serial.print(distance, 2);
    Serial.println(" cm");
    delay(1000);
}
                                

Os dados são mostrados no serial monitor: