delay() est la première fonction que l'on emploie et la première dont il faut se méfier. Elle suspend tout le programme pendant la durée demandée.
Le programme
int lectures[10];
void setup() {
for (int i = 0; i < 10; i++) {
lectures[i] = analogRead(A0);
delay(100);
}
}
La lecture elle-même est instantanée à cette échelle : seule la pause compte.
Objectif
Donner la durée d'un tour, la durée totale de la boucle, le nombre de lectures possibles en une seconde, puis dire si la carte peut réagir à un bouton pendant la pause.
Pièges
La dernière question est la raison pour laquelle on abandonne delay() dès qu'un programme doit faire deux choses en même temps. Rien n'est mis en attente : les appuis survenus pendant la pause sont simplement perdus.