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
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.
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
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.
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.
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.
ach ja! verdammt! ich habe auch den faktor 60 vergessen :-) peinlich... jetzt bekomme ich es auch hin, vielen vielen dank euch beiden. Jan
hey leute hab ein problem, wie kann man die drehzahl berechnen
Jan W. schrieb: > irgendwie stehe ich voll aufm schlauch, und mathe ist schon was länger > her :-) Hmm, bezeichnet man Dreisatz auch schon als Mathematik? Früher nannte man sowas "bürgerliches Rechnen".
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.