![]() |
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 04:49 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