www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fernsteuerbare Schalter


Autor: Peter Burgert (peter123)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: der mechatroniker (Gast)
Datum:

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

Autor: Peter Burgert (peter123)
Datum:

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

Autor: der mechatroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Burgert (peter123)
Datum:

Bewertung
0 lesenswert
nicht 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? :-)

Autor: Bastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: derwarze (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.