#define PIR_PIN 2
#define LED_PIN 13
uint8_t prev = LOW;
unsigned long trials = 0, minD = 0xFFFFFFFFUL, maxD = 0, sumD = 0;
void setup() {
pinMode(PIR_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
Serial.begin(115200);
delay(200);
Serial.println("event,trial,detect_to_led_on_us,min_us,max_us,avg_us");
}
void loop() {
uint8_t s = digitalRead(PIR_PIN);
if (s && !prev) {
unsigned long t1 = micros();
digitalWrite(LED_PIN, HIGH);
unsigned long t2 = micros();
unsigned long d = t2 - t1;
trials++;
if (d < minD) minD = d;
if (d > maxD) maxD = d;
sumD += d;
unsigned long avg = sumD / trials;
Serial.print("rise,");
Serial.print(trials);
Serial.print(",");
Serial.print(d);
Serial.print(",");
Serial.print(minD);
Serial.print(",");
Serial.print(maxD);
Serial.print(",");
Serial.println(avg);
}
if (!s && prev) {
digitalWrite(LED_PIN, LOW);
}
prev = s;
}