-Componentes: slot de pilhas + sensor de ima + fios + Radio frequência apc220 + Arduíno.
-Descrição: O carro foi feito no proposito de deslizar em um trilho que contem uma especie de régua e a cada 25 cm desta "régua" contem um ima, cada vez que o carro passa pelo ima o sensor vai informar o tempo da passada.
Código:
#define sensorPin 4
int sensorState; // variável a guardar estado do botão
int lastsensorState; // variável a guardar o último estado do botão
long startTime ; // momento de partida do cronômetro
long elapsedTime ; // tempo decorrido no cronômetro
int fractional;
int cont = 0;
int i = 0;
int valor = 0;
void setup()
{
Serial.begin(9600);
pinMode(sensorPin, INPUT);
digitalWrite(sensorPin, LOW);
lastsensorState = LOW;
}
void loop(){
if(digitalRead(sensorPin) == HIGH){
startTime = millis();
delay(300);
while( cont < 3){
sensorState = digitalRead(sensorPin);
if(sensorState==HIGH && lastsensorState==LOW){
elapsedTime = millis() - startTime; // guarde tempo decorrido
// rotina para exibir tempo decorrido
Serial.print( (int)(elapsedTime / 1000L)); // divida por 1000 para converter a segundos - e então converta a inteiro
Serial.print("."); // imprima ponto decimal
// use operador módulo para obter parte fracionária part do tempo
fractional = (int)(elapsedTime % 1000L);
// preencha com zeros à esquerda - não seria ótimo se
// a linguage Arduino tivesse algo específico para tratar disso? :)
if (fractional == 0)
Serial.print("000"); // inclua 3 zeros
else if (fractional < 10)
Serial.print("00"); // inclua 2 zeros
else if (fractional < 100)
Serial.print("0"); // inclua 1 zero
Serial.println(fractional);
cont ++;
delay(300);
}
lastsensorState = sensorState;
}
cont = 0;
}
}