Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

Medição Precisa de Distância Ultrassônica com Arduino – Guia Passo a Passo

Projeto de Medição de Distância Ultrassônica usando Arduino

A medição de distância ultrassônica é uma ferramenta útil em várias aplicações ultimamente. Pode ser usada em diversas aplicações como posicionamento, localização, dimensionamento, seleção, medição de nível, controle e criação de perfis. Fazendo alguns cálculos matemáticos com os valores de saída, também podemos medir a velocidade e várias outras dimensões físicas. O dispositivo também tem aplicações na área de robótica.

Mantendo estas aplicações em mente, o Sensor Ultrassônico é uma ótima ferramenta para medir distâncias sem fazer contato físico para pequenas distâncias. Eles usam o conceito de ECO para medir a distância. Neste projeto, aprenderemos como medir a distância interfaceando o módulo sensor HC-SR04 com Arduino e exibindo a distância em um LCD 16×2.

Diagrama de Circuito do Projeto de Medição de Distância

Medição Precisa de Distância Ultrassônica com Arduino – Guia Passo a Passo

A interface é realmente simples. Você só precisa seguir o diagrama de circuito. Primeiro, os pinos Trig e Echo do sensor ultrassônico são conectados aos pinos A4 e A5 do Arduino UNO e VCC e GND são conectados ao 5V e GND do Arduino.

Agora, vamos exibir a distância em um LCD 16×2 que está conectado ao Arduino. Conecte os pinos RS e EN aos pinos digitais 12 e 11 do Arduino, respectivamente. Agora conecte D4-D7 do LCD aos pinos digitais 5-2 do Arduino. Também conectamos um potenciômetro de 10K para controlar o contraste do LCD conforme mostrado no diagrama de circuito.

Componentes Necessários

Módulo Sensor Ultrassônico

O módulo sensor usado aqui é o HC-SR04, que é um dispositivo de medição ultrassônica sem contato. Este pequeno módulo é capaz de medir distância na faixa de 2cm – 400cm. É um sensor muito preciso, pode medir até 3mm.

O sensor consiste em transmissor ultrassônico e receptor ultrassônico. O princípio de funcionamento é realmente simples. Primeiro, o gatilho IO envia sinal de nível alto por 10μs. Então o módulo sensor envia oito ciclos de 40 kHz de som ultrassônico e detecta se o sinal de pulso é recebido de volta ou não. E se o sinal é recebido, através de nível alto, a duração do tempo pela qual o gatilho IO permanece alto é o tempo do envio ao recebimento do sinal.

Distância = (Tempo de Nível Alto × Velocidade do Som no Ar (340m/s)) / 2

Diagrama de Temporização

Como discutido acima, o módulo funciona no ECO do som. Para disparar o módulo, um pulso é enviado por cerca de 10μs. Após este processo, o módulo envia oito ciclos de 40 kHz de som ultrassônico e verifica sua reflexão. Então, se houver algum obstáculo, o sinal colide com ele e retorna ao receptor. E agora a distância é calculada pela fórmula simples discutida acima. Dividimos por 2 porque este tempo é o tempo total para alcançar o obstáculo e voltar ao receptor, então o tempo gasto para alcançar o obstáculo é a metade do tempo total. O diagrama de temporização deste sensor é dado abaixo:

Medição Precisa de Distância Ultrassônica com Arduino – Guia Passo a Passo

Especificações Técnicas
Pinagem do Sensor Ultrassônico HC-SR04

Como discutido acima, o módulo funciona no princípio de ECO do som. Então, quando conectamos o módulo com qualquer microcontrolador, primeiro o módulo é disparado através do pino Trig e um pulso de nível alto é enviado por 10μs. Então, esperamos receber o ECO. O microcontrolador pode calcular o tempo. E então a distância é calculada pela fórmula discutida acima.

Arduino UNO

Arduino é um microcontrolador de código aberto amplamente usado em muitos projetos embarcados de pequena e grande escala. O Arduino usado neste projeto é Arduino-UNO. A razão para usar este Arduino é que é mais barato e fácil de interligar. A placa fornece 14 pinos digitais I/O e 6 pinos analógicos. O microcontrolador é de código aberto, então depende totalmente do usuário como ele/ela quer usá-lo. Você pode modificar a placa e o software de acordo com as necessidades.

Módulo LCD 16×2

Estes módulos são comumente usados em muitos lugares em projetos embarcados, porque são baratos e fáceis de interligar com microcontroladores. Você pode ter visto este tipo de display em calculadoras, multímetros, etc. O módulo LCD usado aqui pode exibir 16 caracteres em uma linha e tem duas linhas. Então, basicamente tem 16 colunas e 2 linhas. Cada caractere exibido é composto por matriz de 5×8 pixels.

Se calcular o total de pixels no LCD todo, resulta em 5×8×16×2=1280 pixels. Que é um número grande. Agora, para exibir algo no LCD, precisamos especificar a posição dos caracteres também. Então, é realmente uma coisa difícil de fazer. Para gerenciar o funcionamento adequado, um IC chamado HD44780 é usado. Este IC busca os dados e comandos do microcontrolador e faz algum processamento para que a saída desejada possa ser impressa no LCD. Este IC torna a interface do LCD muito fácil. Podemos usar LCD em muitos de nossos projetos para exibir a saída através dos sensores ou de outros módulos. Vamos ver algumas das especificações técnicas do módulo LCD.

Vamos ver uma configuração de pinos do LCD.

Pinagem e Descrição do LCD 16×2

Número do Pino Nome Descrição
1 VSS Terra - conectado ao terra do circuito.
2 VDD Alimentação para o LCD (4,7V a 5,3V), tipicamente 5V
3 VE Pino para manipular o contraste do LCD. Conecte um potenciômetro a este pino. Ajustando o botão do potenciômetro, obtemos diferentes níveis de contraste no display.
4 RS Seleção de Registrador. Alterna entre registrador de comando e dados. Conectado ao microcontrolador.
5 RW Leitura/Escrita. Usado para ler ou escrever no LCD. Geralmente aterrado para escrever dados.
6 EN Pino Enable. Conectado ao microcontrolador e recebe 1 ou 0 para confirmar dados.
7 Pinos de Dados (0-7) Enviam dados de 8 bits ao LCD do microcontrolador. Pode ser usado em modo 4 bits (apenas 4 pinos de dados).
8 A Ânodo. Pino positivo para backlight do LCD. Opcional. Use se precisar do backlight. Consumo de corrente fica muito menor sem backlight.
9 K Cátodo. Pino negativo para backlight do LCD.

Vamos ver a interface básica do LCD com Arduino. Imprimiremos algum texto no LCD escrevendo um código simples. Primeiro conecte os pinos RS e EN aos pinos digitais 12 e 11 do Arduino. Agora conecte pinos D4-D7 do LCD aos pinos digitais 5-2 do Arduino. Agora conecte RW, VSS e K com terra e VDD e A com 5V do Arduino. Conecte um potenciômetro com VE conforme mostrado no diagrama de circuito para controlar o contraste do LCD.

Agora a parte de codificação. Primeiro, precisamos incluir a biblioteca LiquidCrystal.h para o LCD.

#include <LiquidCrystal.h>

Nas próximas duas linhas, definimos variáveis para os pinos de dados do LCD conectados ao Arduino e as passamos como argumento na função lcd para que possamos enviar dados do Arduino ao LCD.

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

Na função Setup, inicializamos o LCD usando a função lcd.begin(). Passamos 16 e 2 porque o LCD que estamos usando tem 16 colunas e 2 linhas e também estamos usando o LCD todo. Se precisar apenas de uma porção do LCD, pode passar os argumentos conforme necessário.

Em seguida, imprimimos 'Olá, Mundo!' na próxima linha. Você pode imprimir qualquer mensagem personalizada, mas lembre-se que a mensagem que exceder o tamanho do display será impressa na próxima linha. Então, manipule sua mensagem conforme necessário.

lcd.begin(16, 2);

lcd.print("Olá, Mundo!");

Na função loop, definimos o cursor para posição (0,1) usando a função lcd.setCursor(). Depois, imprimimos o tempo pelo qual a mensagem está sendo impressa.

lcd.setCursor(0, 1);

lcd.print(millis() / 1000);

Após escrever o código, faça upload para a placa Arduino e você verá a mensagem impressa no display. Você pode mudar o contraste girando o botão do potenciômetro conectado.

Programando Arduino para Medição de Distância com Sensor Ultrassônico

A parte de codificação é realmente muito fácil para este projeto. Comece incluindo o arquivo de cabeçalho para LCD.

#include <LiquidCrystal.h>

Nas próximas duas linhas, definimos macros para o pino A4 (pino 18) e A5 (pino 19) do Arduino para que possamos usar esses nomes em vez dos números dos pinos.

#define trig 18
#define echo 19

Agora nas próximas linhas, definimos as variáveis para diferentes pinos do LCD conectados ao Arduino e as passamos para a função lcd para inicializar o LCD.

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

Agora definimos a variável de distância 'd' e tempo 't' e inicializamos com 0.

float t=0, d=0;

Agora a função setup. Na primeira linha, inicializamos o LCD usando lcd.begin() e nas próximas duas linhas definimos os modos dos pinos para trigger e echo como saída e entrada, respectivamente.

void setup() {
  lcd.begin(16,2);
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
}

Agora a função loop. Primeiro, limpamos o LCD pela função lcd.clear() para que após cada iteração do loop a saída anterior não afete a atual. Nas próximas seis linhas, inicializamos nosso sensor ultrassônico enviando pulso de nível alto por 10μs. E como sabemos que após isso, o sensor automaticamente envia oito ciclos de 40kHz de som ultrassônico e verifica sua reflexão. Então na próxima linha, buscamos o tempo do sensor. Então calculamos a distância. Dividimos por 10000 porque a velocidade está em metro/seg, então temos que converter para centímetros.

void loop() {
  digitalWrite(trig, LOW);
  delayMicroseconds(2);
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  t = pulseIn(echo, HIGH);
  d = t * 0.0340 / 2;
  d = t * 0.01330 / 2;
  lcd.setCursor(0, 0);
  lcd.print("Distancia: ");
  lcd.print(d);
  lcd.print(" cm");
  delay(1000);
}

Funcionamento do Circuito de Medição de Distância

Após escrever o código, faça upload para o Arduino e está pronto. Agora traga qualquer objeto ou sua mão na frente do sensor. Verifique a distância no LCD. Mude a distância do objeto do sensor e você obterá uma boa distância precisa.

Quando inicializamos o sensor enviando pulso de nível alto por 10μs, o sensor envia oito ciclos ultrassônicos de 40kHz e se estes ciclos forem refletidos por algum obstáculo, eles refletem de volta ao receptor. Agora, o sensor dá o tempo gasto no deslocamento do sinal ultrassônico do transmissor ao obstáculo e do obstáculo ao receptor. Então, usamos este tempo para calcular a distância entre o sensor e o obstáculo.

Medição Precisa de Distância Ultrassônica com Arduino – Guia Passo a Passo

Tecnologia industrial

  1. Como Funcionam os Sensores de Distância e Suas Principais Aplicações
  2. Sensores Arduino: Tipos, Aplicações e Projetos do Mundo Real
  3. Como Funcionam Circuitos de Sensor PIR: Projeto, Operação e Aplicações Reais
  4. Construa um Sensor de Temperatura Remoto com Raspberry Pi e Python – Guia Passo a Passo
  5. Construa um Dispositivo de Levitação Ultrassônica com Arduino – Guia Passo a Passo
  6. Construa um Voltímetro Inteligente com Arduino e Smartphone – Projeto DIY Fácil
  7. Construa um Pote Inteligente IoT com ESP8266, Arduino e Sensor Ultrassônico – Monitoramento em Tempo Real
  8. Medição Precisa de Frequência e Ciclo de Trabalho com Arduino UNO
  9. Construa um Rádio FM Compacto com Arduino Nano e RDA5807M
  10. Sistema Radar Compacto com Arduino Nano, Sensor HC-SR04 e Display 1.8"