Olá Garagistas! Neste tutorial mostraremos como você pode montar uma trena eletrônica utilizando Arduino e sensor ultrassônico LV-EZ. Como demonstração faremos a medição da distância, posicionando o sensor de frente para um objeto e mostraremos no display LCD 16x2 qual a distância está sendo aferida pelo o sensor, tanto pelo o pino de saída PWM, quanto pelo pino de saída Serial UART (TX) do sensor.
Material Utilizado:
1x Sensor Ultrassom LV-EZ1 ou 1x Sensor Ultrassom LV-EZ3
1x Barra de Pinos Reto (7 Pinos)
1. Sensor Ultrassônico
Imagem 1 - Sensor Ultrassônico LV-EZ1
O sensor ultrassônico é um tipo de sensor de grande utilidade na automação, sensoriamento de obstáculos para robô, e de objetos em linhas de montagem . Ele possui a propriedade de não precisar de contacto físico com o objeto ou ainda de que esse objeto possua alguma propriedade física em específico, ele não só detecta sua presença como ainda tem recursos para determinar a qual distância do sensor o objeto se encontra. O Sensor LV-EZ utiliza um transmissor e um receptor de ultrassom, através dos quais determina a distância de objetos presentes à sua frente.
Na ilustração abaixo, temos o princípio de funcionamento do sensor:
Figura 1 - Funcionamento do sensor de ultrassom
À esquerda da imagem temos o sensor LV-EZ e à direita um objeto colocado à sua frente. O sensor emite uma onda ultrassônica durante um determinado tempo, esta onda sonora rebate no material e retorna ao receptor do sensor.O tempo que a onda leva para ir e voltar é medido pelo sensor, e como a velocidade do som é conhecida, é possível calcular a distância do objeto através da equação:
Fórmula 1 - Cálculo da distância entre o sensor e o objeto
Para facilitar, a biblioteca Maxbotix.h já faz esses cálculos, tudo o que é preciso fazer é utilizar as funções dela, e com isso já adquirir o valor convertido em centímetros. O download da biblioteca Maxbotix.h pode ser feito clicando aqui.
2. Circuito
Figura 2 - Circuito da Trena Eletrônica
Imagem 2 - Trena Eletrônica Montada
3. Sketch
#include <LiquidCrystal.h> //Inclui a biblioteca do LCD
#include "Maxbotix.h" //Inclui a biblioteca Maxbotix.h
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Configura os pinos do Arduino para se comunicar com o LCD
Maxbotix rangeSensorPW(8, Maxbotix::PW, Maxbotix::LV); //Instância o pino PW do sensor LV para ser utilizado com o pino 8 do Arduino
Maxbotix rangeSensorTX(6, Maxbotix::TX, Maxbotix::LV); //Instância o pino TX do sensor LV para ser utilizado com o pino 6 do Arduino
void setup()
{
lcd.begin(16, 2); //Inicia o LCD com dimensões 16x2(Colunas x Linhas)
}
void loop()
{
unsigned long start; //Cria uma variável para contagem de tempo em millisegundos utilizando timer
// PW
lcd.setCursor(0,0);
lcd.print("PW: "); //Imprime no display "PW: "
lcd.print(rangeSensorPW.getRange()); //Imprime no display a leitura de PW
lcd.print("cm"); //Imprime no display a unidade "cm"
// TX
lcd.setCursor(0,1);
lcd.print("TX: "); //Imprime no display "TX: "
lcd.print(rangeSensorTX.getRange()); //Imprime no display a leitura de TX
lcd.print("cm"); //Imprime no display a unidade "cm"
delay(5000); //Aguarda 5 segundos
lcd.clear(); //Limpa a tela do display de LCD
}
Referências:
http://www.newtoncbraga.com.br/index.php/robotica/3484-mec081
http://playground.arduino.cc/Main/MaxSonar
Comentar
Bom dia
Parabens pelo tutorial
Consigo pegar as medidas em milimetros em vez de centimetros?
obrigado
Boa noite Flavio!
Acredito q este tenho sido este o erro. Nos tínhamos 2 bibliotecas iguais.
este problema foi resolvido, mas agr esta aparecendo esse:
Arduino: 1.6.7 (Windows 10), Placa:"Arduino/Genuino Uno"
tRENA:6: error: 'TX' is not a member of 'Maxbotix'
Maxbotix rangeSensorTX(6, Maxbotix::TX, Maxbotix::LV); //Instância o pino TX do sensor LV para ser utilizado com o pino 6 do Arduino
^
exit status 1
'TX' is not a member of 'Maxbotix'
Este relatório deveria ter mais informações
"Mostrar saída verbosa durante a compilação"
habilitado em Arquivo > Preferências.
Muito OBG pela atenção!
Joao Silveira você instalou a biblioteca?
Boa noite!
Nossa turma de Mecatronica deve desenvolver um programa usando o arduino, Nosso grupo opto por fazer esta trena eletronica, mas estamos tendo o seguinte erro quando compilamos o programa:
Arduino: 1.6.7 (Windows 10), Placa:"Arduino/Genuino Uno"
C:\Users\gustavo.hack\Desktop\tRENA\tRENA.ino: In function 'void loop()':
tRENA:29: error: 'rangeSensorTX' was not declared in this scope
lcd.print(rangeSensorTX.getRange()); //Imprime no display a leitura de TX
^
exit status 1
'rangeSensorTX' was not declared in this scope
Este relatório deveria ter mais informações
"Mostrar saída verbosa durante a compilação"
habilitado em Arquivo > Preferências.
Alguem poderia nos apontar alguma solução?
Muito obg pela atenção!
Ate quanto metro chega esta trena
Meu nome é Bruno sou de Suzano e estudo na Universidade Braz Cubas em Mogi das Cruzes, estamos fazendo um projeto integrador onde o nosso projeto é uma Trena Eletrônica Ultrassonica, relativamente facil mais para nós que somos leigos no assunto esta sendo um desafio. Na parte da montagem conseguimos fazer normalmente o nosso problema esta sendo na programação, mais precisamente em adicionar a biblioteca Adafruit GFX.h e Adafruit_PCD8345.h no arduino, a biblioteca do sensor conseguimos colocar normalmente mais a da tela lcd 5110 esta sendo um grande problema, estamos tentando falar com o idealizador do projeto só que ele não nos responde gostaria de saber se é possivel o sr. nos ajudar em anexo esta passo a passo o que eu estou fazendo.
Nós tiramos o projeto do link abaixo:
http://labdegaragem.com/profiles/blogs/trena-eletr-nica
Obrigado.
Bruno F.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)