Eai pessoal eu curso Automação Industrial na etec e estou tendo problemas para a programação do meu projeto, a ideia é que temos a faixa de pedestre e temos dois sensores ultrassônicos que ficam antes da faixa para medir a velocidade do carro, temos também uma velocidade padrão, quando o carro ultrapassa ela a faixa ira acender para avisar o pedestre do possível perigo. Gostaria de alguma sugestão sobre a programação.
Programação até agora:
#include <Ultrasonic.h>
#include <LiquidCrystal.h>
#define trig1 2
#define echo1 3
#define trig2 4
#define echo2 5
LiquidCrystal ()
unsigned long start = 0;
unsigned long finish = 0;
int carroPassouStart = 0;
int carroPassouFinish = 0;
double tempo;
double velocidade;
double distanciaSensores = 0.15;
double fatorParaSegundos = 1000;
Ultrasonic ultra1(2 , 3);
Ultrasonic ultra2(4 , 5);
void setup() {
lcd.begin(16,2)
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)
}
void loop() {
//seta o pino 2 com um pulso baixo "LOW" ou desligado ou ainda 0
// digitalWrite(trig1, LOW);
// delay de 10 microssegundos
//delayMicroseconds(10);
//seta o pino 2 com pulso alto "HIGH" ou ligado ou ainda 1
//digitalWrite(trig1, HIGH);
//delay de 100 microssegundos
//delayMicroseconds(100);
//seta o pino 2 com pulso baixo novamente
//digitalWrite(trig1, LOW);
//seta o pino 4 com um pulso baixo "LOW" ou desligado ou ainda 0
// digitalWrite(trig2, LOW);
// delay de 10 microssegundos
//delayMicroseconds(10);
//seta o pino 4 com pulso alto "HIGH" ou ligado ou ainda 1
//digitalWrite(trig2, HIGH);
//delay de 100 microssegundos
//delayMicroseconds(100);
//seta o pino 4 com pulso baixo novamente
//digitalWrite(trig2, LOW);
if(ultra1.Ranging(CM) < 10){
start = millis();
carroPassouStart = 1;
//Serial.println ("aqui1");
}
if(ultra2.Ranging(CM) < 10){
finish = millis();
carroPassouFinish = 1;
//Serial.println ("aqui");
}
if((carroPassouStart && carroPassouFinish )&& finish > start){
tempo = ((finish - start)/ fatorParaSegundos);
velocidade = ((distanciaSensores / tempo) * 3.6); //velocidade em km/h
Serial.print ("Tempo: ");
Serial.print (tempo);
Serial.println ("s");
//delay(1000);
Serial.print ("Velocidade: ");
Serial.print (velocidade);
Serial.println ("km/h");
//delay(1000);
lcd.print(velocidade)
carroPassouStart = 0;
carroPassouFinish = 0;
}
}