mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Drehzahlmesser mit Periodendauer


Autor: Dougie (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.