Der Code ist von mir. Im Prinzip braust du nur diesen Teil. Wenn du weniger als 1000 Umdrehungen messen willst mußt du noch den Überlauf des Timers berücksichtigen.
Code:
Do
Bitwait Pinb.0 , Reset
Start Timer1
Timer1 = 0
Bitwait Pinb.0 , Set
Bitwait Pinb.0 , Reset
Stop Timer1
Count1 = Timer1
Count1 = 1000000 / Count1
Count1 = Count1 * 60
Rpm = Int(count1)
Loop
End
Du hast zwei Möglichkeiten die Drehzahl zu messen. Einmal zählst du die Impulse über eine bestimmte Zeit, oder die Umlaufgeschwindigkeit messen. Ich benutze hier die Umlaufgeschwindigkeit.
Das Prinzip ist folgendes. Ich warte auf eine steigende Flanke, dann auf eine fallende Flanke, und wenn dann wieder eine steigende Flanke kommt habe ich eine Umdrehung, und aus der gemessenen Zeit rechne ich die Drehzahl.
Wenn du die Impulse zählst wird das nicht so genau, sagen wir mal du zählst die Impulse währen einer Hundertstelsekunde. In dieser Zeit kann deine Drehzahl sich viel verändern und dein Ergebnis ist falsch.
Lesezeichen