PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] 4 Motoren mit 3 Timern überwachen



Jeti
23.11.2012, 12:49
Hallo an Alle,

ich möchte gerne die Drehzahl von 4 Motoren mittels Gabellichtschranke durch einen ATMEGA-8 Regeln lassen. Da ich in Sachen Microcontroller-Technik noch recht am Anfang stehe wollte ich fragen ob folgende Vorgehensweise Sinn macht. Ich arbeite übrigends viel mit dem Buch von Florian Schäffer "AVR Hardware und C-Programmierung in der Praxis". Dort habe ich auch eine Möglichkeit zur Drehzahlbestimmung mittels Timer gefunden. Nun habe ich ja aber einen Timer zu wenig. Also habe ich mir folgendes überlegt.

Ich würde versuchen alle Gabellichtschranken mittels einem Timer zu zählen. Aber halt nicht Gleichzeitig sondern hintereinander. Also das erst der Timer1 benutzt wird um Lichtschranke 1 zu zählen, dann hört er damit auf und zählt die Impulse von Lichtschranke 2... usw. Wenn ich diese Abfrage hintereinander recht schnell ablaufen lasse müsste ich ja eigentlich auch ziemlich gute Drehzahlen für jeden Motor bekommen oder?

Ich hoffe es ist klar geworden was ich machen möchte? Funktioniert das? Gibt es andere elegantere Methoden in die ich mich einlesen könnte?

Viele liebe Grüße
Jeti

oberallgeier
23.11.2012, 14:35
... die Drehzahl von 4 Motoren mittels Gabellichtschranke durch ... ATMEGA-8 Regeln lassen ...Du meinst also offensichtlich wirklich einen geschlossenen Regelkreis. Ok.

Regeln eines oder mehrerer Motoren geht auch mit nur einem Timer. Ich fahre mit (für meine Ansprüche) ausreichender Genauigkeit zwei Motore mit zwei Gabellichtschranken an einem Timer. Der Timer gibt mir die Zeitticks und in den Interruptroutinen der Gabellichtschranken lese ich diese Zeitmarken aus. Daraus bekomme ich meine (inverse) Geschwindigkeit - nämlich sec/Umdr. Genauer natürlich: Anzahl der Zeitmarken von je 50 µs Dauer pro Encoderscheiben-Tick. Die entsprechende Regelung läuft auf nem mega168/20MHz - mittlerweile meist m328/20MHz - im 100 Hz-Raster auf meiner Dottie (klick hier) (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=358306&viewfull=1#post358306) und natürlich auch auf meinem MiniD0 (klick). (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=503279&viewfull=1#post503279) Fahrdiagramm und Sprungantwort(en) z.B. hier (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=422091&viewfull=1#post422091) - und ausführlicher hier. (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=503279&viewfull=1#post503279)

MICH würde allerdings noch interessieren, wie Du mit einem mega8 vier Motoren ansteuern willst. Per I²C, SPI oder . . . ? Direkt von den mega8-Pinnen weg (grübelwunderkopfschüttelnochmehrgrübel...).

Jeti
23.11.2012, 17:38
ich dachte ich steuer die über eine software-PWM und ein paar MOSFET´s an... also jeder Motor bekommt ein MOSFET und jedes MOSFET wird durch einen PIN gesteuert.
Danke für deine Erklärungen und die Links!

oberallgeier
23.11.2012, 17:57
... also nur Drehzahlregelung und keine Drehrichtungswechsel. Hmmm - da kann ich leider nicht mitsprechen, ich fahre meine Motoren/Motörchen nur über H-Brücken (klick) (http://www.rn-wissen.de/index.php/Getriebemotoren_Ansteuerung#Ansteuerung_mit_Treibe r_ICs) , da brauche ich pro Motor drei Pinne, einen davon mit PWM-Signal.

PICture
23.11.2012, 18:07
Hallo!

Wenn die Motoren genug träge sind, könnte man die Ausgangssignale für alle ständig ausgeben und für jeden nach Drehzahlmessung entsprechend einzeln korriegieren, also quasi Multitasking nur beim Drehzahlmessen anwenden. Es müsste also so wie du es machen möchtest funktionieren. ;)

Jeti
23.11.2012, 23:30
Perfekt! Danke! Dann werde ich das mal so angehen und schauen wo es mich hinführt :).

Vielen Dank euch beiden für die Hilfe