Forum: Mikrocontroller und Digitale Elektronik Dynamische Drehzahlerfassung


von Kay S. (mikromaster)


Lesenswert?

Hallo,

Ich sitze an einem Projekt,welches Dynamische Drehzahlen erfassen soll 
von einem Asynchronmotor mit 2000U/min max. Dazu verwende ich einen 
Differential Hall-Sensor (Zahnradsensor) der über der Motorwelle sitzt 
und immer einen Impuls sendet wenn ein Zahnrad Zahn an an ihm vorbei 
rauscht. Mein Problem besteht in der Programmtechnischen umsetzung (in 
C) da die Idee dich für die Messung Habe nicht Funktionieren.

Mein sensor Hat eine Taktrate von 100kHz -200kHz.
Hab 3 Timer/counter mit Capture zur verfügung mit Externen Interrupt 
eingang und. Mikrokontroller C8051F124 von Silabs.Wie Hoch sollte ich 
die Taktrate der Timer einstellen?

Meine Idee besteht darin Für kleine Drehzahlen ein Verfahren zu 
verwenden welches in einer Torzeit die impulse Zählt und für große 
Drehzahlen die Zeit zwischen den Impulsen zu erfassen, welche dann mit 
der entsprechenden Formel auf 1/min Umgerechnet werden.

von Karl H. (kbuchegg)


Lesenswert?

Kay Servatius schrieb:
> Hallo,
>
> Ich sitze an einem Projekt,welches Dynamische Drehzahlen erfassen soll
> von einem Asynchronmotor mit 2000U/min max.

OK. Also 33 Umdrehungen pro Sekunde

> Mein sensor Hat eine Taktrate von 100kHz -200kHz.

? Wie kommst du auf diesen Wert.

Wieviele Zähne hat den das Zahnrad, von dem du die Zähne zählst? Das mal 
die 33 ergibt dir die maximale Frequenz, die du messen musst.
Wieviel der Sensor im Maximum noch auflösen kann, interessiert doch 
keinen solange deine tatsächliche Taktrate unter dieser Grenze bleibt.

Und dass dein Zahnrad ~3000 Zähne hat, will ich der Einfachheit erst mal 
nicht annehmen.

> eingang und. Mikrokontroller C8051F124 von Silabs.Wie Hoch sollte ich
> die Taktrate der Timer einstellen?
>
> Meine Idee besteht darin Für kleine Drehzahlen ein Verfahren zu
> verwenden welches in einer Torzeit die impulse Zählt und für große
> Drehzahlen die Zeit zwischen den Impulsen zu erfassen, welche dann mit
> der entsprechenden Formel auf 1/min Umgerechnet werden.

Ja, klingt vernünftig.
Rechne dir aus wieviele Pulse du in der Sekunde bekommen wirst, welche 
Genauigkeit du erreichen willst und dann spiel ein bischen mit den 
Zahlenwerten deines Timers rum und sieh dir an wo du landen wirst.

von Maik F. (sabuty) Benutzerseite


Lesenswert?

Kay Servatius schrieb:
> Meine Idee besteht darin Für kleine Drehzahlen ein Verfahren zu
> verwenden welches in einer Torzeit die impulse Zählt und für große
> Drehzahlen die Zeit zwischen den Impulsen zu erfassen, welche dann mit
> der entsprechenden Formel auf 1/min Umgerechnet werden.

Normalerweise macht man das genau umgekehrt?

von Kay Servatius (Gast)


Lesenswert?

> Wieviele Zähne hat den das Zahnrad, von dem du die Zähne zählst?

also ich hab 10 Zähne, das heist ich hab 10 Impulse


> ? Wie kommst du auf diesen Wert.


Im Datenblatt des Sensors IGT101DC von Honeywell steht das er Taktraten 
über 100khz liefert.

>Ja, klingt vernünftig.
>Rechne dir aus wieviele Pulse du in der Sekunde bekommen wirst, welche
>Genauigkeit du erreichen willst und dann spiel ein bischen mit den
>Zahlenwerten deines Timers rum und sieh dir an wo du landen wirst.

Ja gut dann bin ich nicht ganz auf dem Holzweg:)hast du vieleicht eine 
Programmtechnische Idee wie ich das Implementieren kann? soll Capture 
verwenden oder nur die Interuppte vom Sensor Zählen?

Weil ich mich Programmtechisch total verand hab und nicht weiter weis.

Gruß

Kay

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.