O que é o sensor HC-SR04 ?
O HC-SR04 é um sensor ultrassônico o qual utiliza pulsos sonoros para determinar a distância para um objeto, usando o mesmo principio dos morcegos. Ele oferece uma excelente precisão e leituras estáveis e tudo isso em uma simples plaquinha. Como pode-se esperar dos ultrassons ele não é afetado pela luz (do sol ou ambiente) e nem falha ao se colocar um material escuro em sua frente(feito os sensores ópticos ex.: sensor infravermelho Sharp) em compensação materiais “acústicos” podem dificultar as leituras do sensor.
Características Técnicas?
- Alimentação: 5v DC
- Corrente de trabalho: <2mA
- Ângulo Efetivo: <15° (ângulo que o sensor “enxerga” objetos)
- Distância de Trabalho : 2cm até 500cm
- Resolução : 0.3 cm
Ele possui 4 pinos, sendo 2 de alimentação e dois de comando.
- Vcc. – +5v
- Trig. – este pino tem que receber um pulso para iniciar uma nova leitura (manda a plaquinha enviar um pulso ultrassônico)
- Echo – este pino irá para nível lógico alto(+5v) quando o pulso de ultrassom retornar.
- Gnd – negativo(0v)
Onde Comprar?
Certo… como faço a interface com o Arduino ?
E agora o código para testar:
/*
HC-SR04
VCC ligado ao 5V do Arduino, GND no pino GND do arduino
Echo ligado ao pino 12 do Arduino e o Trig no pino 13 do Arduino
*/
#define trigPin 13 //definindo que onde aparecer “trigPin” o Arduino entenda como “13”
#define echoPin 12 //definindo que onde aparecer “echoPin” o Arduino entenda como “12”
long tempo, distancia; //declarando as variáveis que vamos utilizar
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
digitalWrite(trigPin, LOW); // garante que o pino de trigger esteja baixo (0v)
delayMicroseconds(2); // Aguardamos 2us e ligamos o pino trigger (5v)
//agora vamos gerar um pulso de 10microsegundos no pino de trigger
digitalWrite(trigPin, HIGH); //setamos o pino do trigger (5v)
delayMicroseconds(10); // esperamos 10us em 5V
digitalWrite(trigPin, LOW); //retornamos ao 0v
tempo = pulseIn(echoPin, HIGH); //esta função “pulseln” vai retornar quantos us passaram //desde a emissão do pulso até o retorno do sinal.
// A velocidade do som é de 340 m/s ou 29.1 microssegundos por centimetro.
distancia = (tempo/2) / 29.1;
//testando se a distancia medida está aceitável
if (distancia >= 400 || distancia <= 0){
Serial.println(“Fora de escala”);
}
else {
Serial.print(distancia);
Serial.println(” cm”);
}
delay(500); //aguardamos 0,5 segundos para fazer uma nova leitura
}
Testando:
Após abrir a IDE do Arduino e fazer o upload para sua arduino. Clique no ícone de “serial monitor” que nesse momento deverá aparecer as medidas realizadas pela placa.