atmega Drehzahlmessung

OP #2649314
Lesenswert?
• ▲
▼
Hallo,
Ich würde gerne die Drehzahl eines Propellers mittels 
Lichtschranke(IS471F) und atmega644 messen. Die Drehzahl des Motors ist 
max. 5000 U/min also so ca. 85Hz.
Propeller mit 2 Flügel => 170Hz.

Daher will ich nun Frequenzen zwischen 0 - 170Hz messen.
Und die Auflösung sollte min. 10U/min => 0.15Hz betragen.

Sollte man das ganze per Software Periodendauermessung mittels Interrupt 
mit Flankentriggerung und Timer als Zeitbasis realisieren oder gibt es 
da noch andere Möglichkeiten?
#2649328
Lesenswert?
• ▲
▼
blogger b. schrieb:
> Ich würde gerne die Drehzahl eines Propellers mittels
> Lichtschranke(IS471F) und atmega644 messen. Die Drehzahl des Motors ist
> max. 5000 U/min also so ca. 85Hz.
> Propeller mit 2 Flügel => 170Hz.
>
> Daher will ich nun Frequenzen zwischen 0 - 170Hz messen.
> Und die Auflösung sollte min. 10U/min => 0.15Hz betragen.

Schau mal hier in die Codesammlung:

Beitrag "einfache Drehzahlmessung mit ATmega88"
Beitrag "4-Kanal Drehzahlmessung mit ATmega88"

Vielleicht paßt das ja.

Christian.
Gast #2649345
Lesenswert?
• ▲
▼
>zwischen 0 - 170Hz messen.
>Auflösung sollte min. 10U/min => 0.15Hz betragen.

Ohne jetzt die komplette Fehlerfortpflanzung zu bemühen. Mal eine 
Überschlagsrechnung:

Du willst also zwischen 170,00 und 170,15Hz unterscheiden.

  1          1
------  -  ------   = 5,18µs.
170,00     170,15

Du musst also bei der Messung der Periodendauer eine Genauigkeit von 5µs 
erreichen.

>Periodendauermessung mittels Interrupt mit Flankentriggerung

Da ich nicht davon ausgehe, dass das System prellt, würde ich es mit 
ICP-Interrupt und geeignetem Timertakt lösen.
OP #2649448
Lesenswert?
• ▲
▼
Stimmt mein Vorgang?

Ich setze den Zähltakt mittels Vorteiler auf < 5,18µs (also >192.836kHz)
TCCR1B CS10,CS11,CS12

bei 20Mhz FCPU/64 = 312.5kHz > 192.836kHz

Auflösung 1/FCPU/64 = 3.2µs


Overflow in 2^16 * 1/FCPU/64 = 209ms

=>minimal messbare Freqenz bei 1/209ms = 4.76

Beim ICP setze ich die Flankentriggerung auf fallend Reg ICES
Beim ICP interrupt lese ich die Periodendauer aus dem ICR und Setze TCNT 
zurück

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.