Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Tutorials und Kurse (https://www.delphipraxis.net/36-tutorials-und-kurse/)
-   -   Delphi Parallele Schnittstelle (https://www.delphipraxis.net/128070-parallele-schnittstelle.html)

delphi-projekt 3. Feb 2009 18:12

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?

letsfetz 3. Feb 2009 18:54

Re: Parallele Schnittstelle
 
Zitat:

Zitat von delphi-projekt
...Wie ist das aber nun, wenn ich eine negative Spannung brauche?

Eine "negative" Spannung wirst du dem Paralellport nicht entlocken können. Aber ich vermute du meinst damit 0 Volt. Entweder EINS (entspricht ca. +5 Volt) oder NULL (Entspricht ca. 0 Volt)

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.

delphi-projekt 3. Feb 2009 19:18

Re: Parallele Schnittstelle
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, also nun mal ein Bild zur näheren Information.

Hier schauen

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:
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;
den Pin angesprochen, wenn die Checkbox aktiviert ist. Soweit ist das uns ja ganz klar.

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.

delphi-projekt 3. Feb 2009 19:21

Re: Parallele Schnittstelle
 
Noch einen Anhang....

die PINS 3,5,....13 müssen nur als - Pol vereinbart sein.
Hatte nen Begriffsfehler.

Blup 11. Feb 2009 10:18

Re: Parallele Schnittstelle
 
Hier werden eigentlich alle Fragen beantwortet:
http://www.epanorama.net/circuits/parallel_output.html

Die Steuerung insbesondere der negativen Spannung über Optokoppler erscheint mir sinnvoll.

letsfetz 11. Feb 2009 13:31

Re: Parallele Schnittstelle
 
Zitat:

Zitat von delphi-projekt
Noch einen Anhang....

die PINS 3,5,....13 müssen nur als - Pol vereinbart sein.
Hatte nen Begriffsfehler.

Ich habe da echt ein Problem mit der genauen Aufgabenstellung. Es ist nicht so dass ich mich in der Elektronik nicht auskennen würde... Aber bitte definier mal " - Pol " ?!?

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:

Zitat von Blup
Die Steuerung insbesondere der negativen Spannung über Optokoppler erscheint mir sinnvoll.

Aber vielleicht verstehe ich dein Anliegen auch falsch. Bitte definier mal die elektrischen Gegebenheiten mal ganz genau, damit man dir helfen kann. :-) Also ein Schema auf dem man die gewünschte Verkabelung, die Komponenten und die geforderten Spannungen heraussehen kann.

[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]

matashen 11. Feb 2009 15:05

Re: Parallele Schnittstelle
 
Mach das
Delphi-Quellcode:
 b := b or 1     // Bit0 setzen
lieber so

Delphi-Quellcode:
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
und wegnehmen mit

b:=b- $3


etc...

Reinhard Kern 11. Feb 2009 17:32

Re: Parallele Schnittstelle
 
Zitat:

Zitat von matashen
Mach das
Delphi-Quellcode:
 b := b or 1     // Bit0 setzen
lieber so

Delphi-Quellcode:
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
...

Hallo, wenn schon dann

Delphi-Quellcode:
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
nicht dass das einen Sinn macht, und der Vorschlag fürs Rücksetzen auch nicht.

Gruss Reinhard

matashen 12. Feb 2009 08:35

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.
Seite 2 von 2     12   

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