Forum: Mikrocontroller und Digitale Elektronik Frequenzmessung mit Input-Capture - Drehzahl geht bei Stillstand nicht auf Null


von Alexander (Gast)


Lesenswert?

Hallo,

ich Werte für meine Drehzahlerkennung zwei Impulse aus und errechne mir 
die Drehzahl anhand der beiden Zeitwerte, des Taktes und der Overflows.
Soweit funktioniert das super.
Wenn aber der Lüfter aufhört zu drehen und dann still steht, bleibt eine 
kleine Drehzahl (kleiner als 10) übrig, die ich nicht auf Null gesetzt 
bekomme.
Im Moment blende ich Drehzahlen kleiner als 10 aus und setze dafür den 
Wert 0. Das ist, wie ich finde, nur eine Notlösung.

Wie kann ich, wenn der Lüfter tatsächlich steht und noch ein 
Drehzahlwert ansteht, diesen auf 0 setzen?
Ich verwende einen ATmega8 und AVR Studio inklusive WinAVR.
Als Eingangspin für die Impulse nehme ich ICP1.

Vielen Dank,
Alexander

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Wie kann ich, wenn der Lüfter tatsächlich steht und noch ein
> Drehzahlwert ansteht, diesen auf 0 setzen?
So etwa:
1
  Drehzahl = 0;

Hast du dir schon mal überlegt, was mit dem Capture passiert, wenn keine 
Flanke mehr kommt?

Du wirst also ein Timeout brauchen, das z.B. mit irgendwelchen 
Flanken/Pegeln am Impulseingang zurückgesetzt und mit einem Timer 
hochgezählt wird.

Oder du merkst dir den aktuellen Capture-Stand und siehst nach, ob der 
sich ändert. Falls der sich nicht mehr ändert, lässt du dein Timeout 
hochlaufen.

Es ist auf jeden Fall Handarbeit nötig.

von Alexander (Gast)


Lesenswert?

Danke,

ich hatte nicht daran gedacht, dass der Timer immer weiter läuft und 
sich die Overflows erhöhen.

Ich hatte vorher
1
if (Ergebnis <= 10)
2
{
3
Ergebnis = 0.0;
4
}

Wenn ich stattdessen
1
if (Overflows > 5000)
2
{
3
Ergebnis = 0.0;
4
}
schreibe, sollte ich doch erkennen, dass sich der Lüfter nicht mehr 
dreht, da bei der ersten positiven Flanke die Overflows auf 0 gesetzt 
werden?!
Ich werde meine Gedanken aber auf jeden Fall ausprobieren!

Gruß,
Alexander

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.