Arduino, Eletrônica, HC-SR04, Sensores

HC-SR04 Sensor Ultrassom

hc-sr04-s

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.

 

Funcionamento do sonar

Funcionamento do sonar

 

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.

  1. Vcc. –  +5v
  2. Trig. – este pino tem que receber um pulso para iniciar uma nova leitura (manda a plaquinha enviar um pulso ultrassônico)
  3. Echo – este pino irá para nível lógico alto(+5v) quando o pulso de ultrassom retornar.
  4. Gnd – negativo(0v)
Medidas do sensor HC-SR04

Medidas do sensor HC-SR04

Onde Comprar?

 

Imagem Descrição / links
Geekcreit® Ultrasonic Module HC-SR04 Distance Measuring Ranging Transducer Sensor DC 5V 2-450cm
Geekcreit® Arduino Compatible UNO R3 ATmega16U2 AVR USB Development Main Board
Geekcreit® UNO R3 ATmega328P Development Board For Arduino No Cable Geekcreit® UNO R3 ATmega328P Development Board For Arduino No Cable

Certo… como faço a interface com o Arduino ?

Exemplo Ultrasom Simples USB_bb

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.botao serial monitor

Mais Informações?