Archiv verlassen und diese Seite im Standarddesign anzeigen : Drehzahlmessung per Zeit
Hallo,
aktuell messe ich die Drehzahl meiner Motoren, indem ich die Anzahl der Impulse zähle und daraus alle 50ms die Geschwindigkeit in Upm errechne.
Ich verwende Motoren mit 32 Impulsen je Umdrehung und einem 1:30 Getriebe, also 960 Impulse je Umdrehung der Räder. Die Motoren schaffen bis zu 200 Upm (also 6000 Upm direkt an der Welle).
Ich überlege ob es vorteilhaft wäre, die Geschwindkeit stattdessen über die Messung des Zeitintervalls zwischen den Impulsen zu messen. Ist die Zeitmessung beim Arduino (16Mhz) dafür genau genug?
Hat einer von euch die Messung auf die Methode schonmal realisiert?
Als Vorteil sehe ich daß man nach jedem Impuls die aktuelle Geschwindigkeit sofort weiß und nicht erst auf den Ablauf des 50ms-Intervalls warten muß.
Hallo!
Du bist Theoretiker, weil praktich man nur um 25 Bilder pro Sekunde sehen kann. Das entspricht Zeitabständen zwischen sichtbaren "Bilder" um 40 ms. Ob es sich für die Ablesung der Drehzahl um die max. 10 ms früher die Änderung lohnt, muss du selber entscheiden. :confused:
oberallgeier
26.09.2015, 14:36
.. aktuell messe ich die Drehzahl ... Impulse zähle und daraus alle 50ms die Geschwindigkeit in Upm errechne ..Ob vorteilhaft oder weniger oder nicht - das ist eine der vielen Diskussionsmöglichkeiten von Systemfetischisten.
Meine Geschwindigkeitsmessungen sind wie die von Dir nachgefragte Methode.
Ich habe praktisch an jedem Controller nen Heartbeat-Timer, ne ISR von 50 µs, bei fast immer 20 MHz System-Clock. Der Basistimer des Heartbeats ist auch Grundlage meiner Geschwindigkeitsmessung. Der Timer tickert dabei mehrere Variablen hoch - für unterschiedliche Zwecke. Der tatsächliche Heartbeat ist z.B. eine Routine die 20 000 dieser 50µs-Abschnitte zählt, den Timer wieder nullt und dann die LED toggelt. Sprich: 0,5 Hz.
Die Encoder an der Motorwelle (z.T. 4 Ticks bei 760:1 und bis rund 3000 Hz) lösen einen Interrupt aus und lesen dabei den motorspezifischen Zähler, merken sich den Stand und nullen den Zähler. Damit habe ich schon die reziproke Geschwindigkeit in der Einheit x [50µs pro Encoderinterrupt], das sind bei durchschnittlicher Fahrt an die 10 "tupsi" (= meine "Timer-units-per-sensor-Interrupt). Vorteil: irgendwelche Augenblicke die der Encoderinterrupt nach dem 50µs-Interrupt kommt werden der nächsten Zeitmessung zugeschlagen.
.. Ist die Zeitmessung beim Arduino (16Mhz) dafür genau genug? Hat einer von euch die Messung auf die Methode schonmal realisiert ..Meine Controller ticken mit 20 MHz - aber die erwähnte Zeitmessung ist an die 50µs-Abschnitte gebunden. Das wäre beim Arduino auch machbar. Ne Überlegung ist natürlich der Stillstand . . . aber der wird auch erkannt.
.. Hat einer von euch die Messung auf die Methode schonmal realisiert? ..Mehrfach. Einmal z.B. beim MiniD0, ner 0,33er Coladose - Video von Aufnahme der Sprungantwort (https://www.youtube.com/watch?v=52ND0dmOb68) - und "in Funktion" (https://www.youtube.com/watch?v=s4DU7mS0p2w) - dazu auch bei Dottie, der 0,15er Coladose hier (https://www.youtube.com/watch?v=jgm9DhS7vS4) und schließlich muss auch Archie (https://www.youtube.com/watch?v=I5edmA1O4LA) damit zurandekommen. Zu Archie ne Anmerkung: bei Getriebe 30:1, Spurbreite 250 mm und Raddurchmesser 81,3 mm schaffe ich bei etwa 1 m/s einen Gleichlauf der beiden getrennten Antriebsräder von etwa 0,2 % (20 cm mehr Umfang bei 100 m Fahrstrecke) - ohne Eingriff von aussen oder Korrektur der Abstandssensoren.
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.