/* SIMPLE LAP TIMER Publish Beta-03 with ir + reset+ serial flush 08 September 2015 oleh : Iqbal Sensor : LDR */ int sensorPin = 7; //e18 int sensorReading; int ledPin =13; //LED monitor waktu read int lap=0; int currentLap=0; int previousLap=0; unsigned long start, finished, elapsed; void setup(){ pinMode (sensorPin, INPUT_PULLUP); Serial.begin (115200); Serial.print ("LAP TIMER B-4L"); } void(*resetFunc)(void)=0; void displayResult(){ float h, m, s, ms,cr; unsigned long over; elapsed = finished - start ; h = int (elapsed/360000); over = elapsed%3600000; m= int(over/60000); over=over%60000; s=int(over/1000); ms=over%1000; cr=lap; Serial.print (m,0); Serial.print ("min"); Serial.print (" "); Serial.print (s,0); Serial.print ("sec"); Serial.print (" "); Serial.print (ms,0); Serial.print("ms"); Serial.print(" "); Serial.print("lap : "); Serial.println(cr,0); Serial.flush(); } void loop(){ sensorReading = digitalRead (sensorPin); if (digitalRead(sensorPin)==false){ // tingkat sensitif start=millis(); // delay(10); digitalWrite (ledPin,HIGH); currentLap =1; } else if (digitalRead(sensorPin)==true){ finished = millis(); // delay(10); digitalWrite (ledPin, LOW); currentLap=0; displayResult(); // Mobil Tidak melewati sensor } if (currentLap!=previousLap){ if(currentLap==1){ lap=lap+1; } } previousLap=currentLap; delay(10); char data = Serial.read(); switch (data){ case 'ON' : resetFunc(); case 'STOP' : Serial.println("========End========"); delay(15000); break; } }