Hallo erstmal, ich habe an meinem C164 einen Motor hängen, den ich per Tastendruck in 10 verschiedenen Stufen bis auf 230 U/min fahren kann. Auf der Welle befindet sich eine Zahnscheibe mit 30 Zähnen, welche eine Gabellichtschranke unterbricht um so die Drehzahl messen zu können. Ich habe mir das jetzt so gedacht... 1. Wenn ich größer als Stufe 0 bin (Motor dreht sich also schonmal) sollen die Signale der Lichtschranke einfach gezählt werden, und ab einem bestimmten Timerinterrupt, welcher eine bestimmte Zeit vorgibt soll dann die Drehzal berechnet werden. Das Problem das ich sehe, ist die Tatsache daß in Stufe 1 z.b. die Drehzahl sehr langsam ist. Wie würdet ihr bei so einem Problem vorgehen. Theoretisch muß die Umdrehungsausgabe auf dem Display ja etwas Zeitverzögert ablaufen, um nicht totalen Schwachsinn bei niedrigen Drehzahlen auszugeben. Danke für ihre Aufmerksamkeit :)
Bei niedrigen Drehzahlen ist es besser, die Zeit zwischen zwei Impulsen der Lichtschranke zu messen. Entweder durch schnelle Abtastung in einem normalen Timer-Interrupt, oder über die Capture-Funktion.
Heinz Tinkl schrieb: > Das Problem das ich sehe, ist die Tatsache daß in Stufe 1 z.b. die > Drehzahl sehr langsam ist. Wie würdet ihr bei so einem Problem vorgehen. Das Messprinzip umdrehen. Nicht der Timer fungiert als Tor, wieviele Pulse gezählt werden, sondern umgekehrt: Die Anzahl der Timerpulse zwischen 2 Pulsen von deiner Lichtschranke zählen.
Was spricht dagegen einfach die Zeit zwischen Lichtschranke offen - Lichtschranke geschlossen zu messen und anschließend hochzurechnen wieviel Zeit für alle notwendig wären?
Moin, also ich zähle generell lieber, weil man dann in einem festen Zeitraster arbeiten kann. Und bei z.B. 20u/min und 30 Zähnen kommst du ja schon auf 10Hz. Wenn du also im Raster von 0,1s den Counter ausliest, haste 1 Count drauf. Musst halt schauen, dass man bei der Höchstdrehzahl nicht in den Overflow vom Timer läuft, ODER dies gezielt nutzen um eine weitere Variable hochzuzählen. (So kann man auch nen 8-bit Timer dafür nehmen) Die erreichbare Auflösung muss man sich mal überlegen (falls es denn wichtig ist) und dann evtl. das Zeitraster (auch je nach Anforderung) verlängern. Ich habe mit diesem Prinzip eine Regelung für einen DC-Mot programmiert, die von so 150 U/min bis 18000 U/min wunderbar arbeitet und sehr sauber Drehzahlschwankungen durch äußere Lasten ausregelt, aber das ist OT... Wollte nur sagen, auch das Zählen geht bei niedrigen Drehzahlen... Gruß, Olof
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.