PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehere Parallelport Relais



Gho
14.09.03, 21:56
Ich habe mir nach den Beschreibungen ein paar Threads weiter unten eine Relaiskarte für den Parallelport gebaut. Funktioniert auch super, ich schalte meine Deckenbeleuchtung nur noch mit lirc an und aus :ugly:
Doch nun werden meine Parallelports am Rechner langsam knapp (Hab nur einen),
deshalb die Frage:
Was ist praktischer:
a) Eine Art Relais Controller am Parallelport der mehere Relais ansteuert (Schaltpläne? Treiber?)
b) Oder einfach noch ne ISA/PCI Karte mit noch ein paar Parallelports drauf (Wie siehts da aus mit Treibern?)

geronet
14.09.03, 22:28
Ich würd sagen eine weitere PP-Karte ist einfacher.
Wenn du mehrere Relais steuern willst brauchst du meistens einen Controller (µC), da kann man dann auch seriell rangehen. Programmieren muss man den nämlich auch noch ;)

Grüsse, Stefan

MarcM
14.09.03, 22:40
schon mal überlegt das ganze mittels Binär->Dezimal (oder wie das Dingens heißt) Baustein zu machen ?

Wir haben im Normalfall 8(Bit) Ausgänge. Macht 8 Relais. Wenn man jetzt son Wandler(Demultiplexer???) dranhängt, hätte man theoretisch die Möglichkeit auf bis zu 255 Relais.........

.....genauere IC Typen kann ich nachreichen.

Ihr müßtet dann "nur" die Ansteuerung umprogrammieren.....dürfte in C aber nicht das Problem sein, könnte ich helfen.....

Greetz

Marc

Stefan_1
15.09.03, 10:13
Das müßte hinhauen.. Ist halt en bischen en Schaltungsaufwand aber wenn das nicht stört.. wenn es sich nur um ein oder zwei weiter Kanäle handelt würde ich mir mal die Steuerleitungen ansehen, davon kanste ggf. auch nochmal welche verwenden..

Ich persönlich würde en µC nehmen.. ist halt auch mehr Arbeit, aber ist ne schöne & praktische Lösung..
Kommt aber auch daher das es mich sehr stören würde wenn ich wüste, daß ich im Dunkel sitze wenn mein Rechner mal abstürzt..

Stefan_1
15.09.03, 13:42
Hatte en Denkfehler.. mit de 255 Kanälen kann’s nicht klappen, da man immer nur eine von 255 einschalten kann!

In diese Richtung gibt es aber trotzdem Möglichkeiten..
7 Leitungen für die Ansteuerung sowie eine Leitung zum zustand setzen..

mit Leitung 0-6 Steuert man eine Adresse ( zwischen 0 und 128 ) an und mit Leitung 8 setzt (oder Löscht) man ein FlipFlop welches vor das Relay geschalten ist..

Wenn es zeitlich schnell genug geschieht mßte es auch möglich sein die trägheit der Relays auszunützen..
Eine Leitung (z.B.: Steuerleitung) regelt über eine Tor ( UND ) Schaltung ob Ausgang 1 (erste 8) oder Ausgang 2 (Leitung 8- 16 ) Aktiv ist..

Ist im Endeffekt aber beidemal das selbe Prinzip

Gho
15.09.03, 14:09
Das Problem ist nur, dass ich noch nie mit nem µC zu tun hatte. Ich bin aber durchaus interessiert, hätte vielleicht mal jemand so ne "Mein erster Hello Wolrd µC" Seite?
Programmiert man die Dinger eigentlich in Assembler oder gibt es da mittlerweile klicki-bunti IDEs?
Denn nur Assembler dafür lernen wäre mit den doch zu viel, da greif ich lieber auf geronets Vorschlag zurück, auch wenns eigentlich langweilig ist :D


##Edit
Argh, 30 Sekunden später finde ich ein paar Threads weiter unten natürlich auch noch nen Link zu ner Mikrocontroller Page ( http://www.mikrocontroller.net ), damit sollten sich die Fragen hoffentlich erübrigen.

Stefan_1
15.09.03, 14:16
Ansi C geht auch..
Falls du das kannst..

MfG Stefan

Gho
15.09.03, 17:11
Na, ich hab mir mal so ausgerechnet das dieses Mirkocontroller-Projekt so an die 30 Euro kosten würde, abgesehen davon das ich kein Assembler kann.
Deshalb schnorr ich mir lieber ein bis drei Parallelport Karten von Freunden und aus alten 386er.

Wenn ich mal wieder genug Geld hab dann steht das ganz oben auf der To-Do Liste, aber momentan bleibt wohl nur das schnorren und das warten auch Weihnachten ;)

Stefan_1
16.09.03, 09:12
Na unter 30€ wirste wirklich net soo viel bekommen.. da werden die Relais ja schon fast mehr kosten..

Mit net 2ten Parallelportkarte hast du aber unter umständen auch en Probleme, hab auch mal zwei drin gehabt und es gab dauernd Konflikte.. ( war aber unter NT4 )

Ich fänd’s gut wenn du uns informieren würdest ob & wie es geklappt hat..

( Will sowas mit µC auch mal machen.. aber muß erst nachem nächsten Umzug.. werde jetzt keine Kabel verlegen.. )

MfG
Stefan

E S
16.09.03, 16:50
Hi,

Was für eine Programiersprache wäre denn genehm?
Assembler und Basic kannst Du einsetzen, wenn Du das Progstudio von www.batronix.com verwendest. Spezielle Fragen kannst Du dann auch in dem Forum loswerden. Der AT89c2051 z.B. ist billig, kann viel und ist zimlich leicht zu bedienen.


Aber es geht natürlich auch ohne µC!

Latch heißt das Zauberwort.
Ein Latch übernimmt auf einen Befehl (Impuls) die Zustände seiner Eingänge und häl sie bis zum nächsten Impuls.

So könntest Du die Bidirektionalen Leitungen des Druckerports as Adresszähler verwenden (bis 4 "Ebenen" oder gar bis 16 mit Adressdecoder BCD->Dez). Dann kannst Du alle 8 Datenleitungen für eine "Ebene" verwenden. Je Ebene ein Latch, daran die Relais und die werden von den Bidirektionalen Leitungen gesteuert. So kannst Du 32 Relais bzw. 128 Relais mit Adressdecoder steuern.

Nimmst Du statt Relais einfach nur LEDs, so kannst Du damit einen ganzen Sternenhimmel bauen, eine riesige Anzeigetafel aufbauen, Deine Modelleisenbahn steuern (Die 5 Eingänge kann man ja auch multiplexen), sogar dein Ganzes Haus steuern.
Und das mit wenig Hardwareaufwand - fast alles macht die Software.

Gruß
Elmar

Gho
16.09.03, 21:48
@Stefan_1:
Ich wollte nun (wenn überhaupt) mit dem Tutorial auf http://www.mikrocontroller.net/tutorial/
anfangen. Dieser beinhaltet sowol das Löten der µC Programmierschaltung, als auch die Programmierung in Assembler (LED und Tastschalter, also schalten und geschaltet werden, mehr brauchen wir ja nicht)
Die Teile würden jedoch halt so 30 Euro kosten und ich werde nächstes Einkommen mal schauen ob ich ein paar Euros abzweigen könnte.
Und so schwer sah der nicht aus (Weder beim Löten noch beim Assembler)

@ES:
Dieses Progstudio ist leieder nur für Windows (wenn schon denn schon :ugly: )
Aber ich wäre auch bereit Grundsätze in Assembler zu lernen, ein paar mal Umschalten wird ja wohl hoffentlich nicht so schwer werden ;)

Könntest du mir bitte ein paar weitere Erleuterungen zu Latch geben? Ich bin momentan noch nicht viel weiter als das Umsetzten von Schaltplänen, mit selber planen und erstellen klappt es doch noch nicht so ganz.
Wäre nett wenn du mir ein paar Beispiele oder Tutorials geben könntest, ich nehm das ja gerne wenns einfacher als ein µC ist.

downtown
16.09.03, 21:58
das ganze geht doch problem los ohne müpe:

8 datenleitungen -> multiplexer -> d-flipflops für jede lampe
und danach noch ein fet, sodasss du keine relais brauchst, die mit der zeit verkleben. fet's lassen sich prima als analogschalter betreiben, ausserdem hört man kein klicken und man braucht keine verstärker.
auch bei strömen über 1 A kein problem. ich habe selber schon prints gebaut, welche fets mit bis zu 16 A durchschalten, der kleine kühlkörper wird kaum handwarm ;)

das ganze ist einfach, jedoch aufwendig, wenn du wirklich viele lampen oder was auch immer ansteuern willst...

maximal 256 schalter sind möglich.

edit: so musst du nur einen kurzen impuls "durchschicken".

E S
16.09.03, 23:12
Hi,

FET's sind nicht für Wechselspannungen geeignet. Dann lieber Triacs. Die schalten auch brav im Nulldurchgang ab.

Problematisch ist allerdings, dass das Ganze nicht Potentialfrei ist. Da sind relais doch weit überlegen. Für Wechselspannungen gibt es Optokoppler, die können 230V / 66W "schalten". Potentialfrei, aber das funktioniert nur bei Wechselspannung.


Zum Latch:

Das 74LS259 scheint Ideal zu sein. Datenblatt hier:
http://www.fe.up.pt/~victorm/DataSheet/TTL/74259%20LS.pdf

Wenn man E auf Low setzt und C auf High, dann erhält man ein Adressierbares Latch.

Über die drei Adresseingänge bestimmt man, welches Bit man setzen will und dieses nimmt den Zustand von D an. Mit E kann man das Latch empfänglich machen. Den Eingang hängst Du auf eine Bidirektionale Leitung. Mit den anderen drei bestimmst Du die Adresse. Also Daten (an D) anlegen, Adresse anlegen und dann E auf 0 setzen (Low aktiv!). Dann nimmt das adressierte Bit den Zustand von D an. Danach E auf High setzen um das Latch unempfänglich zu machen. Die Daten im Latch bleiben erhalten. Bis zur nächsten Datenübergabe.

D hängt natürlich an einer Datenportleitung.
Wenn Du 8 latches parallel hängst (Nur D an jeweils eine Leitung), kannst Du mit Deinen 8 Datenleitungen in alle Latche gleichzeitig ein Bit übernehmen. Also Adressierst Du zuerst die 0, Legst die Daten für alle 8 Latches gleichzeitig an und gibst E frei (LOW). Jetzt hat jedes Latch sein niederwertigstes Bit so gesetzt, wie die Datenleitung es vorschreibt. Dann 1 adressieren, dann 2, ...

Auf diese Weise kannst Du 8x8=64 Relais oder was auch immer individuell schalten. Denk aber drann, dass alle Latche jetzt gleichzeitig übernehmen. Also immer schön mit den Daten füttern, auch wenn die sich nicht ändern.

Bei diesem Latch brauchst Du absolut keine Zusatzbeschaltung wie Adressdecoder usw. Dafür kannst Du nur halb so viele Ausgänge schalten. Alternative sind übrigens Schieberegister mit eingebautem Latch. Da taktest Du Deine Daten seriell rein und kannst So beliebig viele Ausgänge mit 2 Leitungen ansteuern. Der Vorteil ist, dass man beliebig Kaskadieren kann, der Nachteil, dass das Datenreinfüttern langsam und umständlich ist, muss man ja immer alle Ausgänge nacheinander abklappern, Zustandsänderung hin oder her.

Trotzdem könntest Du dich etwas mit MCs beschäftigen - da kann man feine Sachen mit machen.

Gruß
Elmar

Gho
17.09.03, 20:51
@E S
Juhu es geht vorran!
Aber ich glaub wir brauchen langsam eine Art Lexikon usw, denn ich muss leider zugeben das ich mit
"Auf high/low setzen" wenig anfangen kann.

Einen festen Thread der solche Begriffe wie:
"Auf high setzen", aber auch vielleicht "Latch" oder "d-flipflop" erklärt.
Aber soweit hab ich wohl verstanden, auch wenn ich noch Probleme habe aus dem Datenblatt zu erkennen wann was wo geschaltet wird. (A0, A1, A2)

Es ist halt nicht jeder ein Hardwarefreak ;)

E S
18.09.03, 10:38
Hi,

also High setzen bedeutet auf Betriebsspannung (normalerweise +5V), LOW bedeutet auf Masse setzen (0V). Beim Computer (Druckerport) bedeutet High einfach auf '1' setzen, Low auf '0' setzen.

Beim Druckerport muss man aber aufpassen, dass einige Leitungen (Datenleitungen alle ausgenommen) LOW-Aktiv sind. Das bedeutet einfach nur, dass sie sich anders rum verhalten. Setzt man de auf '1', so liegt diese Leitung auf Masse (also LOW bzw.'0'). Erkennen kann man das daran, dass die Bezeichnungen überstrichen sind.

_____
Reset

bedeutet schlicht und ergreifend, dass die Funktion Reset (Name der Leitung) ausgelöst wird, wenn man sie auf LOW ('0') legt.

Wozu macht man das? Ganz einfach: Bei den meisten TTL- Eingängen wird bei offenen Eingang eine '1' erkannt. Da das nicht so stabil ist, legt man unbenutzte Eingänge in der Regel fest auf Masse oder +. In diesem Beispiel bedeutet das, das bei offenem Eingang einfach kein Reset ausgeführt wird.
Ein weiterer Grund ist, dass man Taster und Schalter normalerweise nach Masse schaltet. Ein Widerstand (oft 330 Ohm; mindestens, nie weniger) zwischen + und Eingang sorgt für einen permanenten High-Pegel. Der Taster schließt diesen Pegel dann nach Masse kurz. Der Widerstand verhindert aber einen "echten" Kurzschluß, da er den Strom begrenzt. Die Leitung ist genau nur dann LOW, wenn der Taster gedrückt wird.

Die Adresseingänge des Latch funktionieren genau so wie die Adressen und Bytes in einem Computer. Nur sind sie in Deinem Fall 3-Bit breit. Schneidest Du von einem Integer oder char die 3 niederwertigsten Bits raus, so entspricht der Wert der Variabe dann den Adressen.

000 = 0 = Bit 0
001 = 1 = Bit 1
010 = 2 = Bit 2
011 = 3 = Bit 3
100 = 4 = Bit 4
101= 5 = Bit 5
110 = 6 = Bit 6
111 = 7 = Bit 7

So kann jedes der 8 Bits (0-7) individuell adressiert werden.

Wenn Du die Latche parallel hängst, musst Du aber beachten, dass jedes Datenbit der Druckerdatenleitungen auf einem anderen Latch rauskommen. Da die Adressen parallel sind, liegen sie immer gemainsam an den gleichen Ausgängen (Gleiche Bitnummer) der Latche.

Gruß
Elmar