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.
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:
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:
--------------------
#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:
Postar um comentário