AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Parallele Schnittstelle
Tutorial durchsuchen
Ansicht
Themen-Optionen

Parallele Schnittstelle

Ein Tutorial von delphi-projekt · begonnen am 23. Jan 2009 · letzter Beitrag vom 12. Feb 2009
Antwort Antwort
Seite 2 von 2     12   
delphi-projekt
Hallo alle miteinander,

sorry für diese x-te Frage zu diesem Thema, aber ich brauche dringend Hilfe.
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?
 
delphi-projekt
 
#11
  Alt 3. Feb 2009, 18:12
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?
  Mit Zitat antworten Zitat
letsfetz

 
Delphi 7 Personal
 
#12
  Alt 3. Feb 2009, 18:54
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.
Michael
  Mit Zitat antworten Zitat
delphi-projekt
 
#13
  Alt 3. Feb 2009, 19:18
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.
Miniaturansicht angehängter Grafiken
subd25m_677.gif  
  Mit Zitat antworten Zitat
delphi-projekt
 
#14
  Alt 3. Feb 2009, 19:21
Noch einen Anhang....

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

 
Delphi 10.4 Sydney
 
#15
  Alt 11. Feb 2009, 10:18
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.
  Mit Zitat antworten Zitat
letsfetz

 
Delphi 7 Personal
 
#16
  Alt 11. Feb 2009, 13:31
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 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]
Michael
  Mit Zitat antworten Zitat
matashen

 
Delphi XE2 Enterprise
 
#17
  Alt 11. Feb 2009, 15:05
Mach das
 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...
Matthias
  Mit Zitat antworten Zitat
Reinhard Kern
 
#18
  Alt 11. Feb 2009, 17:32
Zitat von matashen:
Mach das
 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
  Mit Zitat antworten Zitat
matashen

 
Delphi XE2 Enterprise
 
#19
  Alt 12. Feb 2009, 08:35
wollte nur zeigen wie man Bits setzt, da die vorgehensweise des Threaderstellers etwas holprig war.

Aber mein komment war falsch, da haste recht
Matthias
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz