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 de distância usando Arduino e sensor ultrassônico

Projeto de medição de distância ultrassônica usando Arduino

A Medição Ultrassônica de Distância é uma ferramenta útil em várias aplicações ultimamente. Ele pode ser usado em várias aplicações, como posicionamento, localização, dimensionamento, seleção, medição de nível, controle e perfil. Ao fazer 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 no campo da robótica.

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

Diagrama de circuito do projeto de medição de distância


A interface é muito simples. Você só precisa seguir o diagrama de circuito. Então, em primeiro lugar, os pinos Trig e Echo do sensor ultrassônico são conectados a A4 e A5 do Arduino UNO e VCC e GND são conectados a 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 ao pino digital 12 e ao pino digital 11 do Arduino, respectivamente. Agora conecte D4-D7 do LCD ao pino digital 5-2 do Arduino. Também conectamos um potenciômetro de 10K para controlar o contraste do LCD conforme mostrado no diagrama do circuito.

Componentes necessários

Módulo de sensor ultrassônico

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

O sensor consiste em um transmissor ultrassônico e um receptor ultrassônico. O princípio de funcionamento é realmente simples. Em primeiro lugar, o trigger IO envia um sinal de alto nível por 10μs. Em seguida, 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 for recebido, através de nível alto, o tempo de duração do disparo de IO permanece alto é o tempo desde o envio até o recebimento do sinal.

Distância =(Tempo de alto nível x Velocidade do som no ar (340M/s))/2

Diagrama de tempo

Como discutido acima, o módulo funciona no ECHO do som. Para acionamento do 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. Portanto, se houver algum obstáculo, o sinal o atingirá e retornará ao receptor. E agora a distância é calculada por uma fórmula simples discutida acima. Dividimos por 2 porque esse tempo é o tempo total para chegar ao obstáculo e voltar ao receptor, então o tempo gasto para chegar ao obstáculo é a metade do tempo total. O diagrama de temporização deste sensor é dado abaixo:

Especificações técnicas
Pin-Outs do Sensor Ultrassônico HC-SR04

Como discutido acima, o módulo funciona com base no princípio do ECHO do som. Então, quando conectamos o módulo com qualquer microcontrolador, primeiro o módulo é acionado através do pino Trig e um pulso de alto nível é enviado por 10μs. Então, aguardamos o recebimento do ECHO. 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 utilizado em muitos projetos embarcados de pequena e grande escala. O Arduino utilizado neste projeto é o Arduino-UNO. A razão para usar este Arduino é que é mais barato e fácil de interface. A placa fornece 14 pinos de E/S digitais e 6 pinos analógicos. O microcontrolador é de código aberto, então cabe ao usuário como ele quer usá-lo. Você pode modificar a placa e o software de acordo com as necessidades.

Módulo LCD 16×2

Esses módulos são comumente usados ​​em muitos lugares em projetos embarcados, porque são mais baratos e fáceis de interagir com microcontroladores. Você já deve ter visto esse tipo de display em calculadoras, mustímetros etc. O módulo LCD usado aqui pode exibir 16 caracteres seguidos e está tendo duas linhas. Então, basicamente tem 16 colunas e 2 linhas. Cada caractere exibido é composto de 5×8 pixels (matriz de pixels).

Se você calcular o total de pixels em todo o LCD, o resultado será 5x8x16x2=1280 pixels. O que é um grande número. Agora, para exibir algo no LCD, precisamos especificar também a posição dos caracteres. Então, é realmente uma coisa difícil de fazer. Portanto, para gerenciar o funcionamento adequado, um IC chamado HD44780 é usado. Este IC busca os dados e comandos do microcontrolador e então 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 quaisquer outros módulos. Vamos dar uma olhada em 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 PIN Nome Descrição
1 VSS É o terra e conectado ao terra do circuito.
2 VDD Fonte de alimentação para o LCD (4,7V a 5,3V), normalmente 5V
3 VE Este pino é usado para manipular o contraste do LCD. Para isso, precisamos conectar um potenciômetro a este pino. Assim, ajustando o botão do potenciômetro, podemos obter diferentes níveis de contraste na tela.
4 RS Registrar Seleção. Este pino é usado para alternar entre o comando e o registrador de dados. Este pino está conectado ao microcontrolador
5 RW Ler/Gravar. Este pino é usado para ler ou escrever no LCD. Geralmente é fundamentado para gravar os dados.
6 PT Ativar pino. Este pino está conectado ao microcontrolador e recebe 1 ou 0 para reconhecer os dados.
7 Pinos de dados (0-7) Esses pinos são usados ​​para enviar dados de 8 bits para o LCD do microcontrolador. Este LCD também pode ser usado no modo de 4 bits. Para isso, você só precisa conectar 4 pinos de dados.
8 A Anodo. Este pino é pino positivo para a luz de fundo do LCD. É completamente opcional usar este pino. Use-o se precisar de luz de fundo. O consumo de corrente torna-se muito menor se você não usar a luz de fundo conforme mostrado nas especificações técnicas.
9 K Catodo. Este pino é negativo para a luz de fundo do LCD.

Vamos ver a interface básica do LCD com o Arduino. Vamos imprimir algum texto no LCD escrevendo um código simples. Em primeiro lugar, conecte os pinos RS e EN aos pinos digitais 12 e 11 do Arduino. Agora conecte os 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 vamos para a parte de codificação. Primeiro, precisamos incluir a biblioteca LiquidCrystal.h para o LCD.

#include

Agora nas próximas duas linhas definimos variáveis ​​para os pinos de dados do LCD conectados ao Arduino e passamos como argumento na função lcd para que possamos enviar os dados de Arduino para 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 inteiro. Se você precisar apenas de uma parte do LCD, poderá passar os argumentos de acordo.

Em seguida, estamos imprimindo 'Hello, World!' na próxima linha. Você pode imprimir qualquer mensagem personalizada que desejar, mas lembre-se de que a mensagem que exceder o tamanho da tela será impressa na próxima linha. Portanto, manipule sua mensagem de acordo.

lcd.begin(16, 2);

lcd.print(“Olá, mundo!”);

Na função loop, colocamos o cursor na posição (0,1) usando a função lcd.setCursor(). Após isso, estamos imprimindo o tempo para o qual a mensagem está sendo impressa.

lcd.setCursor(0, 1);

lcd.print(millis() / 1000);

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

Programação do Arduino para medição de distância do 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 de usar o pino números.

#define trig 18
#define echo 19

Agora nas próximas linhas, definimos as variáveis ​​para os diferentes pinos do LCD conectados ao Arduino e passamos para a função lcd para que possamos 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 a variável de tempo 't' e as inicializamos com 0.

float t=0,d=0;

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

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

Em seguida, vamos à função de 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 saída atual. Agora nas próximas seis linhas, estamos inicializando nosso sensor ultrassônico enviando o pulso de alto nível por 10μs. E como sabemos, depois disso, o sensor envia automaticamente oito ciclos de 40kHz de som ultrassônico e verifica sua reflexão. Então, na próxima linha, buscamos a hora do sensor. Então estamos calculando a distância. Dividimos por 10.000 porque a velocidade está em metros/s, então temos que convertê-la em 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("Distance: ");
  lcd.print(d);
  lcd.print(" cm");
  delay(1000); 
}

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

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

Quando inicializamos o sensor enviando o pulso de alto nível por 10μs, o sensor envia oito ciclos ultrassônicos de 40kHz e se esses ciclos forem refletidos por qualquer obstáculo, eles serão refletidos de volta para o receptor. Agora, o sensor fornece o tempo necessário para viajar o sinal ultrassônico do transmissor para o obstáculo e do obstáculo para o receptor. Então, usamos esse tempo para calcular a distância entre o sensor e o obstáculo.



Tecnologia industrial

  1. O que é um sensor de distância funcionando e suas aplicações
  2. Sensor Arduino - Tipos e Aplicações
  3. Circuito do sensor PIR e módulo de trabalho
  4. Sensor de temperatura Python e Raspberry Pi
  5. Máquina de LEVITAÇÃO ULTRASÔNICA Usando ARDUINO
  6. Faça você mesmo voltímetro usando Arduino e Smartphone
  7. IOT - Jar inteligente usando ESP8266, Arduino e sensor ultrassônico
  8. Medição de frequência e ciclo de trabalho usando Arduino
  9. Rádio FM usando Arduino e RDA8057M
  10. Mini Radar com Arduino