#define PIN_LED 13 #define PIN_SW1 2 #define PIN_SW2 3 #define PIN_FLASH 5 volatile boolean sw1_flag = false; volatile boolean sw2_flag = false; volatile boolean sw1_released = true; volatile boolean sw2_released = true; unsigned long sw1_lastTime=0; unsigned long sw2_lastTime=0; unsigned long sw1_lastTimeMicros=0; unsigned long sw2_lastTimeMicros=0; #define SWDEBOUNCE 500 float sensordistance = 0.37; //in meters #define TIMESCOUNT 20 uint8_t times_index=0; float times[TIMESCOUNT]; void setup() { pinMode(PIN_LED, OUTPUT); pinMode(PIN_SW1, INPUT_PULLUP); pinMode(PIN_SW2, INPUT_PULLUP); pinMode(PIN_FLASH, OUTPUT); digitalWrite(PIN_FLASH, HIGH); for (uint8_t i=0;i=1){ if (kmh>getTimesMax()){ digitalWrite(PIN_FLASH, LOW); //Trigger flash delay(100); digitalWrite(PIN_FLASH, HIGH); } Serial.println(kmh); //Serial.println(" kmh"); //add time to last times queue times_index++; times_index%=TIMESCOUNT-1; times[times_index]=kmh; } } } float getTimesMax(){ float timesmax=0; for (uint8_t i=0;i