PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lpt Digitale Eingänge nutzen



Jenny
10.08.2004, 16:12
Hallo ich bastle schon eine ganze weile an einer Robotersteuerung
ich hab mir bei ebay so n alten roboterarm (quickshot v2000 falls bekannt) ersteigert und hab diesen umgebaut
jetzt sitz ich an der steuerung aber fest

habe für die digitalen eingänge die schaltung (attachm.) jeweils einmal aufgebaut
und als test in vb mal folgendes commando (mit inpout.dll)
aufgerufen



Private Sub cmdReadLpt_Click()
lblLptStatus.Caption = (Inp(&H378 + 1))
End Sub
Ich hab den Code mal ein bisschen lesbarer gemacht Bei Quellcodes bitte immer den "Code"-Tag benutzen, Sonic.

ich kann da machen was ich will ich bekomm immer nur "127" als antwort

kann mir jemand sagen was ich da falsch gemacht habe ?

sonic
10.08.2004, 16:33
Hallo
...
habe für die digitalen eingänge die schaltung (attachm.) jeweils einmal aufgebaut
und als test in vb mal folgendes commando (mit inpout.dll)
aufgerufen
...
ich kann da machen was ich will ich bekomm immer nur "127" als antwort
kann mir jemand sagen was ich da falsch gemacht habe ?

Wie hast du die Schaltung an die Pins angeschlossen?

Gruß, Sonic

Jenny
10.08.2004, 20:39
HI
+5v Hab ich von den Pins (Centronics! hab ein Druckerkabel dazwischen)32,13,12,10,11 genommen
Masse von Pin 29 für 32,11
und Pin 28 für 13,12,10
( pins sub d centronics
15 32
13 13
12 12
10 10
11 11
23 29
24 28
vielleicht hab ich da ja etwas vermurkst? )
Mfg Jenny :Ostern

shadow-netz
10.08.2004, 23:51
http://www.beyondlogic.org/spp/parallel.htm

notfalls hier nochmal genau nachschauen. da sind die anschlüsse des ports angegeben und mit welchem register man sie ansprechen kann.

hab mich auch vor 2 tagen mit dem PP beschäftigt und eine software für mein display geschrieben.

shadow-netz
10.08.2004, 23:52
das wichtigste ist die frage, ob du die daten, oder steuerpins als eingang nutzen willst. denn daten ist etwas fricklig.

Jenny
11.08.2004, 05:40
@ shadow netz
kannst du ein bisschen deutlicher werden ?
danke jenny

Jenny
11.08.2004, 06:02
@ shadow netz

http://www.beyondlogic.org/spp/parallel.htm

Hab ich mir angesehen aber das ist mir ein bisschen zu kompliziert
(Ich bin ja erst 12 und so gut kann ich halt noch nicht Englisch)

Jenny

shadow-netz
11.08.2004, 09:14
ok. etwas deutlicher ;)

parallel hat datenein- und ausgänge und steuerein- und ausgänge.

die kann man alle mit den registern ansprechen (adresse 378, 378+1, 378+2 für LTP1)

die steuerausgänge kann man leicht benutzen (einfach entsprechende werte an das Kontrollregister schreiben.

die steuereingänge kann kann man auch leicht benutzen, einfach aus dem statusregister die entsprechenden bit auslesen.


für die daten muss man zwischen SPP und EPP unterscheiden. kann man im bios einstellen.
1) SPP
die daten sind nur AUSGÄNGE (für den PC). d.h. man kann nix einlesen.

2) EPP
die daten können geschrieben UND gelesen werden, sind also bidirektional.

da wir ja gleich richtig anfangen muss man also erstmal im bios EPP einstellen. ;)

danach kann mit mit dem BIT 5 im Controlregister die richtung(für die daten) festlegen.
wobei man aufpassen muss, dass datenquelle und PC net gleichzeitig schreiben. also ERST UMSCHALTEN und dann das gerät ativieren.

shadow-netz
11.08.2004, 09:16
ach ja und ich würd WINIO nehmen, aber das ist nur so ein persönlicher geschmack. find ich einfacher.

shadow-netz
11.08.2004, 09:22
ach und bei deinen konkreten problem:

beschalte mal die pins, die du genannt hast so:
http://user.cs.tu-berlin.de/~erikb/schalt3.jpg

Tiger-Grey
11.08.2004, 11:03
hm man kann mit 12 schon bei e-bay was ersteigern
:-) :-b

Jenny
11.08.2004, 13:22
@ Tiger Grey :Ostern - über den Vati natürlich !

@ shadow-netz ,Danke werd die Pins so beschalten (melde mich heute Abend ob es gelappt hat ), das sind dann also die Steuereingänge !? Richtig?-die kann ich mit dem von mir verwendeten Code schon auslesen oder ? is ja Basisadr +1 oder ?
und wie kann ich das Bit 5 im Controllregister stellen (Sorry bin mir jetzt net sicher ob das mit call out... geht(Welcer von den Vielen is da jetzt der Controllregister- basisadr= datenport
basisadr+1=status
basisadr+2 sind wieder ausgänge is Er da irgendwo dabei ?)

Entschuldigung für die vielen Fragen aber allein komme ich da nicht mehr weiter... :Ostern
grüsse jenny

shadow-netz
11.08.2004, 15:27
@ Sonic ,Danke werd die Pins so beschalten (melde mich heute Abend ob es gelappt hat ), das sind dann also die Steuereingänge !? Richtig?-die kann ich mit dem von mir verwendeten Code schon auslesen oder ? is ja Basisadr +1 oder ?
und wie kann ich das Bit 5 im Controllregister stellen (Sorry bin mir jetzt net sicher ob das mit call out... geht(Welcer von den Vielen is da jetzt der Controllregister- basisadr= datenport
basisadr+1=status
basisadr+2 sind wieder ausgänge is Er da irgendwo dabei ?)

Entschuldigung für die vielen Fragen aber allein komme ich da nicht mehr weiter... :Ostern
grüsse jenny

oder meintest du doch mich... ;)

basis = daten (lesen + schreiben)
basis + 1 = status (lesen)
basis + 2 = control (lesen + schreiben)

ein bit auf 1 setzen tut man mit ODER
register = (register ODER 0x10); für bit 5

ein bit auf 0 setzen tut man mit und
register = (register UND 0xEF); für bit 5

und bit 5 des controllregister musst du setzen


das ganze ist aber nur für die datenleitungen
mit der schaltung von oben kannst du direkt vom status register die status leitungen auslesen(kA, wie das bei deiner PP bibliothek geht)

shadow-netz
11.08.2004, 15:33
das ist auch gut
http://www.logix4u.net/parallelport1.htm

char data = _inp(0x378+1); sollte es tun meiner meinung nach.

Jenny
11.08.2004, 19:02
@shadow-netz
Oooops hab mich verschaut beim abtippen....
Sorry !
MFG Jenny
:oops:
ps Kanns Heute doch nicht mehr machen hab keine 10K Wids bekommen..

Jenny
11.08.2004, 20:09
@ shadow-netz!
tja Dein Link hat die Frage beantwortet wegen dem schreiben auf Bit 5...(bild)

aber mein grosser Bruder war grad da ich hab Ihm die Schaltung gezeigt und er meint es wird wahrscheinlich nicht funktionieren (er kann mir nicht helfen er ist nur Elektriker)
Er sagt wenn ich die 5V mit einem Widerstand davor auf den eingang schalte kommt dort nix an wegen irgend einem Spannungs zerfall !?! :-k

Grüsse Jenny :Ostern

sonic
11.08.2004, 20:30
@ Sonic ,Danke werd die Pins so beschalten (melde mich heute Abend ob es gelappt hat ...
grüsse jenny
oder meintest du doch mich... ;)


Höchstwahrscheinlich ;-)

Also Leute ich glaub wir reden hier aneinander vorbei, ich steig noch nicht ganz durch was du machen willst...

Ich mal das mal exemplarisch für einen Pin/Eingang auf ;-)

LPTPin --------> Eingang/Roboterarm

Also willst du den Arm mit den Pins des LPT's ansteuern.. Dann versteh ich nicht ganz warum du versuchst den Port auszulesen? Du müsstest doch was reinschreiben?

Hast du Win2000/XP? Wenn ja, brauchst du so nen extra Treiber damit diese DLL auf den Port zugreifen kann, oder täusch ich mich da? Hast du den installiert und am Laufen?

Vielleicht wärs das einfachste wenn du dir zum ausprobieren des Programms die Zustände der benutzten Pins anzeigen lässt
(pro benutzem Pin, Portpin---->340Ohm--->LED--->GND)

Hast du in der Zwischenzeit mal nen Drucker an die LPT angeschlossen und geschaut ob die überhaupt noch geht? Ein falsches Käbelchen an den Falschen Ports und dein LPT ist hinüber...been there done that...

Gruß, Sonic

shadow-netz
11.08.2004, 20:36
dieses inpout ist eine spezielle DLL dafür sonic.

ich find auch wir müssen mal klären, ob etwas in den COMPUTER REIN oder RAUS soll!!! beantworte mal bitte diese frage!


zu dem widerstand:
das ist der, wenn daten IN DEN COMPUTER sollen. es kann dann auch irgendein anderer sein, also nicht unbedingt 10k.

shadow-netz
11.08.2004, 20:39
also nochmal für den fall, dass daten in den rechner sollen.
da wo 0V oder 5V steht. da musst du dein signal anlegen von außen.

die widerstand ist nur dafür da, dass wen nichts anliegt der pegel von alleine 5V gehoben wird. sobald eine richtige spannungsquelle da ist, ist der wirkungslos (das ding nennt sich pullup)

sonic
11.08.2004, 20:39
dieses inpout ist eine spezielle DLL dafür sonic.


Ok, aber es gibt da mehrere, ich hatte mal eine da musste man zusätzlich noch ein Programm im Hintergrund laufen haben, deswegen die Frage...

Gruß, Sonic

shadow-netz
11.08.2004, 20:46
ja es gibt verschiedene versionen. auch welche mit treiber.

ich hab für mein display WinIo benutzt. da hab ich zB EPP und bidirektionale datenleitung gebraucht.

Jenny
11.08.2004, 20:48
HI
Ich will :
1. Über die Datenleitungen ein Signal schicken (=Adresse endgerät)(das is das was schon funktioniert)
2. Über einen Eingang (1 pin ) soll die Adresse quittiert werden (das funktioniert nicht)
3. Über einen weiteren pin der nicht von den Adressleitungen is soll das gerät aktiviert werden
4. Dann soll auf einen Eingang (wieder ein anderer) die Endlage (endschalter,Sensor) abgefragt werden und ann wird der Lpt wieder gelöscht (base=0,base+2=0)

Greetz Jenny :Ostern

shadow-netz
11.08.2004, 20:58
also willst du die datenleitungen nur als ausgang nutzen.
und ein paar steuerleitungen als ausgang und ein paar als eingang.

dann musst du die eingänge nur wie oben gezeigt beschalten (irgendwas um 5k bis 20k tuns)

und für die ausgänge musst du nur lesen, was ich über bit auf 1/ auf 0 setzen geschrieben habe.

damit sollte das eigentlich alles funktionieren ;)

Jenny
11.08.2004, 21:02
Hey
die 5V kann ich aber schon vom Centronics nehmen ...oder?

shadow-netz
11.08.2004, 21:07
wo hat denn der parallelport 5V ??

und nein. mit so viel würde ich den nicht belasten!!!

damit würde ich auch nicht so viel schalten... das sind digitale daten also eher für controller bestimmt ;)

Jenny
11.08.2004, 21:14
AUF CENTRONICS PIN 35 UND 18
ABER OK 5V Extern mach ich ;und wo muss ich dann den minuspol anschliessen ?
Masse?-wenn ja egal welche?

shadow-netz
11.08.2004, 21:15
die massen müssen alle zusammengeschaltet werden.
sonst hast doch keine potentialdifferenzen.

Jenny
11.08.2004, 21:24
OK jetzt hab ich mal zu tun das ich das alles umsetz...
THX Jenny :Ostern

shadow-netz
11.08.2004, 21:26
ran an lötkolben ^^
aber nur unter aufsicht ;D