/** * Tachymétre minimaliste avec une carte Arduino */ // Bug-fix pour Arduino 1.0.6 #define NOT_AN_INTERRUPT -1 /* constantes pour la broche de mesure */ const byte PIN_SIGNAL = 2; /* Variables pour la mesure */ volatile unsigned long periode = 0; /** Fonction d'interruption pour la mesure entre deux fronts */ void tick() { static unsigned long previousMicros = 0; unsigned long currentMicros = micros(); /* Calcul le temps écoulé depuis le précédent front */ periode = currentMicros - previousMicros; /* Met à jour la variable pour la prochaine interruption */ previousMicros = currentMicros; } /** Fonction setup() */ void setup() { /* Initialise le port série */ Serial.begin(115200); /* Met la broche en entrée */ pinMode(PIN_SIGNAL, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(PIN_SIGNAL), tick, FALLING); /* Permet une première màj de "periode" */ delay(500); } /** Fonction loop() */ void loop() { /* Affiche le résultat de la mesure en RPM */ Serial.println(1000000 / periode * 60); dela