#define PIR_PIN 15
#define LED_PIN 16
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);
Serial1.begin(115200);
delay(50);
Serial1.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;
Serial1.print("rise,");
Serial1.print(trials);
Serial1.print(",");
Serial1.print(d);
Serial1.print(",");
Serial1.print(minD);
Serial1.print(",");
Serial1.print(maxD);
Serial1.print(",");
Serial1.println(avg);
}
if (!s && prev) {
digitalWrite(LED_PIN, LOW);
Serial1.println("fall");
}
prev = s;
}