www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik langsame Drehzahlen messen


Autor: Heinz Tinkl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 :)

Autor: Uwe ... (uwegw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Tom Ekman (tkon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Olof Gutowski (ole)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.