Sensor Ultrassônico HC-SR04

O Sensor ultrassônico HC-SR04 é capaz de medir distâncias de 2cm a 4m com uma ótima precisão.

Os sensores ultrassônicos funcionam enviando uma onda sonora em uma frequência acima do alcance da audição humana (por volta de 40kHz). Essa onda sonora viaja pelo ar e caso haja um objeto ou obstáculo em seu caminho, ela retornará esse sinal ao módulo.

Um sensor ultrassônico usa um transdutor para enviar e receber pulsos ultrassônicos que retransmitem informações sobre a proximidade de um objeto.

O transdutor do sensor atua como um microfone para receber e enviar o som ultrassônico. O sensor determina a distância até um alvo medindo os lapsos de tempo entre o envio e o recebimento do pulso ultrassônico.

Pinagem:

Pino VCC -> Ligado no 5v do Arduino. É o pino positivo do módulo.

Pino GND -> Ligado no GND do Arduino. É o pino negativo do módulo.

Pino Trig – > O pino Trigger pode ser ligado em qualquer um dos pinos digitais ou analógicos do Arduino e é configurado pelo código. Sua finalidade é enviar o pulso ultrassônico. 

Pino Echo- > Pode ser ligado em qualquer um dos pinos digitais ou analógicos do Arduino e é configurado pelo código. Sua finalidade é receber o pulso ultrassônico. 

Código de Exemplo

Para usar o módulo HC-SR04 com mais praticidade, é necessário incluir a Biblioteca Ultrasonic ao código.

#include “Ultrasonic.h” //INCLUSÃO DA BIBLIOTECA NECESSÁRIA PARA FUNCIONAMENTO DO CÓDIGO
 
const int echoPin = 7; //PINO DIGITAL UTILIZADO PELO HC-SR04 ECHO(RECEBE)
const int trigPin = 6; //PINO DIGITAL UTILIZADO PELO HC-SR04 TRIG(ENVIA)
 
Ultrasonic ultrasonic(trigPin,echoPin); //INICIALIZANDO OS PINOS DO ARDUINO
 
int distancia; //VARIÁVEL DO TIPO INTEIRO
 
void setup(){
  pinMode(echoPin, INPUT); //DEFINE O PINO COMO ENTRADA (RECEBE)
  pinMode(trigPin, OUTPUT); //DEFINE O PINO COMO SAIDA (ENVIA)
  Serial.begin(9600); //INICIALIZA A PORTA SERIAL
  }
 
void loop(){
  digitalWrite(trigPin, LOW); //SETA O PINO 6 COM UM PULSO BAIXO “LOW”
  delayMicroseconds(2); //INTERVALO DE 2 MICROSSEGUNDOS
  digitalWrite(trigPin, HIGH); //SETA O PINO 6 COM PULSO ALTO “HIGH”
  delayMicroseconds(10); //INTERVALO DE 10 MICROSSEGUNDOS
  digitalWrite(trigPin, LOW); //SETA O PINO 6 COM PULSO BAIXO “LOW” NOVAMENTE
  distancia = (ultrasonic.Ranging(CM)); //VARIÁVEL GLOBAL RECEBE O VALOR DA DISTÂNCIA MEDIDA
  //FUNÇÃO RANGING, FAZ A CONVERSÃO DO TEMPO DE
  //RESPOSTA DO ECHO EM CENTIMETROS, E ARMAZENA
  //NA VARIAVEL “distancia”.

  Serial.print(“Distancia: “);
  Serial.print(distancia);
  Serial.println(“cm”);
}