domingo, 3 de julho de 2016

radar de velocidade com arduino*velocimetro com arduino*

Saudações povo que acompanha o meu blog. Depois de eras sem postar aqui vim trazer uma grande novidades para vocês. Um velocimetro com arduino,um projeto bem interessante que mostra como funcionam aqueles malditos radares em rodovias que vivem nos multando e dando lucros para o estado :)

Bem começa de um modo simples, utilizando sensores que eu já descrevi aqui no blog, o emissor e o receptor IR.


E mais um display lcd que mostra as informações colhidas pelo sensor.




Basicamente o projeto funciona assim, através de um tamanho pre estabelecido*no caso usei um carrinho de controle remoto, tamanho aproximado=20cm* voce interrompe a luz no receptor e, quando a interrupção cessa, e nesse cessamento é calculado a velocidade, tanto em metros por segundo quanto em km por hora. Basicamente se você quiser fazer o seu deve alterar o tamanho do seu objeto e dar uma propulsão nele e Voi-la, ele está pronto.
Ele ainda possui 2 leds, um indicativo que funciona, ligado ao pino 13, mais um led que liga apenas quando o infravermelho é interrompido, ligado ao pino 10

Primeiro monte o circuito conforme o esquema:




ps: o resistor azul é por voltar de 560, como no momento não lembrava das cores pintei os 2 de azul mesmo.

para testar o projeto colei uma folha de papelao encima do meu carrinho e separei o emissor e o receptor infravermelho em duas matrizes de contato distintas, alimentado com fontes própias, para fins de texte. Mas se voce está afim de investir existem módulos de ir que atingem grandes distâncias, apenas fiz o que estava ao meu alcance unindo eficácia e eficiencia*bom e barato*

Esse é o código que elaborei no arduino:
---------------------------------
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
int marca1=A0;

int pulso=13;
int aviso=10;
int leitor1;
float temp=0;
float tempa=0;


float resultado=0;
float resultado1=0;

void setup() {
  lcd.begin(16,2);
  pinMode(marca1,INPUT_PULLUP);
  pinMode(pulso,OUTPUT);
  pinMode(aviso,OUTPUT);
 
}

void loop() {
 
  digitalWrite(pulso,HIGH);
  leitor1= digitalRead(marca1);
 
  if(leitor1==1){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Acionado");
   
    digitalWrite(aviso,HIGH);
    lcd.setCursor(8,0);
    lcd.print(temp);
    delay(10);
    temp++;
    tempa =temp;
   
   
   
   
  }
 
   if(leitor1!=1){
     delay(200);
    digitalWrite(aviso,LOW);
  
   
   
    resultado =20/(tempa);
    resultado1=((resultado*36/10));
    lcd.setCursor(0,0);
    lcd.print("a velocidade e");
    lcd.setCursor(0,1);
    lcd.print(resultado);
    lcd.print("m/s");
    lcd.print(resultado1);
    lcd.print("km/h");
    temp=0;
   
   
   
  }
   
   
 
 

}
-----------------------------
E é isso ahe pessoal, em breve o vídeo da montagem e até a próxima.
Como prometido, eis o vídeo


Pessoal fiz a etapa2 do projeto com algumas melhorias, agora ele possui dois sensores em vez de 12, então não importa o tamanho do objeto, pois qualquer objeto pode passar pelo sensor calibrado.
1 monte conforme o esquema:


Depois copie o código fonte melhorado:
--------------------
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
int marca1=A1;
int marca2=A0;

int pulso=13;
int aviso=10;
float temp=0;
float tempa=0;


float resultado=0;
float resultado1=0;

void setup() {
  lcd.begin(16,2);
  pinMode(marca1,INPUT_PULLUP);
  pinMode(marca2,INPUT_PULLUP);
  pinMode(pulso,OUTPUT);
  pinMode(aviso,OUTPUT);

}

void loop() {

  digitalWrite(pulso,HIGH);
 

  if(digitalRead(marca1)==1)
  while(digitalRead(marca2)!=1){
   
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Acionado");
  
    digitalWrite(aviso,HIGH);
    lcd.setCursor(8,0);
    lcd.print(temp);
    delay(10);
    temp++;
    tempa =temp;
    }
   
   
  
  
  
 

   if(digitalRead(marca2)==1)
   while(digitalRead(marca1)==0){
    
     delay(200);
    digitalWrite(aviso,LOW);
 
  
  
    resultado =110/(tempa);// aqui no 110 voce coloca a distancia, testei em 11 cm
    resultado1=((resultado*36/10));
    lcd.setCursor(0,0);
    lcd.print("a velocidade e");
    lcd.setCursor(0,1);
    lcd.print(resultado);
    lcd.print("m/s");
    lcd.print(resultado1);
    lcd.print("km/h");
    temp=0;
   
     }
  
  
 
  
  



}
--------------------------
E é isso ahe pessoal, eis o vpideo dele funcionando:



Nenhum comentário: