Umrechnung Abstand/Anzahl Impulse zu Drehzahl

OP #2939144
Hallo zusammen,

irgendwie stehe ich voll aufm schlauch, und mathe ist schon was länger 
her  :-)

und zwar messe ich in einem Projekt die Anzahl der Timer-Interrupts 
zwischen zwei Impulsen an einem Eingang (genauer gesagt, die Anzahl der 
Interrupts zwischen zwei Kurbelwellenumdrehungen eines Motors).
Soweit klappt das auch wunderbar, nur scheitere ich gerade bei der 
Umrechnung von der Anzahl der Impulse in die Drehzahl, hier mal ein paar 
Zahlen, Abstand zwischen zwei Impulsen wird ja kürzer, weil die 
Umdrehungen mehr werden pro minute:

Impulse - Drehzahl
  56        1000
  33        1500
  27        2000
  13        4000
usw.

Weiß einer wie ich das im Programm so berechne, dass bei einer gegeben 
Anzahl von impulsen, die Drehzahl ausgegeben wird? Rechne hier seit 
Stunden rum...

Vielen dank schon mal

Jan
Gast
wie groß ist denn deine messzeit oder misst du die impulslänge von 
fallender/steigender zu fallender/steigender?

weil wenn du die impulse misst sind eigentlich die impulse zur drehzahl 
proportional.
OP
Ich messe von fallender zu fallender Flanke. Das Verh. von Impuls zu 
Drehzahl ist schon proportional, aber mit steigender Drehzahl werden es 
ja weniger impulse (bei 1000 sind es 56, bei 2000 27, usw). Es wird jede 
millisekunde ein Timerinterrupt ausgelöst, und diese werden zwischen 
zwei fallenden Flanken gemessen.

Ich bekomme es irgendwie nicht hin, von einer gegebenen Anzahl an 
Impulsen die Drehzahl zu errechnen.

Jan
Gast
n      = Anzahl Timerinterrupts
tt     = Zeit zwischen zwei Timerinterrupts
tu     = Dauer einer Umdrehung
1 / tu = Drehzahl

n      = tu / tt
tu     = n * tt
1 / tu = 1 / (n * tt)

So rechnest Du die Drehzahl aus.

In Deinem Fall sind tt anscheinend ca. 18 us. Also gilt:
Drehzahl = 1 / (n * 0,000018)

Oder schöner:
Drehzahl = 56000 / n

Wie groß tt wirklich ist, weißt Du natürlich genauer.

Das ganze geht übrigens einfacher, wenn man die Capture-Funktion des 
Timers benutzt anstatt Interrupts zu zählen.
Gast
verdammt zu langsam.

mmh ok man bin i dumm also das sind ja denn 56ms

d.h.
          1/56ms = ca. 17,85Hz

da du aber drehzal hast also bezogen auf eine minute muss der wert noch

              ca. 17,85Hz * 60s = 1071 U pro min.
Gast
Ich gesehe gerade, ich habe den Faktor 60 vergessen. Es sind ja 
Umdrehungen pro Minute und nicht Sekunde. Also kommt der 
Timer-Interrupts jede Millisekunde und nicht alle 18 us.

Aber das Prinzip bleibt das gleiche.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.