Ultrasonic são ferramentas sensores ótimos para medir a distância sem contato real e usados em vários locais, como medição do nível da água, medição da distância etc. Essa é uma maneira eficiente de medir com precisão pequenas distâncias. Neste projeto, usamos um Sensor Ultrasonic para determinar a distância de um obstáculo do sensor. Princípio básico da medição de distância por ultrassom baseia-se no ECHO. Quando as ondas sonoras são transmitidas no ambiente, as ondas retornam à origem como ECHO após atingir o obstáculo. Portanto, precisamos apenas calcular o tempo de viagem de ambos os sons, o tempo de saída e o tempo de retorno à origem depois de bater no obstáculo. Como a velocidade do som é conhecida por nós, após algum cálculo, podemos calcular a distância.
Componentes Utilizados
- Arduino Pro Mini
- Módulo sensor Ultrasonic
- 16x2 LCD
- Escala
- Protoboard
- Bateria de 9 volts
- Fios de conexão
Módulo Sensor Ultrasonic
O sensor ultrassônico HC-SR04 é usado aqui para medir a distância no intervalo de 2cm a 400cm com precisão de 3mm. O módulo sensor consiste em transmissor ultrassônico, receptor e circuito de controle. O princípio de funcionamento do sensor ultrassônico é o seguinte:
- O sinal de alto nível é enviado por 10us usando o Trigger.
- O módulo envia oito sinais de 40 KHz automaticamente e, em seguida, detecta se o pulso é recebido ou não.
- Se o sinal é recebido, é através de alto nível. O tempo de alta duração é o intervalo de tempo entre o envio e o recebimento do sinal.
Distância=(Tempo x Velocidade do som no ar (340 m/s))/2
Diagrama de tempo
O módulo trabalha no fenômeno natural do ECHO do som. Um pulso é enviado por cerca de 10us para acionar o módulo. Após o qual o módulo envia automaticamente 8 ciclos de sinal de ultra-som de 40 KHz e verifica seu eco. O sinal após bater com um obstáculo retorna e é capturado pelo receptor. Assim, a distância do obstáculo ao sensor é simplesmente calculada pela fórmula dada como
Distância=(tempo x velocidade)/2.
Aqui, dividimos o produto da velocidade e do tempo por 2, porque o tempo é o tempo total necessário para alcançar o obstáculo e retornar. Assim, o tempo para alcançar os obstáculos é apenas metade do tempo total gasto.
Diagrama de circuito e explicação
O diagrama de circuitos do arduino e sensor ultrassônico é mostrado acima para medir a distância. Nas conexões de circuito, o módulo do sensor ultrassônico "s" dispara”e "eco"; os pinos são conectados diretamente aos pinos 18 (A4) e 19 (A5) do arduino. Um LCD 16x2 é conectado ao arduino no modo de 4 bits. O pino de controle RS, RW e En são conectados diretamente aos pinos 2, GND e 3. do arduino. E o pino de dados D4-D7 está conectado aos 4, 5, 6 e 7 do arduino.
Antes de tudo, precisamos acionar o módulo do sensor ultrassônico para transmitir o sinal usando o arduino e, em seguida, aguardar o recebimento do ECHO. O Arduino lê o tempo entre o disparo e o ECHO recebido. Sabemos que a velocidade do som é de cerca de 340m/s. para que possamos calcular a distância usando a fórmula fornecida:
Distância=(tempo de viagem/2)*velocidade do som
Onde a velocidade do som em torno de 340m por segundo.
Um LCD de 16x2 é usado para exibir a distância.
Código ultra-sônico para medição de distância do Arduino
No código, lemos o tempo usando pulseIn (pin). Em seguida, execute os cálculos e o resultado exibido no LCD 16x2 usando as funções apropriadas.
Código:
#include <LiquidCrystal.h>
#define trigger 18
#define echo 19
LiquidCrystal lcd(2,3,4,5,6,7);
float time=0,distance=0;
void setup()
{
lcd.begin(16,2);
pinMode(trigger,OUTPUT);
pinMode(echo,INPUT);
lcd.print(" Ultra sonic");
lcd.setCursor(0,1);
lcd.print("Distance Meter");
delay(2000);
lcd.clear();
lcd.print(" Circuit Digest");
delay(2000);
}
void loop()
{
lcd.clear();
digitalWrite(trigger,LOW);
delayMicroseconds(2);
digitalWrite(trigger,HIGH);
delayMicroseconds(10);
digitalWrite(trigger,LOW);
delayMicroseconds(2);
time=pulseIn(echo,HIGH);
distance=time*340/20000;
lcd.clear();
lcd.print("Distance:");
lcd.print(distance);
lcd.print("cm");
lcd.setCursor(0,1);
lcd.print("Distance:");
lcd.print(distance/100);
lcd.print("m");
delay(1000);
}
#define trigger 18
#define echo 19
LiquidCrystal lcd(2,3,4,5,6,7);
float time=0,distance=0;
void setup()
{
lcd.begin(16,2);
pinMode(trigger,OUTPUT);
pinMode(echo,INPUT);
lcd.print(" Ultra sonic");
lcd.setCursor(0,1);
lcd.print("Distance Meter");
delay(2000);
lcd.clear();
lcd.print(" Circuit Digest");
delay(2000);
}
void loop()
{
lcd.clear();
digitalWrite(trigger,LOW);
delayMicroseconds(2);
digitalWrite(trigger,HIGH);
delayMicroseconds(10);
digitalWrite(trigger,LOW);
delayMicroseconds(2);
time=pulseIn(echo,HIGH);
distance=time*340/20000;
lcd.clear();
lcd.print("Distance:");
lcd.print(distance);
lcd.print("cm");
lcd.setCursor(0,1);
lcd.print("Distance:");
lcd.print(distance/100);
lcd.print("m");
delay(1000);
}
Nenhum comentário:
Postar um comentário
Peço que use somente caixa baixa, não todo escrito em letra grande.