norr@manorshi.com         +86-519-89185720
1
Central de Notícias

Como usar sensor ultrassônico com Arduino?

Visualizações: 164     Autor: Grace Tempo de publicação: 2021-07-26 Origem: Site

botão de compartilhamento do Facebook
botão de compartilhamento do Twitter
botão de compartilhamento de linha
botão de compartilhamento do wechat
botão de compartilhamento do LinkedIn
botão de compartilhamento do Pinterest
botão de compartilhamento do WhatsApp
botão de compartilhamento kakao
botão de compartilhamento do snapchat
botão de compartilhamento de telegrama
compartilhe este botão de compartilhamento

Como usar o sensor ultrassônico com Arduino: Guia HC-SR04

O O sensor ultrassônico HC-SR04 é um dos módulos de medição de distância mais populares para projetos Arduino. É amplamente utilizado em robôs para evitar obstáculos, sensores de estacionamento, detecção de nível, lixeiras inteligentes, medidores de distância e outras aplicações de detecção sem contato.

O módulo emite ondas ultrassônicas de 40kHz através de um transmissor. Quando a onda sonora encontra um objeto, ela é refletida de volta para o receptor. Medindo o tempo de eco e usando a velocidade do som, o Arduino pode calcular a distância entre o sensor e o objeto.

Módulo de sensor ultrassônico HC-SR04 para medição de distância Arduino

Parâmetros técnicos principais HC-SR04

Parâmetro Valor
Tensão de trabalho típica 5V CC
Corrente de trabalho estática Menos de 5mA em algumas versões do módulo
Frequência operacional Onda ultrassônica de 40kHz
Distância de detecção Faixa comum: 2cm a 400cm; algumas versões com ajuste de ganho podem suportar alcance mais longo.
Ângulo de detecção Geralmente dentro de 15 graus; algumas versões com maior ganho podem chegar a cerca de 30 graus.
Precisão Até cerca de 0,3 cm sob condições de teste adequadas
Zona cega Cerca de 2 cm de distância mínima de medição

Descrição do pino HC-SR04

O módulo ultrassônico HC-SR04 possui quatro pinos: VCC, TRIG, ECHO e GND. O Arduino envia um pulso curto de disparo para o pino TRIG e, em seguida, lê o pulso de retorno do pino ECHO.

Pino HC-SR04 Conexão Arduino Função
CCV 5V Fonte de alimentação para o módulo ultrassônico.
TRIGO Pino digital 9 Entrada de gatilho. O Arduino aplica um pulso de 10us para iniciar o alcance.
ECO Pino digital 10 Saída de eco. O Arduino lê a largura do pulso para calcular a distância.
GND GND Conexão à terra.

Pinagem do sensor ultrassônico HC-SR04 VCC TRIG ECHO GND

Princípio de funcionamento do sensor ultrassônico HC-SR04

O HC-SR04 funciona através da medição do tempo de voo. O Arduino envia um sinal de disparo de alto nível de pelo menos 10 microssegundos para o pino TRIG. O módulo então envia automaticamente oito pulsos ultrassônicos de 40kHz e aguarda o eco refletido.

Quando o sinal ultrassônico refletido é detectado, o pino ECHO emite um pulso de alto nível. A duração deste pulso é o tempo de viagem de ida e volta da onda ultrassônica.

Distância = Tempo de alto nível do eco × Velocidade do som / 2

No código Arduino, a fórmula simplificada comum é:

Distância em cm = duração × 0,0343/2

Princípio de funcionamento do tempo de vôo do módulo ultrassônico HC-SR04

Diagrama de temporização do módulo ultrassônico HC-SR04

O processo de temporização é simples: o Arduino mantém o TRIG baixo brevemente, envia um pulso alto de 10us e depois retorna o TRIG para baixo. O HC-SR04 envia uma explosão ultrassônica e define o ECHO como alto até que o sinal refletido retorne ou o tempo de medição expire.

Para evitar leituras instáveis, deixe um pequeno atraso entre as medições. Um ciclo de medição de cerca de 60 ms é comumente usado para que o eco ultrassônico anterior tenha tempo de desaparecer antes do próximo disparo.

Noções básicas de programação do Arduino: função pulseIn

A função Arduino pulseIn() é usada para medir quanto tempo um pino digital permanece ALTO ou BAIXO. Para HC-SR04, o Arduino usa pulseIn(echoPin, HIGH) para ler a largura de pulso de alto nível do pino ECHO.

Sintaxe Significado
pulseIn(pino, valor) Lê a duração de um pulso ALTO ou BAIXO.
pulseIn(pino, valor, tempo limite) Lê o pulso com um valor de tempo limite em microssegundos.

É recomendado usar um tempo limite. Se nenhum eco for retornado, a função poderá parar de esperar e retornar 0 em vez de bloquear o programa por muito tempo.

Placa Arduino usada com sensor de distância ultrassônico HC-SR04

Como conectar o sensor ultrassônico HC-SR04 ao Arduino

A fiação é simples. Conecte VCC a 5V, GND a GND, TRIG a um pino de saída digital do Arduino e ECHO a um pino de entrada digital do Arduino. O exemplo a seguir usa Arduino Uno, TRIG no pino 9 e ECHO no pino 10.

Diagrama de fiação da placa de ensaio Arduino Uno para sensor ultrassônico HC-SR04

Código Arduino do sensor ultrassônico HC-SR04

O seguinte programa típico do Arduino envia um pulso de disparo de 10us, lê a largura do pulso ECHO, calcula a distância em centímetros e imprime o resultado no Monitor Serial.

const int trigPin = 9; const int echoPin = 10; longa duração; distância flutuanteCm; void setup() { pinMode(trigPin, OUTPUT);   pinMode(echoPin, INPUT);   Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW);   atrasoMicrossegundos(2);   digitalWrite(trigPin, ALTO);   atrasoMicrossegundos(10);   digitalWrite(trigPin, LOW);   duração = pulseIn(echoPin, HIGH, 30000);   if (duração == 0) { Serial.println('Fora do intervalo');   } else { distânciaCm = duração * 0,0343/2;     Serial.print('Distância: ');     Serial.print(distânciaCm);     Serial.println(' cm');   } atraso(60); }

Se você visualizar valores de distância no Monitor Serial, o sensor ultrassônico HC-SR04 e a fiação do Arduino estão funcionando corretamente. Você pode então usar os dados de distância para detecção de obstáculos, controle de movimento do robô, portas automáticas, lembretes de estacionamento ou projetos de nível de líquido.

Programa de alcance do sensor ultrassônico Arduino HC-SR04

Como melhorar a precisão da medição HC-SR04

  • Mantenha o objeto medido dentro da faixa de distância recomendada e fora da zona cega de 2 cm.

  • Use uma superfície alvo plana e sólida para melhor reflexão ultrassônica.

  • Evite medir materiais macios, angulares, porosos ou que absorvem som.

  • Use uma fonte de alimentação estável de 5 V e mantenha a fiação curta e segura.

  • Adicione um tempo limite a pulseIn() para evitar bloqueios longos quando nenhum eco retornar.

  • Filtre a média ou a mediana de várias leituras para reduzir o ruído.

  • Para maior precisão, compense a temperatura porque a velocidade do som muda com a temperatura do ar.

Aplicações comuns de projetos de sensores ultrassônicos Arduino

Aplicativo Como o HC-SR04 é usado
Robô para evitar obstáculos Detecta objetos próximos e ajuda o robô a mudar de direção.
Sensor de distância de estacionamento Mede a distância entre o veículo e um obstáculo.
Detecção de nível de líquido Mede a distância do sensor à superfície do líquido sem contato.
Lixeira inteligente Detecta uma mão ou objeto próximo e aciona a abertura automática da tampa.

Resumo

Para usar um sensor ultrassônico HC-SR04 com Arduino, conecte VCC a 5V, GND a GND, TRIG a um pino de saída digital e ECHO a um pino de entrada digital. Envie um pulso de disparo de 10us, leia a duração do eco com pulseIn() e calcule a distância com a fórmula do tempo de voo.

O HC-SR04 é barato, fácil de usar e adequado para muitos projetos de medição de distância do Arduino. Para obter melhores resultados, preste atenção à superfície do alvo, ângulo de medição, zona cega, potência estável, tratamento de tempo limite e efeitos de temperatura.

Perguntas frequentes sobre o sensor ultrassônico HC-SR04 Arduino

Como o sensor ultrassônico HC-SR04 funciona com Arduino?

O Arduino envia um pulso de 10us para o pino TRIG. O HC-SR04 emite oito pulsos ultrassônicos de 40kHz e ajusta o pino ECHO para alto até que o som refletido retorne. O Arduino mede esse tempo de pulso e calcula a distância.

Qual é a fórmula de distância para projetos Arduino HC-SR04?

A fórmula é distância = duração × velocidade do som / 2. Em centímetros, uma fórmula comum do Arduino é distânciaCm = duração × 0,0343 / 2, onde a duração é medida em microssegundos.

Por que dividimos o resultado do sensor ultrassônico por 2?

O tempo de eco medido é o tempo de ida e volta do sensor ao objeto e de volta ao sensor. Dividir por 2 dá a distância unidirecional entre o sensor e o objeto.

Quais pinos do Arduino devo usar para TRIG e ECHO?

Você pode usar a maioria dos pinos digitais do Arduino. Em muitos exemplos, TRIG está conectado ao pino digital 9 e ECHO está conectado ao pino digital 10. O código deve corresponder aos pinos usados ​​na sua fiação.

Por que meu sensor ultrassônico HC-SR04 retorna zero ou valores aleatórios?

As causas comuns incluem fiação solta, alimentação de 5 V instável, números de pinos TRIG ou ECHO incorretos, nenhum objeto no alcance, superfícies de alvo angulares, materiais macios, cabeças de sensor bloqueadas ou nenhum tempo limite na função pulseIn().

Qual é a zona cega do sensor ultrassônico HC-SR04?

A zona cega é a distância mínima onde o módulo não pode medir de forma confiável. Para o HC-SR04, a zona cega é geralmente de cerca de 2 cm. Objetos mais próximos do que isso podem produzir leituras instáveis.

O HC-SR04 pode medir o nível de água com Arduino?

Sim, o HC-SR04 pode ser usado para projetos simples de nível de água sem contato se o sensor estiver protegido contra umidade e montado acima da superfície do líquido. Para tanques úmidos, externos ou industriais, recomenda-se um sensor ultrassônico à prova d'água.

Como posso tornar as leituras dos sensores ultrassônicos do Arduino mais estáveis?

Use uma fonte de alimentação estável, mantenha o sensor perpendicular ao alvo, evite superfícies macias ou angulares, adicione o tempo limite do pulseIn, faça múltiplas leituras, use filtragem mediana e aguarde cerca de 60 ms entre as medições.

Índice