Lichtsteuerung mit PC: selber bauen&programmieren

Hallo Liebe Leute!

Ich hab ein mehr oder weniger kompliziertes Projekt vor mir.

Undzwar geht es um eine Lichtsteurung über den PC. Eine Art selbstgebauten DMX-Controller.
Undzwar möcht ich mittels einer selbstprogrammierten Software, wahrscheinlich in JAVA oder VisualBasic, die ich aber dann noch erstellen muss, Lichter an und auschalten können. Praxis bezogenes Beispiel: Partykeller: ein paar Lämpchen, Stroboskop, … (keine Hochwertigen Scanner usw. :wink: ) die möcht ich jedenfalls per Tastendruck an und auschalten können, ferner möchte ich automatische Abläufe programmieren können.
Ich denke mein Anliegen dürfte klar sein :smile: .

Vielleicht ist es ja möglich (irgendwie bestimmt), über beispielsweise nen COM-Port die Lichter anzuschließen, bzw. irgendwelche Relais damit zu schalten.
Oder könnte man eine spezielle Karte löten (es gibt ja unmengen an Teile bei Conrad *g*).

Einfach gefragt, kann mir jemand bei meinem kleinen Projekt weiterhelfen? Oder mich zu irgendwelchen Seiten verlinken?
Oder kennt einer einen, der einen kennt, dessen Kollege sowas ma gemacht hat … ? :smile:

Ich wäre für jegliche Hilfe äußerst dankbar!

Mit vielen Grüßen,
Alexander.

hi
schau doch mal unter
http://www.conrad.de/scripts/wgate/zcop_b2c6db2384b/…

oder bei conrad unter relaiskarte suchen

MFG
M.Lindemann

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Moin

Ich hab ein mehr oder weniger kompliziertes Projekt vor mir.

Das Gefühl kenn ich.

Undzwar geht es um eine Lichtsteurung über den PC. Eine Art
selbstgebauten DMX-Controller.

es gibt ein paar Möglichkeiten, hier die 2 extremen einmal kurz beschrieben:

  1. der lpt-Port. mit dem kann man bis zu 8 Relais ohne Latchs und bis zu 128 Relais mit Latches schalten. Der lpt gibt 8 Bit Daten raus + einer Strob-Leitung. Die 8 Bit bleiben stehen (bis windows versucht mit dem Drucker zu reden), d.h. eine einfache Transistor-Relais-Schaltung reicht schon für 8 Relais. Mit Latches (flip-flop’s) kann man mehr machen. Aus 7 Bit baut man sich mit Logik-steinen einen addressdecoder (gibt’s fertig zu kaufen) das 8 Bit stellt den Wert da. Die Strobe-Leitung zusammen mit der Addresse steueren Flip-Flop’s (oder Latchs) an. Von denen aus gehts mit Transistor-Relais-schaltung weiter.

Nachteil: wenn du dich verlötets, sprich etwas schiefgeht kanns deinen Rechner zerlegen. Das Problem tritt bei der 2. Möglichkeit nicht so stark auf, die ist aber teuerer.

  1. Der C-Controll von Conrad. Davon gibts 2 Varianten:

a) der Basic-Controller: er hat insgesamt 16 I/O-pin’s die man auf Ausgang schalten kann. (macht also 2^15 = ca 32000 mögliche Addressen). Hier kann man natürlich auch auch nur mit den 16 Bit arbeiten die schon da sind. (per I2C müsste man auch bequemer an viele Ausgänge kommen, weis aber nicht ob Conrad die nötigen Teile verkauft). Endstufe ist auch hier eine Transsitor-Relais-schaltung.

b) der C-Controll 2. wesentlich teuerer dafür mit integriten Relais (etwa 16 Stück, bin da nicht so sicher) => sprich prog., anschliessen, fertig (kein Löten, keine Schaltpläne, keine Probleme).

die C-Controlls können über RS232 (sprich einer COM-schnittstelle) senden und empfangen und laufen auch wenn der Rechner aus ist (offline-betrieb ?). Ausserdem kann man an ihnen auch Sensoren anbringen (Licht an wenn dunkel/Tür auf ?, Strobo auf Takt ?). Die Programmierung ähnelt Basic, ist sehr einfach (bei 2’er sogar graphisch). (Ausserdem gibts Anzeigen für die Teile, so bis 256x512 Pixel).

wenn du mehr wissen willst poste nochmal.

cu

es gibt ein paar Möglichkeiten, hier die 2 extremen einmal
kurz beschrieben:

Ich habe wirklich keine Ahnung von sowas, aber sollte man nicht auch eine (eventuell vorhandene) MIDI-Schnittstelle in die Überlegungen mit einbeziehen?

Sebastian

Moin

Ich habe wirklich keine Ahnung von sowas, aber sollte
man nicht auch eine (eventuell vorhandene) MIDI-Schnittstelle
in die Überlegungen mit einbeziehen?

wenig belastbar, wenige Bit’s und sehr umständlich in der Ansteuerung wenn man mit Java oder VB arbeiten will.

Aber an sich gehts. Hab ja auch nicht behauptet dass das da vollständig ist. Das sind nur die Möglichkeiten mit denen ich schonmal zu tun hatte.

cu

Hi Jungs,

Danke für die Antworten, und Pumpkin, danke für die ausführliche Möglichkeitsdefinition.

Zur 1. Möglichkeit: Also könnte man über den LPT Port seine Signale fließen lassen, die dann entsprechende Relais ansteuern. Soweit korrekt? Doch wie würde mir es denn nun programmiertechnisch gelingen, in Java oder VB (in anderen Sprachen bin ich noch nicht ganz so bewegt), über die LPT-Schnittstelle signale fließen zu lassen. Ich meine, wie könnte ich rausskriegen, wie ich gewisse Adressen ansteuere, oder welche Pins ich wie anzusprechen habe, damit „et klappt“: Ich drücke n Knopf -> Signal geht durch LPT -> zu gewissen Relais für Lampe X . Meine Frage ist nun eher auf Quelltext bezogen. … ohne Latches, soweit ich richtig verstanden habe, ne recht simple Lösung, oder?
Aber… was genau meinst du mit dem Decoder. bzw. wie funktioniert das mit den Latches.

Zu 2.:
Ich blättere ja jeden Abend fleissig im dicken Conrad Katalog, das mit den C-COntrollern hab ich mir mal angeschaut da gibt es ja spezielle Karten für COM Anschluss mit 8 Relais (die Karten kann man kaskadieren…) (ich glaube das meintest du auch, oder?). Dazu ne passende Software … dürfte alles kein Problem sein. ABER, ich will ja meine eigene Software haben, gibt es in der Sache ne Möglichkeit?

Oder aber meintest du diese „C-Controll M-Unit“ ?

Hm, nunja, sind denn all diese Aperaturen, ob 1 oder 2, dazu in der Lage, Signale, besser: die Relais, oder ferner die Lampen in beispielsweise einer Sekunde etwa 5 Mal an/aus zu schalten?

Ich hoffe du kannst mir weiter weiterhelfen :smile:

viele Grüße und Gute Nacht,
Ali.

Moin

Danke für die Antworten, und Pumpkin, danke für die
ausführliche Möglichkeitsdefinition.

immerwieder gerne

Zur 1. Möglichkeit: Also könnte man über den LPT Port seine
Signale fließen lassen, die dann entsprechende Relais
ansteuern. Soweit korrekt?

jupp.

Doch wie würde mir es denn nun

programmiertechnisch gelingen, in Java oder VB, über die
LPT-Schnittstelle signale fließen zu lassen. Ich meine, wie
könnte ich rausskriegen, wie ich gewisse Adressen ansteuere,
oder welche Pins ich wie anzusprechen habe, damit „et klappt“:
Ich drücke n Knopf -> Signal geht durch LPT -> zu
gewissen Relais für Lampe X . Meine Frage ist nun eher auf
Quelltext bezogen.

VB: keinen blassen Schimmer.

Java: es gibt ein Package von Sun mit dem man unter Windows und Linux lpt und com1-4 ansprechen kann. Im klartext erzeugt man eine io-Stream der direkt auf die Schnittstelle geht. Bei lpt schreibt man also ein Byte rein. Diese Byte liegt dann an den Pin’s Data0-7 solange an bis du ein neues reinschreibts. welcher Pin jetzt Data0 darstellt kann man nachlesen (google oder rfc). 255 schaltet z.b. alle Data-pin’s auf High (5 oder 12 V). 0 schaltet alles auf low (0V). 4 schaltet alles auf low ausser data2. verstanden ?

… ohne Latches, soweit ich richtig
verstanden habe, ne recht simple Lösung, oder?

geht gut, kann bis zu 8 Relais (also Lampen) bedienen.

Aber… was genau meinst du mit dem Decoder. bzw. wie
funktioniert das mit den Latches.

Man kann z.b. 7 Bit (128 Möglichkeiten) als Addresse benutzen um ein Flip-flop auszuwählen. (Die Auswahl macht ein AddressDecoder, hab auf die Schnelle keinen bei Conrad gefunden)

dann hat man ein Bit über um das flipflop zu „programmieren“. Den Ausgang des Flipflop’s kann man nun für die Transistoren benutzen. So kann man mehr als 8 Lampen steuern. (ist ein bisschen gefummel mit Elektronik und Laufzeiten, klappt nie beim ersten Versuch, ist aber billiger als die C-Control-Variante)

Zu 2.:
Ich blättere ja jeden Abend fleissig im dicken Conrad Katalog,
das mit den C-COntrollern hab ich mir mal angeschaut da gibt
es ja spezielle Karten für COM Anschluss mit 8 Relais (die
Karten kann man kaskadieren…) (ich glaube das meintest du
auch, oder?)

nein. (das kann der 2’er sein… hab keinen catalog hier)

Dazu ne passende Software … dürfte alles kein
Problem sein. ABER, ich will ja meine eigene Software haben,
gibt es in der Sache ne Möglichkeit?

zu den Karten die du meinst gibts C-Header (im Netz, nicht bei Conrad). Diese kann man in JNI verbauen und dann Java benutzen. Dafür braucht man etwa 20 Zeilen einfachen C-Code.

VB: keinen blassen Schimmer.

Oder aber meintest du diese „C-Controll M-Unit“ ?

Das ist eine Variante des C-Controll-Basic systems. (Das ist die komplizierte und unzuverlässige Variante, ausserdem kann man die nicht direkt an den PC (über com) anschliessen) (kuck mal nach StartBoard das ist die dickste und an einfachsten zu benutzende Variante).

Hm, nunja, sind denn all diese Aperaturen, ob 1 oder 2, dazu
in der Lage, Signale, besser: die Relais, oder ferner die
Lampen in beispielsweise einer Sekunde etwa 5 Mal an/aus zu
schalten?

Der C-Controll (1) und die lpt-Schnittstellen kommen ganz locker über 50 Hz, mit abchechen von Stoppbedingungen. Bei den Karten bin ich nicht so sicher, die müssten allerdings auch auf >20 Hz kommen. Dabei verbrennen dir dann allerdings die Relais. Schon bei 5 Hz würd ich keine normalen Relais mehr nehmen sondern über elektronische nachdenken. (was bei 220V Wechselspannung schwierig wird) Normale sind für

Hallo,
C-Control kann ich für so einfache Anwendungen empehlen.

Mit C-Control-Basic kan man einfache Abläufe noch locker
in 50…100ms abarbeiten.
Ohne zusätzliche Schaltungen hat man beim C-Control-1
mind. 16 Digtale Ausgänge zur Verfügung.

Oder aber meintest du diese „C-Controll M-Unit“ ?
Hm, nunja, sind denn all diese Aperaturen, ob 1 oder 2, dazu
in der Lage, Signale, besser: die Relais, oder ferner die
Lampen in beispielsweise einer Sekunde etwa 5 Mal an/aus zu
schalten?

Die eigentlichen Treiber für die lampen sollte man sich
selber basteln, wie von Pumkin beschrieben am besten mit
Leistungstransistoren oder bei 50Hz-Wechselspannung gehen auch
Thyristoren bzw Triacs. Um keine Sicherheitsprobleme zu
bekommen, würde ich nur mit Schutzkleinspannung arbeiten
(z.B. 24V)!!!

Die Ansteuerung kann dann z.B. so sein, daß Du das C-Control-
Modul so programmierst, daß es Bytes vom PC empfängt und
entsprechend den gesetzte Bits sofort auf die Digitalports
ausgibt. Das Ding kannst Du aber schnell mal umprogrammieren
(Programm wird in EEPROM geladen), so daß es auch anders
arbeitet z.B. selber irgendwelche Lichtmuster ausgibt.
Gruß Uwi