Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
DJ555 Gast
|
Verfasst am: 16.10.2004, 10:28 Titel: Parallele Schnittstelle ansteuern? |
|
|
Hallo!
Wie kann man in QB die Data 0 bis Data 7 Leitungen ansteuern?
Möchte nämlich eine LÜftersteuerung (softwarebasiert) basteln.
Falls Interesse zur Mitarbeit an dem Projekt besteht: DJ555@gmx.net
Würde mich ber Hilfe (Coder) freuen!
Danke im voraus!
DJ555 |
|
Nach oben |
|
|
Kai Bareis
Anmeldungsdatum: 10.09.2004 Beiträge: 545 Wohnort: Baden Würtemberg
|
Verfasst am: 16.10.2004, 10:37 Titel: |
|
|
Hi
mit out 888,0 schaltet man die 8 datenausgänge aus mit out 888,255 schält man alle an.
und wegen den ausgängen schalte niemals den lüfter direkt am parallel port sondern nimm relais oder transistoren die was aushalten
du kannst mir ja auch mailen kaibareis@aol.com oder icq=223603724 _________________ MfG Kai Bareis
Es ist noch kein Meister vom Himmel gefallen! Warum einfach wens auch umständlich geht! |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2514 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 16.10.2004, 12:58 Titel: Re: XP |
|
|
Sebastian hat Folgendes geschrieben: | aber wenn du Win XP hast, kannst du das meist vergessen mit dem Ansteuern der Hardware. |
Das Beste ist an dieser Stelle immer noch eine partitionierte Festplatte (kleines C: mit FAT 16bit und grosses D: mit NTFS) mit MS-DOS 6.22 und Windows XP als Dual-Boot drauf. So startet man ganz einfach ins DOS und kann dort mit INP() und OUT nach Belieben herumoperieren. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
|
DJ555 Gast
|
Verfasst am: 16.10.2004, 13:55 Titel: |
|
|
1. Hab ich schon die passendes Hardware fast fertig (mit MOS-FETs!)
2. Habe ich ne Boot-Diskette mit FreeDOS drauf und QBasic.
Ich will die 8 Datenausgänge einzeln ansteuern. Und dann mit Rechteckssignalen die Lüfter dimmen und abschalten. |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 16.10.2004, 14:58 Titel: |
|
|
Hallo !
Die Datenleitungen D0 - D7 werden über die acht Bit des Bytes gesteuert, die du mit
OUT 888, daten
ausgiebst.
Also so:
daten-------- D0 - D7
0-------------00000000
1-------------10000000
2-------------01000000
3-------------11000000
4-------------00100000
5-------------10100000
...
254----------01111111
255----------11111111
Hast du schon eine Idee, wie du das mit dem Dimmen machen willst ?
Sieh mal unter dem Beitrag "QB-Thermometer - dringend." von markus nach. Da geht es um den Temperatursensor SMT 160-30. Das Teil habe ich inzwischen mit ihm zusammen zum laufen bekommen. Damit kannst du ohne zusätzliche Hardware Temperaturen auf 0,2° C genau messen. Basiert auf dem selben Prinzip wie der Dimmer, nur umgekehrt. Du gibst keine Impulslängen vor, sondern misst die, die das Teil ausgibt. Aus dem Verhältnis von 0 zu 1 kannst du direkt die Temperatur in °C berechnen.
Du hast am LPT ja noch ein paar Leitungen frei. An die liesse sich solch ein Sensor anschliessen. Interessant wäre vielleicht noch, die Stromaufnahme der Lüfter mit einem A/D-Wandler zu überwachen. So könnten Störungen erkannt und sogar eine kleine Diagnose wie verschmutzt/blockiert, Kurzschluss oder Leitungsunterbrechung gestellt werden.
Es gibt Programme, die das nutzen des Parallelports unter XP ermöglichen sollen. Ich habe aber erst eins gefunden, das bei mir wirklich funktionierte. Allerdings ging dann der COM-Port nicht mehr...aber das kann auch an mir gelegen haben
Gruss
Skilltronic |
|
Nach oben |
|
|
DJ555 Gast
|
Verfasst am: 16.10.2004, 15:22 Titel: |
|
|
Das hilft doch schon mal weiter.
Ich hätte mir das dann so gedacht:
(Lüfter 2 an):
out 888, 00100000
wait 1 (wie kann man Millisekunden nehmen?)
loop until....
u.s.w. Muss mich da aber nochmal richtig reinarbeiten.
Deswegen suche ich ja Hilfe. |
|
Nach oben |
|
|
DJ555
Anmeldungsdatum: 16.10.2004 Beiträge: 1
|
Verfasst am: 16.10.2004, 15:34 Titel: |
|
|
So. Jetzt habe ich mich registriert. |
|
Nach oben |
|
|
Paul aka ICC, HV-Freak
Anmeldungsdatum: 11.09.2004 Beiträge: 588 Wohnort: Uelzen
|
Verfasst am: 16.10.2004, 19:05 Titel: RE: Parallele Schnittstelle ansteuern |
|
|
Also das mit WAIT ist anders gemeint, WAIT wartet, bis ein bestimmter Port einen bestimmten Wert hat, das hat mit Warten im Sinne von Zeit nichts zu tun. Ich denke das hier wird dir weiterhelfen:
Code: |
SUB Delay(Zeit#)
Startzeit# = TIMER
DO
LOOP UNTIL TIMER - Startzeit# >= Zeit#
END SUB
|
Funktioniert übrigens nicht um Mitternacht (da wird der Timer ge-resettet)
Achja, Binärzahlen kannst du in QB nicht als solche verwenden, aber du kannst die einzelnen Bits folgendermaßen, unabhängig voneinander setzen:
Code: |
Status = 0
Status = Status OR 1 '1. Bit setzen
Status = Status OR 2 '2. Bit..
Status = Status OR 4 '3. Bit
Status = Status OR 8 '4.
...
Status = Status OR 128 '8. Bit setzen
OUT 888, Status
|
_________________
|
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 16.10.2004, 19:33 Titel: |
|
|
Hallo
DJ555 hat Folgendes geschrieben: | Ich hätte mir das dann so gedacht:
(Lüfter 2 an):
out 888, 00100000 |
Ich glaube, da hast du mich falsch verstanden. Du gibst beim OUT-Befehl nur Dezimalzahlen zwischen 0 und 255 an. Diese werden in dem ein Byte grossen Register Nr. 888 als Dualzahl abgelegt, dessen 8 Bit dann die einzelnen Leitungen steuern. Wenn du also NUR Lüfter 2 einschalten willst, dann mit
OUT 888, 4
Vorrausgestezt, du fängst mit Null an zu zählen und Lüfter 2 ist der dritte Lüfter...
Das Dimmen könntest du z.B. so machen, dass du jeder Leitung einen Wert zwischen 0 und 100 zuordnest. Dann lässt du immer wieder eine Schleife durchlaufen, in der zu Beginn alle Leitungen ausgeschaltet werden. Erreicht der Zählerstand der Schleife den Wert einer Leitung, wird diese eingeschaltet. sagen wir mal Leitung 2 ist auf 50% eingestellt. Dann ist sie fünfzig Schleifendurchggänge aus- und die nächsten 50 lang eingeschaltet. Ich habe auf die Art mal eine Vollfarbleuchtdiode angesteuert. Durch Dimmen von Rot, Grün und Blau konnte man damit jede Mischfarbe erzeugen.
Gruss
Skilltronic |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 16.10.2004, 20:35 Titel: |
|
|
Ich nochmal.
Zum Setzen einzelner Bits und wie man daraus eine Dezimalzahl macht:
Leitung zwei soll eingeschaltet werden. Dazu werden von deinem Programm irgendwie die folgenden Einträge im Array leitung gemacht:
leitung(0) = 0
leitung(1) = 0
leitung(2) = 1
leitung(3) = 0
...
leitung(7) = 0
Willst du jetzt die entsprechende Dezimalzahl errechnen dann evtl. so:
dezimalzahl = 0
FOR bit = 0 TO 7
dezimalzahl = dezimalzahl + leitung(bit) * 2 ^ bit
NEXT
OUT 888, dezimalzahl
Weil leitung(bit) * 2^bit relativ viel Rechenzeit in Anspruch nimmt, kannst du für einen schnelleren Programmablauf die Stellenwerte der einzelnen Bits direkt als Wert für leitung benutzen. Es sollen z.B. jetzt Leitung 0, 3 und 5 eingeschaltet werden. Dann muss dein Programm anstelle von Nullen und Einsen jetzt folgende Einträge machen
leitung(0) = 1
leitung(1) = 0
leitung(2) = 0
leitung(3) = 8
leitung(4) = 0
leitung(5) = 32
leitung(6) = 0
leitung(7) = 0
Die Dezimalzahl kannst du dann so ausrechnen:
dezimalzahl = 0
FOR bit = 0 TO 7
dezimalzahl = dezimalzahl + leitung(bit)
NEXT
OUT 888,dezimalzahl
Gruss
Skilltronic |
|
Nach oben |
|
|
Kai Bareis
Anmeldungsdatum: 10.09.2004 Beiträge: 545 Wohnort: Baden Würtemberg
|
Verfasst am: 16.10.2004, 20:40 Titel: |
|
|
So habe mir grade mal eben ein Lüftersteuerung gebaut mit drei MOS-FETs (BUZ11). das ganze geht gut und das dimmen geht auch was dann aber inpulsweise geht, so das der Lüfter immer einen Impuls bekommt und er sich wen ich die Spannung wegnehme noch kurz weiter dreht dann wird die Spannung eingeschaltet. das ganze mache ich so wie es Skilltronik gesagt hat mit zwei For Next schleifen als delay.
wer den schaltplan haben will soll mir ne Email schicken (den muss ich halt noch machen ) und das programm schiecke ich dann auch mit! _________________ MfG Kai Bareis
Es ist noch kein Meister vom Himmel gefallen! Warum einfach wens auch umständlich geht! |
|
Nach oben |
|
|
Eisbaer
Anmeldungsdatum: 16.10.2004 Beiträge: 354 Wohnort: Deutschland,Bayern
|
Verfasst am: 16.10.2004, 21:49 Titel: Schnittstellen Ansprechen mit QuickBasic |
|
|
Hi,
Also für dieses Problem gibt es eine Sehr gute Seite im Web die sich mit der Ansteuerung des Ports aus QuickBasic, Windows und MS-Dos befasst : http://www.franksteinberg.de/
mfg Eisbaer _________________ Eigene Webseite:
http://www.eisbaer-studios.de |
|
Nach oben |
|
|
M. Gast
|
Verfasst am: 17.10.2004, 23:58 Titel: Argh! |
|
|
Es drängt mich anzumerken, daß du die Bemerkung von Meister Skilltronic, wir hätten den SMT-Sensor zusammen zum Laufen gebracht, ruhig ironisch auffassen kannst.
Ohne seine Hilfe würde ich immer noch im Lendenschurz in meiner Höhle sitzen, und verzweifelt Basic-Routinen in die Wände meißeln......
Übrigens empfehle ich -wie schon "Eisbaer" - dringend,
http://www.franksteinberg.de/progss.htm
einem zerebralen Integrationsprozeß zu unterziehen.
Gruß
Markus |
|
Nach oben |
|
|
|