Me iba a poner ha programar el buffer y luego dije a ver que librería lo hace y mira esto
Adapté levemente un ejemplo para que lea bits
#include <CircularBuffer.h> // https://github.com/rlogiacco/CircularBuffer
CircularBuffer<bool, 100> queue;
unsigned long time = 0;
#define BUTTON_PIN 2
bool status;
void setup() {
Serial.begin(9600);
pinMode(BUTTON_PIN, INPUT);
time = millis();
}
// enqueue button press dequeueing every 2 seconds
void loop() {
if (millis() - time >= 250) {
status = digitalRead(BUTTON_PIN);
queue.push(status); // guarda el estado
time = millis();
Serial.print(status? "Boton ON": "Boton OFF");
}
}