//GPIO declarations //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= byte segmentClock = 6; byte segmentLatch = 5; byte segmentData = 7; byte segmentClockLAP = 11; byte segmentLatchLAP = 10; byte segmentDataLAP = 12; //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= #define SENSOR 3 // define pint 3 for sensor #define ACTION 9 // define pin 9 as for ACTION float startTime; float endTime; float duration; byte timerRunning; unsigned long time; float distance; float seconds; // float minutes; float hours; float mph; int laps = 0; int avglaps= 0; // AVERAGE LAP COUNTER void loop() { if (timerRunning == 0 && digitalRead(SENSOR) == HIGH) { // stop counting startTime = millis(); timerRunning = 1; } if (timerRunning == 1 && digitalRead(SENSOR) == LOW) { // start counting endTime = millis(); timerRunning = 0; laps++; avglaps++; duration = endTime - startTime; seconds = (duration/1000); hours= (duration/3600000); mph= (distance/hours); Serial.print ("Lap: "); Serial.print (laps); Serial.print (" \t"); Serial.print ("mph: "); Serial.print (mph,3); Serial.print (" \t"); Serial.print ("sec: "); Serial.println (seconds,3); Serial.print ("avgLap: "); Serial.println (avglaps); delay(5); // added this delay to stop reading rear wheels error before was up to .003 seconds showNumber(mph); showNumberLAP(laps); /// LAP AVERAGE COUNTER LOOP CODE ///////////////////// double nd = mph; //double ad= mph; pushd(nd); double ad = avgd(); // pushd(ad); // this pushs previous average back into new average //Serial.print ("nd: "); //Serial.println (nd,4); Serial.print ("ad: "); Serial.println (ad,4); //Serial.print ("dlen: "); //Serial.println (dlen,4); //Serial.print ("d[dlen]: "); //Serial.println (d[dlen],4); //Serial.print(average); } }