Boa noite.
Primeiramente quero agradecer a todos que deram dicas para que pudesse resolver o problema, todas foram úteis. Consegui refazer o projeto de um modo que funcionasse, agora vou realizar testes para calibração do mesmo. Mais uma vez obrigado.
Segue o código. PS: ainda vou colocar um LCD 16x2 para dar informação da velocidade.
Att.
Mensagem Inical do tópico
boa noite.
Sou iniciante no arduíno e tenho que fazer um projeto e o seu funcionamento é o seguinte:
Estou utilizando 2 sensores ultrassom separados por uma distância de 10 cm, e fiz o código para que os sensores atuem quando uma distância for menor que 10 cm, isto é, se passar um carro a uma distância menor que 10 cm, o programa contará o tempo de cada sensor, no final diminuirá os dois tempos e fará o cálculo da velocidade em m/s.
Estou tendo problema, pois a velocidade está marcando sempre -1.
Tentei resolver, mas não consegui. Acho que deve ser na declaração das variáveis, mas já alterei e não obtive sucesso.
Sei que o ideal seria fazer o radar com dois laços indutivos, mas não consegui construir o circuito eletrônico dos laços então quero garantir que esse com os ultrassonicos funcionem para poder entregar e depois tendo tempo, tento com os laços indutivos.
Qualquer sugestão é bem vinda.
Obrigado.
Agora o programa corrigido:
#include"Ultrasonic.h"
#define trig1 2
#define echo1 3
#define trig2 4
#define echo2 5
#define led1 6
#define led2 7
unsigned long inicio=0;
unsigned long fim=0;
int passouInicio=0;
int passouFim=0;
double tempo, velocidade;
double distanciaSensores =0.15;//distancia dos sensores na protoboard, caso aumente a distancia, trocar aqui
double fatorParaSegundos=1000;//conversão de ms para segundos
Ultrasonic
ultra1(2,3);//define sensor ultra1 como trigger no pino 2 arduino e echo no pino 3
Ultrasonic
ultra2(4,5);//define sensor ultra2 como trigger no pino 4 arduino e echo no pino 5
voidsetup(){
Serial
.begin(9600);//inicia a porta serial
pinMode(trig1,OUTPUT);// define o pino 2 como saida (envia)
pinMode(echo1,INPUT);// define o pino 3 como entrada (recebe)
pinMode(trig2,OUTPUT);// define o pino 4 como saida (envia)
pinMode(echo2,INPUT);// define o pino 5 como entrada (recebe)
pinMode(led1,OUTPUT);//define pino 6 como saida;
pinMode(led2,OUTPUT);//define pino 7 como saida;
digitalWrite(led1,LOW);//led1 apagado;
digitalWrite(led2,LOW);//led2 apagado;
}
voidloop(){
if(ultra1.Ranging(CM)/font>10){//caso carro passe a menos de 10cm do sensor, conta o inicia (tempo1). Aumenta-se essa distancia dependendo do projeto
inicio=millis();//inicio recebe o tempo em ms em que o carro passou pelo sensor 1
passouInicio=1;//seta a flag
digitalWrite(led1,HIGH);//led1 ligado;
digitalWrite(led2,LOW);//led2 apagado;
}
if(ultra2.Ranging(CM)/font>10){//caso carro passe a menos de 10cm do sensor, conta o inicia (tempo1). Aumenta-se essa distancia dependendo do projeto
fim=millis();//fim recebe o tempo em ms em que o carro passou pelo sensor 2
passouFim=1;//seta a flag
digitalWrite(led2,HIGH);//led2 ligado;
}
if((passouInicio&&passouFim)&&fim>inicio){//compara para ver se o carro passou pelos 2 sensores
tempo=((fim-inicio)/fatorParaSegundos);//calculo do tempo em ms que levou pra passar pelos 2 sensores e transforma em segundos
velocidade=((distanciaSensores/tempo)*3.6);//calculo da velocidade em km/h
Serial
.print("Tempo: ");
Serial
.print(tempo);
Serial
.println("s");
Serial
.print("Velocidade: ");
Serial
.print(velocidade);
Serial
.println("km/h");
passouInicio=0;//zera as flags para nao ficar imprimindo no monitor serial
passouFim=0;//zera as flags para nao ficar imprimindo no monitor serial
}
}
Tags:
Bom dia Augusto,
Creio que sim. Eu não tenho esse sensor.
Procure no Mercado Livre:
( com português medieval - traduzido por um chinês provávelmente)
" 1,Quando o módulo detectar um obstáculo na frente do sinal, acenderá um indicador luminoso verde no nível ajustado, enquanto a produção contínua de baixo nível de sinal fora da porta, o módulo detecta a distância de 2 a 30 cm, ângulo de detecção 35 °, a distância pode detectar potencial é ajustado potenciômetro de ajuste no sentido horário para detectar a distância aumenta; sentido anti-horário para ajustar o potenciômetro para reduzir a distância de detecção.
2. Sensores infravermelhos activos para detectar a reflectida, e, assim, a forma da reflectividade do intervalo de detecção alvo é crítica. A distância de detecção mínimo que preto, branco máximo; pequenos objetos de uma pequena área, uma grande área do Grand.
3. a porta de saída OUT módulo sensor pode ser conectado diretamente à porta IO microcontrolador, você pode acionar diretamente um relé de 5V; Conexão: VCC-VCC; GND-GND; OUT-IO "
O site da Maxbotix, fabricante de sensores ultrassônicos, tem um excelente guia que ajuda a escolher o sensor para cada tipo de aplicação:
http://www.maxbotix.com/SelectionGuide/Selection-Guide.htm
Existem ainda os sensores infravermelho, um pouco mais caros:
http://blog.filipeflop.com/sensores/sensor-infravermelho-arduino.html
Obrigado José. Att.
Os sensores MaxBotix são muito bons, mas caros aqui no Brasil.
Comprei um MB1010 no fechamento da Loja do Lab de Garagem.
http://www.maxbotix.com/documents/LV-MaxSonar-EZ_Datasheet.pdf
Fiz um análise completa do modulo, assim como eu fiz do HC-SR04.
Será que a galera se interessa nos meus estudos ?
O funcionamento é similar ao HC-SR04.
As diferenças são :
- usa somente um transdutor
- tem tamanho menor
- tem saida serial, analógica (além da digital PW)
Oi JGAM, bom dia.
Eu comprei um MB7380, http://www.maxbotix.com/Ultrasonic_Sensors/MB7389.htm
para um projeto.
Custou US$ 102,00 lá no USA.
Eu tenho 2 esquemas dos produtos da MaxBotix.
Tem esquema do SR_04 também.
seguem anexos.
Rui
Bom dia Rui,
Eu só não tinha o ultimo diagrama que enviou.
Interessante que no site da MaxBotix eu não encontrei esses diagramas.
Me parece que eles retiraram esses diagramas do site. Eu não achei.
Você viu o levantamento que eu fiz do módulo HC-SR04 ?
http://labdegaragem.com/forum/topics/sensor-hc-sr04-ultrasom-como-f...
Muito obrigado e abraços.
Gustavo
Postei na origem do tópico o programa corrigido.
Primeiramente quero agradecer a todos que deram dicas para que pudesse resolver o problema, todas foram úteis. Consegui refazer o projeto de um modo que funcionasse, agora vou realizar testes para calibração do mesmo. Mais uma vez obrigado.
Fala Fabio blz. Preciso fazer um projetinho de radar de velocidade com o ultrassonico. Esse programa seu funcionou? você teria como mandar pra mim via email? andre.santos.andre@gmail.com
Bom dia.
O código funcionou, é o que está no topo da página, mas de qualquer modo te enviei por email. abraço.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por