Forum: Mikrocontroller und Digitale Elektronik Fernsteuerbare Schalter


von Peter B. (peter123)


Lesenswert?

Hallo zusammen,

ich möchte gerne über einen PC entfernte Dioden ein- und ausschalten 
können. Es sollten wenig möglichst Leitungen / Drähte benötigt werden, 
als Buslänge ist maximal um die 20 Meter zu rechnen. Das ganze sollte 
möglichst störungs- / ausfallsicher + kostengünstig sein. Dioden wären 
es um die 100.

Meine erste Idee war I2C. An jeder LED wäre dann ein I2C Baustein der 
per DIP-Schalter seine eigene Adresse erhält. Liegt diese Adresse auf 
dem "Bus" sollte die entsprechende LED leuchten. Die Verkabelung wäre 
somit auch sehr flexibel. Die Steuerung würde ich per PC über den 
Seriellen-Port vornehmen and welchen die zwei I2C Drähte angeschlossen 
sind (oder bei Linux gibt's sogar I2C Treiber...?).

Hat jemand schon einmal so etwas gemacht? Da ich mich sehr wenig 
auskenne - funktioniert das so überhaupt, welche Bausteine bräuchte ich 
dafür?

Peter

von der mechatroniker (Gast)


Lesenswert?

Wie dezentral sind denn die Dioden? Alle 100 an einem anderen Ort, oder 
jeweils einige davon beieinander?

von Peter B. (peter123)


Lesenswert?

Nein die sind verteilt, jeweils so 30-50cm Abstand. Kann man sich wie 
bei einem Weihnachtsbaum vorstellen ;-)

von der mechatroniker (Gast)


Lesenswert?

Unabhängig davon würd ich den seriellen Port am PC nicht 
zweckentfremden, sondern so wie vorgesehen als UART verwenden. Also 
einen uC dazwischen als Bridge zwischen der UART und dem endgültigen 
Bussystem.

Andere Idee: das Ganze ist ja eine reine Einbahnstraße, eine Rückmeldung 
wird wohl nicht erforderlich sein. Also einen leistungsstarken Treiber 
in die RS232-Leitung und dann die Tx parallel an alle Stationen. Mit 
nicht allzu hoher Bitrate (beispielsweise 9600 Bit/s) dürfte das gehen. 
Dann sparst du dir auch den Koppel-uC.

Abgesehen davon würde ich keine einzelnen Telegramme mitsamt Adresse und 
Daten verschicken (Riesen-Overhead!), sondern Summentelegramme, also ein 
Telegramm durch eindeutigen Anfang und eindeutiges Ende gekennzeichnet 
(z.B. durch 100 ms Pause zwischen den Telegrammen), welches die Daten 
für alle Teilnehmer enthält (jeweils 1 Bit), die suchen sich dann anhand 
ihrer ID eins raus.

Das nur als Anregung.

von Stefan (Gast)


Lesenswert?

:-)  Nimm 5 mega48, alle per I2C angeschlossen, und hänge die 100 LEDs 
an die vielen vielen freien Pins. Die Adresse kannst du bequem per 
Software vergeben und sparst dir ausserdem die DIP-schalter.

Für den ISP brauchst du nur ein Wannenstecker (MISO, MOSI, SCK zu allen 
mega48), die jeweilige Reset-Leitung der Atmels kann man dann z.B. auf 
einen DIP-Schalter legen.

Ein mega48 kostet bei Angelika 1,45 EUR, und ist so meines Wissens der 
mit Abstand günstigste frei programmierbare "I2C-Portexpander"   :-)

Gruss

von Stefan (Gast)


Lesenswert?

Oha waren meine Vorschreiber schnell :-)))

UART ist natürlich auch eine gute Idee, dann kannst du mit einem Max232 
dazwischen wunderbar mit dem PC kommunizieren. Der Rest würde ich der 
Geschwindigkeit wegen trotzdem mit I2C machen.

von Peter B. (peter123)


Lesenswert?

danke für die zahlreichen antworten bisher

rs232:
mh, wollte ich eigentlich nicht nehmen, da die kabel ja viel dicker sind 
und auch teurer. bei i2c bräuchte ich nur zwei dünne drähtchen?

µc:
einen µc wollte ich eigentlich auch vermeiden, da ich den ja erst noch 
programmieren müsste? auch würde ich mir ja so 5 "inseln" bauen welche 
untereinander per i2c verknüpft sind, wenn ichs richtig verstanden habe. 
falls an der lösung kein weg dran vorbeiführt, gibt's da schon fertigen 
bzw. sehr ähnlichen code für? brauch ich dann noch programmier-karten, 
eeprom brenner oder dergleichen?

gibt es keine super simple lösung, bei welcher ich mir 100x CHIP-X 
kaufe, jedem per dip schalter sage höhre auf adresse X und falls diese 
anliegt (oder übertragen wurde) setzte pin X auf 1? :-)

von Bastian (Gast)


Lesenswert?

ein solcher Chip ist mir nicht bekannt, vielleicht mag es da welche 
geben, aber bei der anforderung an den preis die du da stellst, wirst du 
das wohl vergessen koennen.

1.)
jede led bekommt einen einen eigenen µC TINY11,12,13 wie auch immer im 
acht poligen Dipgehäuse und die adresse per Software programmiert. Das 
ist gerade bei den AVRs super einfach und preiswert. Man muss nicht 
unbedingt in C oder ASM programmieren können für sowas reicht locker 
auch Basic aus. Das kostet dich aber auch ca. 50-100€ bei dem Versender 
aus dem hohen Norden. Vorteil jede Led kann mit nur drei Leitungen 
(+,-,Steuersignal) angefahren werden.

2.)
Oder du nimmst mehrere µC zum Bleistift Tiny2313 der hat dann 14 
ausgangspins (zwei für i2c und uart sind schon belegt) und baust kleine 
inseln also immer 14 leds die von einem Controller gesteuert werden, 
dann ist der verdrahtungsaufwand auch nicht so groß.

3.)
du nimmst einen großen AVR atmega16 mit 32 i/os und baust das ganze mit 
einer matrixverschaltung. 5 * 20 auf, dass wiederrum ist aber hoher 
verdrahtungsaufwand.

Aber so wie du das gerne hättest möglich wenig verdrahtung, möglichst 
billig und ohne µC seh ich da keine chance.

von derwarze (Gast)


Lesenswert?

Wieso ist bei rs232 das kabel dicker?
Kannst Du genauso mit einen dünnen Draht machen. Da Du ja nur senden 
musst reicht ein verdrilltes Paar aus. Bei I²C sinds 3 Drähte mit der 
Masse und das ist nach meiner Erfahrung störanfälliger bei längeren 
Leitungslängen.

Es gibt zwar I²C Portbausteine die glaub ich bis 8 Ausgänge haben doch 
sind die teuerer als ein Tiny.

Ich würd nach Tip 2 von Bastian vorgehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.