Δραστηριότητα #3

#include <LiquidCrystal.h>

// Δήλωση ακίδων οθόνης LCD
const int rs = 6, en = 7, d4 = 8, d5 = 9, d6 = 10, d7 = 11;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

unsigned long t1, t2;
double td, tsec, vel;

void setup()
{
lcd.begin(16, 2); // Αρχικοποίηση οθόνης LCD
pinMode(A0, INPUT); // Δεύτερος αισθητήρας διέλευσης
pinMode(A1, INPUT); // Πρώτος αισθητήρας διέλευσης
}

void loop()
{
if(analogRead(A1)>512) { // Πατήθηκε το πρώτο πλήκτρο
t1=millis(); // Καταγράφεται η χρονική στιγμή 1 (msec)

// Περιμένουμε να πατηθεί και το δεύτερο πλήκτρο
while (analogRead(A0)<512) {
delay(1);
}

// Πατήθηκε το δεύτερο πλήκτρο
t2=millis(); // Καταγράφεται η χρονική στιγμή 2 (msec)

// Υπολογισμός ταχύτητας
td=(t2-t1); // Η Χρονική διαφορά (msec)
tsec=td/1000; // Η Χρονική διαφορά σε sec
vel=0.5*3600/(tsec*1000); // Η ταχύτητα σε Km/h

// Εμφάνιση μηνύματος
lcd.clear();
lcd.print("Time: ");
lcd.print(tsec);
lcd.print(" sec");

lcd.setCursor(0, 1);
lcd.print("Vel: ");
lcd.print(vel);
lcd.print(" Km/h");
}

delay(10); // Καθυστέρηση 10 millisecond(s)
}