>>Home<<

Der Joystick-Port





Der Joystick-Port - eine analoge Schnittstelle!

Im Gegensatz zur COM-Schnittstelle ist der Game-Port (Joystick-Schnittstelle) - die übrigens seit den ersten IBM-PCs existiert - für einfache Basteleien sehr interessant. Sie enthält nämlich neben den vier digitalen Eingängen (für die Feuerknöpfe der beiden anschließbaren Joysticks) auch vier Eingänge, die (analoge!) Widerstandswerte in digitale Signale umwandeln können. (Ursprünglich gedacht für die x- und y-Koordinaten der beiden Joysticks.)

Die folgende Abbildung zeigt die Anschlussbelegung des Joystick-Steckers.

Widerstand 1
Pin 1 zu Pin 3
Bit 0
Widerstand 2
Pin 1 zu Pin 6
Bit 1
Widerstand 3
Pin 9 zu Pin 11
Bit 2
Widerstand 4
Pin 9 zu Pin 13
Bit 3
Taster 1
Pin 2 zu Pin 4
Bit 4
Taster 2
Pin 4 zu Pin 7
Bit 5
Taster 3
Pin 10 zu Pin 12
Bit 6
Taster 4
Pin 12 zu Pin 14
Bit 7


Diese Anschlüsse sind mit geringem Programmieraufwand auslesbar, und können sogar ein Ansatz dafür sein, das Prinzip der AD-Wandlung zu verstehen. Leider sind die Wandler sehr langsam, zeitkritische Messwerte können nicht aufgenommen werden.
Die Funktionsweise ist äußerst simpel: Der Joystickport bekomt ein Startignal, bei dem Kondensatoren aufgeladen werden (Bit 0..3 des Registers 513dez = 201hex auf high setzen). Diese entladen sich nun über die Joystickwiderstände. So lange die Kondensatoren noch ein zu einer bestimmten Menge geladen sind bleiben die vier Bits in diesem Register im Joystickport auf high - und fallen einzeln auf low, wenn eine bestimmte Grenze unterschritten ist. Das Programm liest nun wiederholt den entsprechenden Registerwert aus und misst die Zeiten bis die einzelnen Bits auf low fallen. Diese Zeiten sind ein Maß für die Widerstände.

In einer frei erfundenen Programmiersprache müsste das Programm also etwas so aussehen:

Die Maximalzeit muss mit berücksichtigt werden, da sonst Probleme auftreten, wenn nicht alle Widerstände angeschlossen sind.


Anwendungsbeispiel:

Ein eine ca. 1m lange Dachlatte wird oben ein Loch gebohrt, in dem die Achse eines 100k-Potis befestigt wird. Man erhält so ein gedämpftes physikalisches Pendel. Durch ein einfaches Programm (hier der Quellcode) kann man nun die Pendelschwingungen graphisch aufzeichnen und z.B. die einhüllende e-Funktion (Dämpfung) erkennen.

Auf diese Weise können gleichzeitig 4 analoge Widerstandswerte aufgenommen werden. Wenn man einen alten Joystick hat, von dem man das Kabel abschneiden kann (oder ein altes Joystick-Verlängerungskabel) geht das sogar ohne weitere Kosten!

Achtung! Bei der Jostick-Schnittstelle sollte man nicht mit externen Spannungen arbeiten!