Zurück zum Menü 5
5.2.4 LPT-Port mit Profan steuern #2      (inpout32.dll)

Erstellt im Sommer 2006


Immer wieder wird gefragt, wie man mit an einem PC den Druckerport ansteuern kann. Nun ich habe in den vergangenen Jahren auch herumprobiert und herumprobiert. Sicherlich gibt es ganz geniale Lösungen, aber die sind für Anfänger auch sehr schwer nachzuvollziehen.

Daher hier nun eine weitere einfache Variante:

Die strippenstrolch.de-LED-Lauflicht-Profan-WIN-XP-Variante.

Gut, gut, zunächst sollten wir unsere LED-Platine bauen. Die Schaltung ist so einfach, dass man sie getrost auf einer Lochrasterplatine aufbauen kann.

Hier mal eine einzige Stufe, die dann acht mal aufgebaut werden muss:



Wenn Du die komplette LED-Ausgabestufe sehen möchtest, insbesondere an welche Pins die Anschlüsse gehören, dann benötigst du den SPlan60Viewer (keine Installation nötig) und den Schaltplan. Das alles ist in folgendem Paket zum download bereit:
  • Download LPT Ausgabe Paket 1 ( ZIP, 1,5 MB )
Der Viewer hat eine ausgezeichnete Druckqualität, so dass du dir "astreine Unterlagen" herstellen kannst.

Wenn Du die Schaltung aufgebaut hast, so kannst du eine 4,5 Volt Flachbatterie anschließen und die Anzeigen testen, indem Du jeden Einagngswiderstand nacheinander mit Plus verbindest.

Dabei darf der PC-Stecker natürlich auf keinen Fall aufgesteckt sein.

Wenn Der jeweilige Eingang mit Plus verbunden ist und die zugehörige LED leuchtet, so ist alles in Ordnung.

Wenn das alles funktioniert, dann können wir ja weiter machen.

Wenn dieser Test nicht funktionieren sollte, so untersuche genau Deine Platine, denn wenn du trotzdem weiter machst, kannst du Deinen PC eventuell beschädigen !

Funktioniert es nun ?  Gut... :-)

Schauen wir uns zunächst einmal den Druckerport an und gucken, welche Pins wir belegen müssen. Ich mache das mal am Beispiel eines männlichen SUB-D-25-Steckers, der passt dann nämlich schonmal genau in die Buchse des PCs:



Da kann man dann gleich ein Flachbandkabel dranlöten.

( Ok, ok, irgend ein "Tüddelkabel" tut's auch ...)
 
Wie wir sehen, hat diese Schnittstelle zahlreiche verschiedene Anschlüsse. Wir brauchen aber für unseren Versuch nur "Data 0" bis "Data 7" und einen "Ground"-Anschluss.

Als Beispiel für den Anschluss einer Leuchtdiode zeichne ich mal nur einen Ausgang als beschaltet. Will man 8 LEDs betreiben, müssen natürlich alle acht Ausgänge beschaltet und die zugehörige Schaltung 8 mal aufgebaut werden.



Wenn Du also den vollen Port beschalten möchtest, so musst du das gelbe Kästchen 8 mal aufbauen und mit Pin 2 bis Pin 9, sowie Masse ( Ground ) verbinden. Die Batterie kann durch ein 5 Volt Netzteil ersetzt werden.

Also weiter:

Wenn Du Windows NT oder XP benutzt, dann verhindert das Betriebsystem, dass Du auf den Druckerport als User zugreifen darfst. Das müssen wir also noch ändern.

Zunächst guckst Du unter

Systemsteuerung -- System -- Hardware -- Gerätemanager -- Anschlüsse Com und LPT -- Druckeranschluss -- Ressourcen,


auf welcher Adresse Deine parallele Druckerkarte angemeldet ist. Diese Zahlen schreibst du auf ein Blatt Papier und bewahrst es gut auf, denn Du benötigst es noch später zum Progammieren des Lauflichtes.

Du sollst nur diese Adressen auf einem Zettel notieren, weiter keine Einstellungen verändern. Dann kannst du die ganzen Fenster wieder schließen und hier weiterlesen.

Nun musst du einen Treiber installieren, um Windows XP mitzuteilen, dass auf bestimmte Systemadressen im Usermodus zugegriffen werden darf.

Dazu benötigst du diese DLL:


Um nun in Profan programmieren zu können, genügt für unsere Zwecke die Version 5.0 NT, die auch unter Windows XP läuft. du kannst diese Version hier herunter laden, sie ist Freeware und darf kostenlos frei weiter gegeben werden.

Nach dem Download installierst du Profan 5.0 und extrahierst den "inpout32"-Ordner. Die DLL "Inpout32.dll" muss dann noch in das gleiche Verzeichnis kopiert werden, wo dann später auch das fertige Progamm ausgeführt wird.

So.

Nun benötigst du nur noch dieses kleine Tutorial, um die LPT-Ports ansteuern zu können:

'Tutorial für die Ansteuerung des LPT-Ports unter Profan.
'Geschrieben am 04.05.2008 von Stephan Mischnick,
' ---- www.strippenstrolch.mischnick.org ----

'Zunächst müssen wir ja die benötigten Variablen deklarieren:

declare laufvariable%,laufvariable1%

'So weit, so gut. Um nun eine DLL ansprechen zu können, ist es nötig, den Befehl
' "DEF" einmal geauer zu betrachten:

'Def <Name>(N) <Ausdruck>

' <Name>     - Funktionsname
' N          - Anzahl der Parameter
' <Ausdruck> - Funktion

' Ok, in diesem Tutorial heißt unser Name für neue Funktion also "byteausgeben"
' In Klammern kommt die Anzahl der angefügten Parameter drangehängt. "(2)"
' Dann folgen die beiden Parameter, zuerst der DLL-Name, dann die Funktion
' innerhalb der DLL:

def byteausgeben(2) ! "inpout32", "Out32"

' Das war's auch schon, jetzt kann unser Progamm bereits beginnen:

' Schleife bauen:


while laufvariable% < 255

' Laufvariable incrementieren:

 inc laufvariable%

' Und jetz das Byte mit der Funktion ausgeben:

 byteausgeben(888,laufvariable%)

'Der Zahlenwert ist der dezimale Wert der Adresse des Druckerports.

'Jetzt noch 'ne kleine Pause, damit man auch gucken kann, was passiert:

     while laufvariable1% < 100
      inc laufvariable1%
      byteausgeben(888,laufvariable%)
     endwhile
     laufvariable1%  = 0

'Und Ende der Haupschleife...

endwhile
laufvariable%  = 0
End

Tja wirklich  ! Das war's schon !

Du kannst das Tutorial entweder hier herauskopieren, aber ich habe es auch den ZIP-Ordner beigelegt. du kannst es so wie es ist in den Profan-Editor kopieren und dann gleich mal starten.

Bitte dran denken, dass die  inpout32.dll  auch im gleichen Verzeichnis bzw. unter /windows/system32/ liegt, sonst geht es nicht.



Ich hoffe, du konntest den Darstellungen folgen und Deine LEDs sind nun per LPT-Port schaltbar.

Wenn du es nun doch nicht lassen kannst und möchtest gern eine Lampe schalten, so kannst du auf diese Weise ein Relais mit dem LPT ansteuern:





Natürlich funktioniert das Ganze auch  z.B. mit einem Steckernetzteil mit 12 Volt:



 

Viel Vergnügen weiterhin,




Nach oben            Zurück zum Menü 5