HI auf LO umkehren

Diskutiere HI auf LO umkehren im Elektronik und Chipkarten-Programmierung Forum im Bereich Hardware & Software Forum; ich bin gerade dabei, eine Steurung für Relais am LPT Port zu bauen. Nur wenn ich den PC anschalte, dann sind die 8 Pins immer HI (sprich an...
  • HI auf LO umkehren Beitrag #1
O

oiermann

Bekanntes Mitglied
Dabei seit
30.12.2005
Beiträge
1.342
Reaktionspunkte
0
Ort
Milchstrasse
ich bin gerade dabei, eine Steurung für Relais am LPT Port zu bauen. Nur wenn ich den PC anschalte, dann sind die 8 Pins immer HI (sprich an, +5V). Wie kann ich das ganz einfach machen dass diese aus sind? Ich habs schon mit Relais gemacht, aber das zieht mir zuviel Strom. Die Spannung hol ich mir vom Gameport und das reicht zwar für die Relais, aber ich möchte evtl. noch mehr daran laufen lassen und dann wirds knapp.
Also, gibt es da eine sehr einfache möglichkeit?

Thx im vorraus.
 
  • HI auf LO umkehren Beitrag #2
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Natürlich; eine einfache Inverterschaltung. Entweder du nimmst Transistoren und betreibst die in Emitterschaltung, oder du verwendest gleich einen Inverter-IC (z.B. CMOS 4049 oder 4069).
Bezüglich der Relais solltest du sehr vorsichtig sein, um nicht dein Mainboard zu grillen (Freilaufdioden usw.)

Gruß,
Degi
 
  • HI auf LO umkehren Beitrag #3
O

oiermann

Bekanntes Mitglied
Dabei seit
30.12.2005
Beiträge
1.342
Reaktionspunkte
0
Ort
Milchstrasse
(z.B. CMOS 4049 oder 4069).
ich glaub das werd ich machen.
Bezüglich der Relais solltest du sehr vorsichtig sein, um nicht dein Mainboard zu grillen (Freilaufdioden usw.)
ich hab da 3V relais die je nur ca. 20mA brauchen, die hab ich mal aus ner uralten telfonanlage rausgezogen (ich wusst doch, die kann man brauchen....). das macht zusammen 160mA und bei schalten brauchen die ja noch ein bisschen mehr, da komm ich, denke ich jetzt mal, auf höchstens 300mA wenn alle 8 gleichzeitig schalten.
Das müsste mein Board noch verkraften. Aber eben, sobald ich da noch was anderes hinhängen will, wirds knapp. ich hab nichts auf anhieb gefunden, aber mehr wie 500 will ich nicht herausholen.

Danke!
 
  • HI auf LO umkehren Beitrag #4
schlurch

schlurch

Bekanntes Mitglied
Dabei seit
06.05.2003
Beiträge
6.763
Reaktionspunkte
35
Ich kann das zwar nicht abschätzen, wie das bei deinen Relais aussieht, aber es geht nicht um den Stromverbrauch, sondern um die rückwärtsgerichtete, induzierte Spannung, wenn die Relais abfallen.
Funk im Zweifelsfall mal Egal88 an.
 
  • HI auf LO umkehren Beitrag #5
O

oiermann

Bekanntes Mitglied
Dabei seit
30.12.2005
Beiträge
1.342
Reaktionspunkte
0
Ort
Milchstrasse
das müsste sich ja dann durch dioden regeln lassen, oder?
hat sich ja nun erledigt, das mach ich ja jetzt mit transistoren und dem inverter.
 
  • HI auf LO umkehren Beitrag #6
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Ganz richtig, das gefährliche ist die Selbstinduktion. Die Ausgänge der Schnittstelle sind "relativ" empfindliche Logikausgänge. Es ist aber möglich, dass deine Relais bereits eine solche Diode eingebaut haben. Falls nicht, solltest du Dioden parallel zu den Relaisspulen vorsehen, die im Betrieb in Sperrrichtung geschaltet sind, welche dann die negative Selbstinduktionsspannung kurzschließen. Soweit ich weiß, werden für diesen Zweck schnelle Schottky-Dioden empfohlen.
Auch die 20mA sind zwar nicht sehr viel, aber auf jeden Fall weit außerhalb der Spezifikation der Schnittstelle; ganz zu schweigen von der Belastung, wenn mehrere Ausgänge einschalten.
Ich würde dir unbedingt empfehlen, einen Treiber wie den ULN2803 zur Ansteuerung deiner Relais zu verwenden.
Auch gut wäre eine alte IO-Karte aus einem 486er-PC oder so. Dann hast du eine gute Chance, nur die Karte zu schrotten, falls mal was schief geht.

Alle diese Empfehlungen gelten auch, wenn du einen Inverter-IC zwischenschaltest. Möglicherweise gibt es sogar 8fach-Inverter, dann bräuchtest du nur einen IC, aber da fällt mir leider kein passender ein.

Gruß,
Degi
 
  • HI auf LO umkehren Beitrag #7
Egal88

Egal88

Super-Moderator & Mr. Powerforen 2012
Teammitglied
Dabei seit
13.05.2000
Beiträge
10.828
Reaktionspunkte
4
Ort
hinter'm Mond ...
schlurch schrieb:
Funk im Zweifelsfall mal Egal88 an.
Danke für die Blumen :D , aber cmddegi hat das mindestens genau so gut im Griff! ;)
oiermann, was willst du denn bauen??
 
  • HI auf LO umkehren Beitrag #8
O

oiermann

Bekanntes Mitglied
Dabei seit
30.12.2005
Beiträge
1.342
Reaktionspunkte
0
Ort
Milchstrasse
oiermann, was willst du denn bauen??
schon passiert :D die halbe nacht getüftelt.....zumal ich eh nich allzugut hierin bin, wars nicht einfach.

Das ist eine Fernsteuerung für so ein Auto. Bin grad am Software schreiben. Funktioniert auch schon so halbwegs.

Ich hab das ungefähr so gemacht:
An den vier Signalen die ich an der Fernbedienung habe (Vor,Zurück,L,R) einen Transistor zum schalten rangemacht, den zu einem Transistor der an den jeweiligen ausgängen des LPT Ports ist und noch eine LED schaltet. Die Fernbedienung ist zwar eigentlich für 9V aber über 5V, die ich von einem Powerstecker rausgelegt habe, funktionierts auch ganz gut.

Worin ich grad probleme hab, ist die software, aber das bekomm ich schon noch hin.
(in BASIC auf ner DOS-Kiste (386er) mit OUT(&H378), X)
 
  • HI auf LO umkehren Beitrag #9
Marsupilami

Marsupilami

Bekanntes Mitglied
Dabei seit
31.10.2004
Beiträge
1.438
Reaktionspunkte
0
Ort
Braunau
sowas hab ich auch mal vorgehabt :ja:
aber mit den µCs bin ich noch nicht so weit, mal schaun ob das nochmal was wird bei mir. . .
kannst du dann den Quelltext bitte posten oder mir per mail schicken?

Tobi
 
  • HI auf LO umkehren Beitrag #10
O

oiermann

Bekanntes Mitglied
Dabei seit
30.12.2005
Beiträge
1.342
Reaktionspunkte
0
Ort
Milchstrasse
da gibts im moment ein problem! unter windows läufts nicht und unter dos (quick basic) hab ich das mit der lenkung nicht hinbekommen (aber kommt noch)

//edit: das problem mit dem lenken:
ich muss fahren, dass die lenkung anspricht und ich habs noch nicht hinbekommen, dass ich zwei
gleichzeitig anschalte, wenn ich das abwechselnd in ner schleife (do.....loop) dann stottert die karre

du musst beachten, dass die pins so angesteuert werden:

der erste pin: OUT(&H378), 1
der zweite: OUT (&H378), 2
der dritte : OUT (&H378), 4
der vierte: OUT (&H378), 8
der fünfte: OUT (&H378), 16
.... 32
.... 64
.... 128
und ALLE auschalten ...0

ich hab am .., 1.. pin voräwrts und am ,2 pin rückwärts angelegt:

das geht dann ungefähr so
Code:
PRINT "stop mit e"
PRINT "ende mit q"
PRINT "vorwärts mit w"
PRINT "Rückwärts mit s"
DO
A$=INKEY$
IF A$="e" THEN OUT (&H378), 0
IF A$="q" THEN OUT (&H378), 0: END
IF A$="w" THEN OUT (&H378), 1
IF A$="s" THEN OUT (&H378), 2
LOOP
das ist das nötigste grundgerüst. ich hoff du blickst da durch, weil wenn nicht, dann solltest das lassen und nachfragen, weil sonst ist schnell ein board geschossen!!!!
Was du noch beachten musst, dass 378 bei out steht für lpt1, für lpt2 brauchst du 278.
Hier die anschlussbelegung des lpt-ports http://www.databooks.com/tecref/parport.gif
du brauchst nur data0 bis data3 (4 kanäle) bis data 7 (8 kanäle) kannst du ansteuern, dann gibt es noch verschiedene signale wie paperempty, mit denen kannst du dem pc was sagen, aber da hab ich noch kein plan wie das funzt.

soll ich noch schnell nen schaltplan zeichnen, einscannen und hochladen?


ich hoff da sind keine fehler drin, die hier was kaputt machen würden! das is ziemlich hardware nah und ich fänds echt gut, wenn man mich SOFORT berichtigen würde, falls da was ist.

PS: Ich habs an nem alten Pentium 2 gemacht, mit ner LPT-Karte, wenn die schrott geht, dass juckts wenig, die dinger fiindet man massenhaft im elektronikschrott. (der 386er tut irgendwie nicht mehr....)
 
Zuletzt bearbeitet:
  • HI auf LO umkehren Beitrag #11
Marsupilami

Marsupilami

Bekanntes Mitglied
Dabei seit
31.10.2004
Beiträge
1.438
Reaktionspunkte
0
Ort
Braunau
danke, soweit blick ich noch durch. . .
aber ich hatte sowieso vor das ein bisschen anders durchzuführen.

Wenn ich das zu Ferienbeginn machen möchte, darf ich wohl noch Assembler schreiben :ja: :lol:

Tobi
 
  • HI auf LO umkehren Beitrag #12
O

oiermann

Bekanntes Mitglied
Dabei seit
30.12.2005
Beiträge
1.342
Reaktionspunkte
0
Ort
Milchstrasse
Wenn ich das zu Ferienbeginn machen möchte, darf ich wohl noch Assembler schreiben
häääh? blick ich nicht ganz!

//edit: das mit den 5V hab ich über den gameport gelöst. wenn ich noch eine kleine steuerung darüber baue, dann härs auch nicht so sinnlos, wegen einem einzigen käbelchen ein stecker für den gameport ranzulöten.
 
  • HI auf LO umkehren Beitrag #13
Marsupilami

Marsupilami

Bekanntes Mitglied
Dabei seit
31.10.2004
Beiträge
1.438
Reaktionspunkte
0
Ort
Braunau
wollte damit sagen, dass wir noch assembler schreiben. . . war irgendwie ironisch gemeint, könnte ein bisschen kompliziert werden. . .

Tobi
 
  • HI auf LO umkehren Beitrag #14
O

oiermann

Bekanntes Mitglied
Dabei seit
30.12.2005
Beiträge
1.342
Reaktionspunkte
0
Ort
Milchstrasse
schon irgendwie...
aber das könnte sich lohnen wenn man etwas ziemlich kompliziertes baut und es auf geschwindigkeit ankommt.
es gibt auch tools, die basic dateien in assembler umwandeln, funktioniert aber nicht sehr gut, das hiess glaube ich "bas2asm"
 
  • HI auf LO umkehren Beitrag #15
fox99

fox99

Bekanntes Mitglied
Dabei seit
27.11.1999
Beiträge
3.948
Reaktionspunkte
27
Ort
Omicron Persei 8
oiermann schrieb:
//edit: das problem mit dem lenken:
ich muss fahren, dass die lenkung anspricht und ich habs noch nicht hinbekommen, dass ich zwei
gleichzeitig anschalte, wenn ich das abwechselnd in ner schleife (do.....loop) dann stottert die karre
du brauchst logische verknüpfungen. hab da mal was in den code reingepfuscht.. hoffe das geht so :D
Code:
PRINT "stop mit e"
PRINT "ende mit q"
PRINT "vorwärts mit w"
PRINT "Rückwärts mit s"
wert = 0;
DO
A$=INKEY$
IF A$="e" THEN wert = wert and 252: OUT (&H378), wert
IF A$="q" THEN OUT (&H378), 0: END
IF A$="w" THEN wert = wert or 1: OUT (&H378), wert
IF A$="s" THEN wert = wert or 2: OUT (&H378), wert
LOOP

unter windows darf man nicht direkt auf den lpt zugreifen. dazu brauchst du noch einen treiber http://www.google.de/search?q=port95nt

// wenn jemand soeinen treiber für win64 hat, mit dem 32-bit-apps auf dn lpt zugreifen können bitte nachricht
 
  • HI auf LO umkehren Beitrag #16
O

oiermann

Bekanntes Mitglied
Dabei seit
30.12.2005
Beiträge
1.342
Reaktionspunkte
0
Ort
Milchstrasse
cool, danke ich werds nachher mal ausprobieren. bin grad dabei ein zweites zu bauen, diesmal mit dem inverter.
 
  • HI auf LO umkehren Beitrag #17
fox99

fox99

Bekanntes Mitglied
Dabei seit
27.11.1999
Beiträge
3.948
Reaktionspunkte
27
Ort
Omicron Persei 8
hmm.... warte mal... es kann nicht gut sein, wenn der vorwärts und rückwärts gleichzeitig bekommt...

wenn also an der fahrtrichtung was geändert wird erst:
wert = wert and 252 // vor-rück löschen
dann eins davon:
wert = wert or 1 // vorwärts setzen
wert = wert or 2 // rückwärts setzen

wenn rechts-links auf 4,8 liegen und an dem lenkeinschlag was geändert werden soll erst:
wert = wert and 243 // rechts links löschen
dann eins davon:
wert = wert or 4
wert = wert or 8
 
  • HI auf LO umkehren Beitrag #18
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Hi Leute! Ich hab euch hier mal ein für mich damals recht nützliches QB-Programm zur Anzeige des LPT-Status angehängt (ziemlich am Anfang des Quellcodes muss der verwendete Port eingetragen werden). Hab das vor vielen Jahren mal geschrieben, als ich mit Computerbasteleien angefangen hab.
Wenn man einen der invertierten Control-Port-Pins mit einer Drahtbrücke auf Masse legt, sieht man im Programm sofort die Auswirkungen, so könnt ihr ein Wenig experimentieren.
Ein zweites Mini-Programm hab ich auch noch dazugepackt.


Ich kann fox99 nur zustimmen; seit Win2k unterliegt die parallele Schnittstelle gewissen Sicherheitsrestriktionen. Es gibt mehrere Treiber, die den Zugriff erlauben. GiveIO ist einer der bekannteren, mit Userport habe ich auch des öfteren gearbeitet.
Auch mit den logischen Verknüpfungen hat er vollkommen recht. Das kommt daher, dass die Datenpins (2-9) des LPT direkt der binären Darstellung der ausgegebenen Zahl entsprechen. Die oben genannten Zahlen für die verschiedenen Pins sind genau die 2er-Potenzen, die immer genau dieses Bit ansprechen. Wenn ein neuer Wert ausgegeben wird, überschreibt dieser den alten Wert; daher lassen sich so nicht zwei Pins gleichzeitig setzen.
Um mehrere Bits zu setzten brauchst du ein logisches ODER (z.B. tmp = 1 or 2), welches die Summe repräsentiert (tmp = 3 macht das gleiche).
Es gibt noch mehr derartige Operationen, aber diese sollte für den Anfang reichen.
 

Anhänge

  • QB.zip
    1,3 KB · Aufrufe: 3
  • HI auf LO umkehren Beitrag #19
O

oiermann

Bekanntes Mitglied
Dabei seit
30.12.2005
Beiträge
1.342
Reaktionspunkte
0
Ort
Milchstrasse
also wenn ich dich richtig verstanden habe läuft das dann so:

out (&H378), 4 == LINKS
out (&H378), 8 == RECHTS
.....1 == VOR
.....2 == ZURÜCK

dann wäre vorwärts und rechts ...,9
oder?
 
  • HI auf LO umkehren Beitrag #20
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Ganz genau. Das funktioniert ganz einfach nach dem Binärsystem.
Der dezimale Zahlenwert eines Bits ist 2^n, wobei n die Nummer (Wertigkeit) des Bits ist, mit dem niederwertigsten (rechten) Bit bei n=0.
Man sieht da sofort, dass 2^0=1 (erstes Bit; n=0), und z.B. das vierte Bit (n=3) 2^3=8.
Du kannst dir das mit dem Windows-Rechner im wissenschaftlichen Modus ansehen. In der Wikipedia sollte das Binärsystem ebenfalls sehr gut erklärt sein.
Ich würde im Übrigen empfehlen, die Ausgabewerte ebenfalls in Hex anzugeben, weil man die viel leichter auf Binär umrechnen kann.
Der Ziffernbereich im Hexadezimalsystem (Basis 16) geht ja von 0-15 (0-9,A-F), was genau vier Bits entspricht (1111=15=0xF). Somit lassen sich acht Bits genau mit zwei Hex-Ziffern darstellen, ohne groß rechnen zu müssen.

Beispiel: 0xF0 = 11110000 = 240.
F entspricht 15 in Dezimalschreibweise. Berechnet wird der Dezimalwert dann mittels 15*16^1 + 0*16^0. Wobei die Hochzahlen wieder für die jeweilige Stelle stehen, und die 16 die Basis des Zahlensystems ist.

Diese Umrechnung funktioniert mit jedem Zahlensystem.
z.B. für Binär:
1010 = 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 10 = A

0x ist die übliche Darstellung für Hex-Zahlen in Programmiersprachen; nur BASIC verwendet &H.

Gruß,
Degi
 
Thema:

HI auf LO umkehren

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben