Ok donc c’est bien ce que j’avais compris.
Imaginons que mon capteur passe de 0 à 1. Ça déclenche l’appel à la fonction, qui voit qu’on est à 1 et qui calcule donc le nombre de passages de 0 à 1 et me sort une valeur, disons 100. De part la nature du capteur, si il a capté 100 fois que l’aimant arrivait à portée, il a forcément déjà capté 99 fois que l’aimant n’était plus à portée. Donc quand il passera de 1 à 0, ça sera la 100eme fois que l’aimant s’éloigne, donc le 100ème passage de 1 à 0, et comme 0 est la valeur actuelle, là aussi la fonction me retourne 100, d’où le fait que je n’ait qu’un changement d’état sur deux qui mène à une augmentation de la valeur retournée. Est-ce que c’est plus clair ?
Concernant le pluviomètre, j’utilise le système décrit ici
Il est basé sur un système à bascule, chaque bascule correspond à un volume d’eau donné, d’où l’importance de prendre en compte les deux changements d’état.
Si je ne prends en compte que les changements de 0 à 1 par exemple, je peux multiplier par 2 la quantité d’eau liée au changement, mais du coup je divise par 2 la résolution du système