![]() |
Parallele Schnittstelle
Hallo alle miteinander,
sorry für diese x-te Frage zu diesem Thema, aber ich brauche dringend Hilfe. :wall: Ein Kumpel und ich wollen eine an den PC angeschlossene Fernbedienung ansprechen. Diese Fernbedienung ist über den Druckeranschluss(parallele Schnittstelle) angeschlossen. Nun zu meinem Problem: Ich nutze Windows XP und habe absolut keinen durchblick wenn es um solche Anschlüsse geht. In diversen Threads bin ich auch nicht weiter gekommen. Der Anschluss ist so aufgebaut, das Pin 3,5,7 und 9 angesprochen werden müssen. der Pin 1 und 13 sind der + und - Pol. Kann mir irgend einer einen Quellcode geben, den ich nutzen kann? |
Re: Parallele Schnittstelle
Hallo und willkommen in der DP :dp: ,
was hast Du denn schon ? Zu diesem Thema gab es so einige Beiträge hier schon im Forum. Ich bin gerne dazu bereit, Dir zu helfen, wenn Du an einer Stelle im Sourceocode nicht weiterkommst. Aber einen kompletten Sourcecode wirst Du hier nicht so einfach bekommen. |
Re: Parallele Schnittstelle
|
Re: Parallele Schnittstelle
Naja, mein Probelm ist hauptsächlich das, dass ich ja Windows XP nutzen muss.
Zur Vorgeschichte: Wir müssen in unserer Schule ein Delphi-Projekt starten, am besten etwas ausgefallenes (für bessere Abiturnoten etc.) Ich habe mit einem Kumpel also ein kleines RC Auto genommen, welches wir über den PC steuern wollen. Die Fernbedienung ist so umgebaut, dass aus der Fernbedienung ein Druckerkabel kommt. Dabei sind in dem Druckerkabel verschiedene Pins aktiviert die wir ansprechen müssen. Z.b. Wenn wir eine Stromquelle (5V) an Pin 3 anschließen fährt das Auto gerade aus. Wenn wir diesen Impuls nun an Pin 5 anschließen, fährt das Auto nach rechts. Mein Problem ist nun halt das, das ich nicht so recht weiß, wie so ein Quelltext aufgebaut sein muss da ich ein absoluter Anfänger bin. Außerdem war immer wieder von verschiedenen DLL´s die Rede. Könntest du mir also helfen RWarnecke? PS: Die Fernbedienung funktioniert schon :spin2: *stolz* :spin2: . |
Re: Parallele Schnittstelle
|
Re: Parallele Schnittstelle
Hallo alle zusammen. Leider sind wir echt nicht weiter gekommen mit dem Quelltext. Kann uns denn nicht jemand noch irgendwie helfen?
Es gibt immer Fehlermeldungen, und unsere Fernbedienung wird einfach nicht angesprochen. |
Re: Parallele Schnittstelle
.. dann zeige doch mal Deinen SoruceCode.
Grüße Klaus |
Re: Parallele Schnittstelle
hi,
wir machen in der Schule auch was mit Hardware in Delphi, nutzen aber die Serielle Schnittstelle (ComPort), vllt solltet ihr darauf umsteigen, ist relativ leicht mit TComPort ( ![]() Hab eben mal geschaut, vllt hilft euch das ja weiter. ![]() Viel Glück noch bei eurem Projekt :) MfG blink182 |
Re: Parallele Schnittstelle
Oh, danke, das letzte zur parallelen Schnittstelle hat wirklich geholfen.
Nur noch ein Problem gibt es, wie kann ich einen - Pol per Delphi und PC ausgeben lassen? Wäre gut, wenn ihr eine schnelle Antwort wüsstet. Danke :gruebel: |
Re: Parallele Schnittstelle
Guten Abend,
meinst Du mit Pol einen bestimmten Pin der Schnittstelle? Die Datenpins sind ja D0 bis D7 Ein Char hat 8 Bit oder auch ein Byte. Der Char #01 würde dann D0 ansprechen Der Char #02 würde dann D1 ansprechen Der Char #04 würde dann D2 ansprechen. Grüße Klaus |
Re: Parallele Schnittstelle
Also unser Stecker der parallelen Schnittstelle
hat die Pins 1 bis 25 (Steckername: Sub-D 25). So Pin 1 soll nun die Plus Spannung haben, Pin 3 und 13 dafür sollen eine Negative Spannung haben.
Delphi-Quellcode:
const
port = $378; procedure TForm1.cbData0Click(Sender: TObject); var b : byte; begin GetPortVal(port,@b,1); if cbData0.checked then b := b or 1 // Bit0 setzen else b := b and 254; // Bit0 zurücksetzen, 255-1 SetPortVal(port,b,1); end; So sieht also unser Quelltext aus. Wenn CheckControl geklickt wird, soll es den Bit0 aktivieren. Stimmt das soweit? Also kommt ja automatisch eine positive Spannung. Wie ist das aber nun, wenn ich eine negative Spannung brauche? |
Re: Parallele Schnittstelle
Zitat:
Eine negative Spannung zu schalten (erzeugen) würde einen viel größeren technischen Aufwand bedeuten. Klaus01 hats bereits richtig gesagt. Das Bitmuster im Char gibt den Zustand an den 8 Bits am Parallelport wieder. Somit brauchst du doch nur das richtige Bitmuster (den Char) an den Parallelport übermitteln und schon hast du den entsprechenden Zustand an den Pins. Ob du die nun ver-ORST oder verUNDEST oder einfach nur als "Wert" an den Port übergibst... egal. |
Re: Parallele Schnittstelle
Liste der Anhänge anzeigen (Anzahl: 1)
So, also nun mal ein Bild zur näheren Information.
![]() Gut also, es gibt ja die Pins 1-25 bei einem Stecker. Nun haben wir also unsere Fernbedienung so umgebaut das der PIN3 das Auto gerade aus fahren lässt, PIN 5 dagegen rückwärts, usw...... . An dem PIN 1 des Steckers soll der Plus Pol sein, dass heißt, wir haben in unserem Quelltext
Delphi-Quellcode:
den Pin angesprochen, wenn die Checkbox aktiviert ist. Soweit ist das uns ja ganz klar.
procedure TForm1.cbData0Click(Sender: TObject);
var b : byte; begin GetPortVal(port,@b,1); if cbData0.checked then b := b or 1 // Bit0 setzen else b := b and 254; // Bit0 zurücksetzen, 255-1 SetPortVal(port,b,1); end; Unser Problem ist jetzt nur das, das der PIN 3, 5 usw. sowie ganz wichtig der PIN 13 negativ gepolt sein müssen. Wie bekommen wir das nun hin? Weil nur so funktioniert das Auto auch. |
Re: Parallele Schnittstelle
Noch einen Anhang....
die PINS 3,5,....13 müssen nur als - Pol vereinbart sein. Hatte nen Begriffsfehler. |
Re: Parallele Schnittstelle
Hier werden eigentlich alle Fragen beantwortet:
![]() Die Steuerung insbesondere der negativen Spannung über Optokoppler erscheint mir sinnvoll. |
Re: Parallele Schnittstelle
Zitat:
Entweder du hast Spannungen (zb. +5 Volt) gegen GND (Masse) oder negative Spannung ( - 5 Volt ) gegen Masse. Wo sitzt deine Masse ? Wie versuchst du die Fernbedienung anzusteuern ? (Ein Schema mit entsprechenden benötigten Spannungspotentialen wäre sehr hilfreich). Um eine negative Spannung "schaltbar" über den Parallelport auszugeben brauchst du mindestens ein weiteres externes Netzteil und ne entsprechende Logikschaltung. Diese Logik steckt dahinter: Du willst beispielsweise eine negative Spannung von -5V (gegen Masse) erzeugen. Hast aber nur ne positive Spannung (+ 5 Volt gegen Masse) die dir der Parallelport liefert. Ergo musst du mit einer entsprechenden Schaltung dafür sorgen, daß das positive +5 Volt Signal an der Paralellschnittstelle in ein negatives ( -5V ) Signal umgewandelt wird. Dazu brauchst du ne externe Spannungsquelle und einen entsprechende Logik. Blup sagte schon einen brauchbaren Lösungsansatz. Zitat:
[EDIT] nach Grübeln über dein Problem denke ich, du meinst mit " - POL " vielleicht den Minuspol der Spannungsquelle an der Fenbedienung ? - In diesem Fall könnte man mit einem Inverter das Signal einfach "umdrehen". D.h. Kommt ein positives Signal, dann wird der Ausgang 0 Volt. also gegen GND gezogen. Der "Minuspol" wäre in dem Fall 0 Volt [/EDIT] |
Re: Parallele Schnittstelle
Mach das
Delphi-Quellcode:
lieber so
b := b or 1 // Bit0 setzen
Delphi-Quellcode:
und wegnehmen mit
B:=b or $1 //Bit 1 setzen
b:=b or $3 //Bit 2 setzen b:=b or $7 //Bit 3 setzen b:=b or $f //Bit 4 setzen b:=b or $1f //Bit 5 setzen b:=b or $3f //Bit 6 setzen b:=b or $7f //Bit 7 setzen b:=b or $ff //Bit 8 setzen b:=b- $3 etc... |
Re: Parallele Schnittstelle
Zitat:
Delphi-Quellcode:
nicht dass das einen Sinn macht, und der Vorschlag fürs Rücksetzen auch nicht.
B:=b or $1 //Bit 1 setzen
b:=b or $3 //Bit 1 und 2 setzen b:=b or $7 //Bit 1 und 2 und 3 setzen b:=b or $f //Bit 1,2,3,4 setzen Gruss Reinhard |
Re: Parallele Schnittstelle
wollte nur zeigen wie man Bits setzt, da die vorgehensweise des Threaderstellers etwas holprig war.
Aber mein komment war falsch, da haste recht :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz