Forum: Mikrocontroller und Digitale Elektronik Drehzahlmesser mit Periodendauer


von Dougie (Gast)


Lesenswert?

Hallo Experten,

jetzt hab ich mir extra einige Wochen Zeit gelassen, bevor ich zu viel
Frage, was man durch lesen auch heraus hätte bekommen können.

Ich hab hier testweise einen "Drehzahlmesser" mit nem ATMEGA8 @ 4Mhz
aufgebaut. Ich habe dazu eine Infrarotlichtschranke (CNY70) als
Impuslgeber genommen und löse damit INT0 aus, der einen Zähler
hochzählt. Zum Testen habe ich einen Papst Lüfter genommen, dessen
Flügelrad ich in der Mitte zur Hälfe mit silberfolie beklebt habe. Das
gibt dann eben einen Impuls pro Umdrehung.

Der 16bit Timer fragt jede volle Sekunde den Zählerstand ab und gibt
den auf dem Display aus (Umdrehungen pro Sekunde)

So weit so gut. Leider ist die Anzeige mit einem Ergeniss pro Sekunde
sehr träge. Der Lüfter dreht mit etwa 47 U/sec was etwa 2800 U/min
entspricht.

Wenn ich jetzt die Zähldauer von einer Sekunde auf eine vietel Sekunde
reduziere, wird die Anzeige natürlich schneller, aber eben auch sehr
ungenau. Der Zählerstand variiert dann von 10 bis 13.

Wenn ich das dann mit 240 multiplizieren würde (um auf U/min zu kommen)
kämen ich immer auf die diskreten Werte 2400, 2640, 2880 und 3120 ...
das ist erst recht Käse.

Also würde ich gerne die Periodendauer als Grundlage der
Drehzahlermittlung nehmen.
Natürlich wäre es einfach den Timer bei null los laufen zu lassen, um
dann bei jedem Impuls den Zählerstand abzufragen und den Timmer wieder
auf Null zurück zu setzen.

Damit hätten wir dann die Periodendauer in Sekundenbruchteilen.
Bei knapp 3000 U/min liegt die also in der Grössenordnung von 0,33 ms

Die Ausgabe auf ein LCD ist also für jede Periode nicht möglich, weil
Display länger braucht.

Drehzahl ist bekanntlich in der Einheit 1/s, was eine Division
notwendig macht. Hab ich noch nie gemacht. Hat jemand ne Idee wie ich
das hinbekommen soll?

VG
Ralf

von Εrnst B. (ernst)


Lesenswert?

Erstmal: Falsches Forum, Seh keinen Code zum Sammeln in deinem Post ;)

Messung der Periodendauer sollte genau genug gehen, einfach Timer1
kontinuierlich durchlaufen lassen (z.B. mit 1MHz), und mit dem Input
Capture mode den Wert auslesen, wenn die Lichtschranke anspricht.

Für genaue Messungen sollte der AVR aber aufjeden Fall mit Quarz
laufen.

Dann (nachdem das LCD eh nicht schnell genug ist), mehrere Werte
sammeln und den Mittelwert ausgeben.

/Ernst

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.