HC-SR04: tudo sobre o sensor ultrassônico

Sensor HC-SR04

Às vezes é necessário Medir distâncias e para isso tem à sua disposição diversos sensores. Já dedicamos um artigo para falar sobre um sensor de distância de alta precisão, como o VL52L0X. Este sensor era do tipo ToF e se baseava em medições muito precisas graças ao seu laser. Mas se a precisão não é tão importante para você e você quer algo que lhe permite medir distâncias a um preço baixo, outra possibilidade que que você tem na ponta dos dedos é o HC-SR04.

No caso de Sensor de distância HC-SR04, a distância é medida por ultrassom. O sistema é semelhante ao método óptico do VL52L0X. Ou seja, ele é emitido, há um salto e ele é recebido, mas nesse caso em vez de ser um laser ou infravermelho, é ultrassom. Se você é apaixonado por eletrônica, robótica ou fabricante amador, pode usá-lo para uma infinidade de projetos DIY, como sistemas de detecção de obstáculos para robôs, sensores de presença, etc.

O que é HC-SR04?

Bem, é óbvio, como já comentei nos parágrafos anteriores, O HC-SR04 é um sensor de distância de baixa precisão baseado em ultrassom. Com ele permite medir distâncias de forma simples e rápida, embora em princípio não seja utilizado para isso. Na maioria das vezes, é usado como um transdutor para detectar obstáculos e evitá-los por meio de outros mecanismos associados à resposta do sensor.

A aparência do HC-SR04 é muito distinto e facilmente reconhecível. Além disso, é um item muito popular nos kits iniciais do Arduino e necessário para uma infinidade de projetos. É facilmente identificado porque possui dois "olhos" que são na verdade os dispositivos de ultrassom que este módulo integra. Um deles é um emissor de ultrassom e o outro um receptor. Ele funciona a uma frequência de 40 Khz, portanto, é inaudível para os humanos.

Princípios do sensor ultrassônico

O princípio em que É baseado na simulação daquele usado quando você joga uma pedra em um poço para medir sua profundidade. Você joga a pedra e calcula quanto tempo leva para ela cair no fundo. Em seguida, você faz cálculos da velocidade para o tempo decorrido e obtém a distância que a pedra percorreu. Mas, nesse caso, o sensor é você.

ESP8266
Artigo relacionado:
ESP8266: o módulo WIFI para Arduino

No HC-SR04, o emissor irá emitir ultrassons e quando eles ricochetearem em um objeto ou obstáculo no caminho serão capturados pelo receptor. O circuito fará os cálculos necessários desse eco para determinar a distância. Isso também pode ser familiar para você se você conhece o sistema que alguns animais, como golfinhos, baleias ou morcegos usam para localizar obstáculos, presas, etc.

Contando o tempo desde o envio do pulso até o recebimento da resposta, o tempo e, portanto, a distância podem ser determinados com precisão. Lembra que [Espaço = tempo de velocidade] pero en el caso del HC-SR04 deberá dividir esta cantidad entre /2, ya que se ha medido el tiempo desde que sale el ultrasonido y recorre el espacio hasta impactar con el obstáculo y el camino de vuelta, así que será aproximadamente de la mitad Deste…

Pinagem e folhas de dados

Você já sabe que para ver os dados completos do modelo que adquiriu, o melhor é encontre a folha de dados concreto do fabricante. Por exemplo, aqui está um Folha de dados do Sparkfun, mas existem muitos mais disponíveis em PDF. No entanto, aqui estão os dados técnicos mais importantes do HC-SR04:

  • Pinagem: 4 pinos para alimentação (Vcc), gatilho (Trigger), receptor (Echo) e aterramento (GND). O gatilho indica quando o sensor deve ser acionado (quando o ultrassom é lançado), e assim será possível saber o tempo decorrido até que o receptor receba o sinal.
  • Alimentação: 5v
  • Freqüência de ultrassom: 40 kHz, o ouvido humano só consegue ouvir de 20 Hz a 20 kHz. Tudo abaixo de 20 Hz (infra-som) e acima de 20 KHz (ultra-som) não será perceptível.
  • Consumo (em espera): <2mA
  • Consumo funcionando: 15mA
  • Ângulo efetivo: <15º, dependendo dos ângulos dos objetos você pode ter resultados melhores ou piores.
  • Distância medida: de 2cm a 400cm, embora a partir de 250cm a resolução não seja muito boa.
  • Resolução média: Variação de 0.3 cm entre a distância real e a medição, portanto, apesar de não serem consideradas altamente precisas como o laser, as medições são bastante aceitáveis ​​para a maioria das aplicações.
  • Preço: desde cerca de € 0,65

Integração com Arduino

HC-SR04 com Arduino

Pára conectá-lo ao Arduino não poderia ser mais fácil. Você só precisa se encarregar de conectar o GND na saída correspondente do seu Arduino marcado como tal, Vcc com a fonte de alimentação do Arduino 5v e os outros dois pinos do HC-SR04 com as entradas / saídas escolhidas para o seu projeto. Você pode ver que é simples no esquema de Fritzing superior ...

Você apenas tem que ter uma consideração, que o tigre deve receber um pulso elétrico de pelo menos 10 microssegundos para ativar corretamente. Anteriormente, você deve se certificar de que o valor é BAIXO.

Quanto a código para Arduino IDE, você não precisa usar nenhuma biblioteca ou algo parecido com outros componentes. Basta fazer a fórmula para calcular a distância e pouco mais ... Claro, se você quiser que seu projeto faça algo em resposta à medição do sensor HC-SR04, terá que adicionar o código que você precisa. Por exemplo, ao invés de simplesmente mostrar as medições no console, você pode fazer os servomotores se moverem em uma direção ou outra por certas distâncias para evitar o obstáculo, ou para um motor parar, um alarme para ser ativado quando detecta proximidade, etc. .

 Mais informações sobre programação: Manual do Arduino (PDF grátis)

Por exemplo, você pode ver este código básico para usar como base:

//Define las constantes para los pines donde hayas conectado el pin Echo y Trigger
const int EchoPin = 8;
const int TriggerPin = 9;
 
void setup() {
   Serial.begin(9600);
   pinMode(TriggerPin, OUTPUT);
   pinMode(EchoPin, INPUT);
}

//Aquí la muestra de las mediciones
void loop() {
   int cm = ping(TriggerPin, EchoPin);
   Serial.print("Distancia medida: ");
   Serial.println(cm);
   delay(1000);
}

//Cálculo para la distancia
int ping(int TriggerPin, int EchoPin) {
   long duration, distanceCm;
   
   digitalWrite(TriggerPin, LOW);  //para generar un pulso limpio ponemos a LOW 4us
   delayMicroseconds(4);
   digitalWrite(TriggerPin, HIGH);  //generamos Trigger (disparo) de 10us
   delayMicroseconds(10);
   digitalWrite(TriggerPin, LOW);
   
   duration = pulseIn(EchoPin, HIGH);  //medimos el tiempo entre pulsos, en microsegundos
   
   distanceCm = duration * 10 / 292/ 2;   //convertimos a distancia, en cm
   return distanceCm;
}


Um comentário deixe o seu

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Jose dito

    Achei a explicação muito útil e simples.