Forum: Mikrocontroller und Digitale Elektronik Drehzahlmessung mit Hallsensor


von Mauritz M. (mauritz)


Angehängte Dateien:

Lesenswert?

Hallo Leute,
ich habe grade eine schöne Drehzahlmessung gebastelt.
Sie funktioniert auch einwandfrei, für kleinere Drehzahlen.
Diese werden über 7 LEDs angezeigt und mit Hallsensoren gemessen.
Doch bei höheren Drehzahlen fangen mir die LEDs an zu blinken und ich 
weiß einfach nicht warum.
Die Abfragrate der Zählfunktion beträgt 2 ms. Die maximale Dauer einer 
Umdrehung des Systems liegt jedoch bei 50 ms, was meiner Meinung ja 
ausreichend sein müsste.

Ich hoffe es nimmt sich jemand kurz die Zeit und wirft einen Blick auf 
die C-Datei. Und ja, ich habe nicht sonderlich elegant programmiert, 
aber es soll ja nur funktionieren :)

Vielen Dank im Voraus,

Grüße, Mauritz

von Mauritz M. (mauritz)


Lesenswert?

Vielleicht sollte ich noch mit anführen, dass ein Atmega8 mit 12 MHz 
gequarzt ist. Vielleicht ist es dann jmdm klar =)

Danke!
Mauritz

von MC_AVR (Gast)


Lesenswert?

Hallo Mauritz.

Ich kann dir jetzt nicht direkt bei deinem Problem so helfen, aber wie 
ich aus deinem C-Programm erschließen kann, benutzt du nicht die TIMER 
des Atmega8, die eigentlich für Drehzahlmessungen gut geeignet sind.

Der Atmega8 hat einen Input  Capture Pin, welcher ein Interrupt auslöst, 
wenn an dessen Eingang eine Pegeländerung (High->Low oder Low->High) 
stattfindet. D.h. du könntest den Output Pin deines Hallsensors mit 
diesem PIN Verbinden und mit den TIMERN die Zeit zwischen zwei 
Interrupts messen. Es gibt auch eine Möglichkeit, ich glaube das nennt 
sich Noise Canceling, ein Interrupt erst dann auszulösen, wenn das 
Signal am Input Capture Pin 4-Systemtakte lang identisch bleibt. D.h. 
damit könntest du eventuelle "ausreißer" etwas ausgrenzen. Ich empfehle 
dir das AVR-GCC Tutorial durchzulesen um somit mehr Informationen über 
den ICP und den Timern zu erhalten.

Ich hoffe ich konnte dir damit irgendwie helfen ansonsten frohes 
Schaffen !

MfG,
MC_AVR

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.