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  

}  

}

Exibições: 3598

Responder esta

Respostas a este tópico

Bom dia Augusto,

Creio que sim. Eu não tenho esse sensor. 

Procure no Mercado Livre:

Sensor De Obstáculo Infravermelho

 ( 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

Anexos

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

Ontem à noite mudei a lógica do projeto, inicialmente parece que funcionou, irei realizar mais uns testes hoje após o serviço e dando certo posto como ficou. Obrigado a todos por enquanto. Att.

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.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço