PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Poti am LPT ?



LC-HC
21.07.2005, 20:20
Hi, ich wollte mal fragen, ob man am LPT auch eingänge mit potentiometern belegen kann ? brauch so etwas für einen Neigungssensor, ergo: der PC misst dem entsprechen die Spannung und ich kann meine Neigung ausrechnen. Anhand der Winkelgröße, die eine Fehlstelllung darstellen soll, will ich einen Motor zur korrektur einsetzten, bei dem aber die drehzahl auch per LPT gesteuert werden soll.

Thx für alle Antworten.

Marco78
21.07.2005, 20:32
Das geht so direkt nicht. Bis zu einem bestimmten Winkel hast du eine 0 am Eingang und ab einem bestimmten Winkel eine 1. Dazwischen ist es nicht vorhersehbar was für ein Pegel erzeugt wird.

Wieviel Schritte für den Winkel benötigst du denn? Und wie wir der Motor geregelt?

Du könntest die Spannung am Poti mit einem Analog-Digital-Wandler (AD oder ADC oder ADW als Suchbegriff) als Bitmuster in den PC geben. Der LPT ist bidirektional. Das bedeutet, das die 8 Datenleitung als Ein und Ausgänge genutzt werden können, falls die üblichen Ein- und Ausgänge nicht reichen sollten. Je nachdem wie dem Motor geregelt wird sollten 10 Bit Auflösung (1024 Schritte für den Drehwinkel) möglich sein.

btw: Den Regelkreis könnte man auch ohne PC ausbauen. Aber ich will dich nicht davon abhalten es am PC zu realisieren. Der Lernerfolg ist dabei sicherlich größer.

Das wäre mein Vorschlag um dein Vorhaben in die Tat umzusetzen.

LC-HC
21.07.2005, 20:42
Danke für den tip. so in etwa hab ich mir das alternativ auch vorgestellt. den Motor könnte ich auch in ca. 100 vordefinierten Stufen regeln. Wahrscheinlich brauch ich dann einen D/A wandler für den Motor ? Das wird was...

Marco78
21.07.2005, 21:02
Ich kenn die Mechanik ja nicht, aber ein Schrittmotor wäre vielleicht angebrachter. Bei 'normalen' Motoren hast du dann das Problem, das er bei weniger Last evtl zu viel nachregelt.
Ein Schrittmotor führt dann pro 'Ansteuerung' einen bestimmten (vom Motor anhänigen) Drehwinkel aus.
Wie genau muss das ganze denn werden?
Du könntest auch einen Drehwinkelgeber zum auswerten nehmen?!

LC-HC
21.07.2005, 21:21
Der effekt soll sein, dass der motor in 10 1/s schritten geregelt werden kann.
Der Drehzalbereich soll bei 500 - 3500 1/s liegen. Da komm ich ja knapp hin mit 255 Stufen bei acht bit, oder ?

Marco78
21.07.2005, 21:35
Ja, da fehlen dir nur 45 Schritte. Ich denke das könnte man verkraften.
Aber...
Du kannst einfach (einfach im Sinne des allgemeinen Sprachgebrauchs) einen PWM-Ausgang programmieren. Du brauchst dafür nur einen Ausgang des LPT der in unterschiedlichen Pulslängen ein- und ausgeschaltet wird.
Das ganze mit einem Transistor verstärkt an den Motor.
Je länger die Pausenzeit des Pulses ist, desto langsamer dreht sich der Motor.
Und je kürzer, desto schneller, bis der Ausgang dauerhaft eingeschaltet ist und der Motor mit voller Drehzahl drehen kann (abhänig von der Last).
Ich weiss aber nicht, wie genau man das programmieren kann, bzw wie genau die Hardware das umsetzen kann. Ich bin der Meinung hier mal gelesen zu haben, das der LPT nicht so Echtzeitgetreu arbeiten soll.
Ich kann mich da täuschen oder derjenige der das geschrieben hat, wusste es nicht besser.

LC-HC
21.07.2005, 21:55
Dat is´n spitzen ansatz, wo bleibt die eleganz ;) Aber ich glaub so werd ich´s machen, pulslängen per sleep() programmieren und die feinheiten austesten ( Echtzeitverhalten des LPT). Wird wahrscheinlich am schnellsten und biligsten sein, der puls an der Welle stellt halt auf dauer schon eine belastung dar.
Danke für die Anregungen

Marco78
21.07.2005, 22:00
Da nicht für.

Nur beim ADC kann ich nicht viel helfen. Da ich mal denke, das alles nicht von millisekunden abhängt wird das aber wohl auch nicht nötig sein. Da kannst du wohl so gut wie jeden gut verfügbaren ADC nehmen.