Åtgärd RPM - optisk varvräknare (8 / 10 steg)
Steg 8: Förklaring och beräkning
Programmet övervakar i princip mot IR-sensorn värde hela tiden och med högsta prioritet med avbryter.
Arduino Uno har 3 avbrott avbrott 0 är stift 2 på arduino.
attachInterrupt (0, RPMCount, RISING);
Denna linje fäster ett avbrott till stift 2 på arduino i "Stigande" läge. Detta innebär att när sensorn går från låg till hög, funktionen RPMCount(); åberopas.
Detta innebär att i en revolution, funktion kommer att anropas två gånger ( REV ++ ). Därför actualREV = REV / 2.
RPM = 30*1000/(millis() - tid) * REV;
För att beräkna den faktiska RPM, behöver vi den tid det tar för en revolution. Och (millis() - tid) är den tid det tar för ett fullt varv.
I detta fall, låt t vara den tid det tar för en fullständig revolution, så det totala antalet rotationer RPM i 60 SEK ( 60 * 1000 millisekund ) är:
RPM = 60 * 1000 / t * actualREV = > rpm = 60 * 1000 / (millis() - tid) * REV/2
ELLER rpm = 30 * 1000 / (millis() - tid) * REV;