Forum: Mikrocontroller und Digitale Elektronik 7-Segment-Anzeige per Bus ansteuern


von Kristof Kling (Gast)


Angehängte Dateien:

Lesenswert?

Ich suche eine Möglichkeit, bis zu 500 jeweils 4stellige
7-Segment-Anzeigen (LED) mittels eines einfachen Busses von einem PC
aus anzusteuern. Ich stelle mir dazu eine kleine Schaltung bei jeder
Anzeige vor, auf der ich z.B. per DIP-Schalter eine eindeutige Adresse
vergebe. Auf einen (möglichst "schmalen", also aus wenigen Adern
bestehenden, z.B. RS232) Bus wird dann zuerst die Adresse, dann die
vierstellige Zahl angelegt und auf der korrekt adressierten Anzeige
leuchtet dann eben diese Zahl auf. Die Anzeigenmodule sollten im
Dasy-Chain Verfahren einfach alle "hintereinander" gehängt werden
können.
Gibt es sowas schon?
Könnte das jemand hier im Forum entwickeln? Und wenn ja: was würde so
eine Lösung etwa kosten?

(kleine Prinzipskizze anbei)

von Alexander (Gast)


Lesenswert?

von Philips gibt's dafür I2C Bus Bausteine. Irgendwas mit SAA glaubich.
2 davon sind bei Reichelt zu haben.
Einer kann nur 1 Segment, der andere 2 und im Multiplexbetrieb 2*2.
Da mußt Du aber noch etwas mehr an Ansteuerung dranhängen damit das so
einfach vom PC geht.
Und der I2C Bus kann auch nur eine bestimmte Anzahl Adressen. Also ich
glaube, daß bei spätestens 255 Schluß ist.

von josef (Gast)


Lesenswert?

Könnten dir so etwas entwickeln. Hatten mal so ein Projekt.

SJ Josef

von Steffen (Gast)


Lesenswert?

Hallo!

I2C hat normalerweise 7 Bit Adressen - du kannst also 128 einzelne
Bausteine ansteuern (ein paar weniger, weil einige Adressen für
Sonderzwecke reserviert sind). Eine neue Spezifikation von I2C lässt
inzwischen 10 bit Adressen zu - es wären also 1024 Slaves möglich.

Nachteilhaft ist, dass erstens meiner Meinung nach nur eine begrenzte
Anzahl an Slaves an den Bus gehängt werden darf, um ihn physikatisch
nich zu überlasten - die Leitungen haben eine vorgeschriebene maximale
Kapazität die sich mit jedem Slave und mit erhöter Leitungslänge
vergrößert. Außerdem dürfen aus og. Gründen auch die Leitungen nicht zu
lang werden.

Es gibt weitere Methoden, das ganze aufzubauen. Bei RS 232 spielen
Leitungslängen kein Problem - die Anzahl an Slaves ist auf 32 begrenzt.
Um mehrere anzuschließen muss man einen Repeater o.ä. anschließen um die
Anzahl zu erhöhen.

Das zu entwickeln ist sicherlich nicht ganz billig. Schon alleine die
Anzeigen und die Bausteine werden über 1k Euro kosten. Dann Platinen,
Arbeitszeit, ...

Viele Grüße
Steffen

von Gast (Gast)


Lesenswert?

Tach,
schau mal bei ELV ,die haben "Speedypick" oder so ähnlich.
Ist eigentlich zum komissionieren von Waren.Da werden zig
LED Anzeigen über RS485 angesteuert.

von Jörg (Gast)


Lesenswert?

Also RS232 ist im Normalfall eine Punkt-zu-Punkt-Verbindung, da ist
nichts mit mehreren Teilnehmern. Gemeint war sicherlich RS485, gleiche
Logik (UART) aber andere Physik (Pegel). Damit lassen sich auch längere
Kabelstrecken (je nach Geschwindigkeit) überwinden und ein Bussystem
aufbauen. Je nach verwendeten Transceivern sollte mann dort aber auch
einen oder mehrere Repeater vorsehen. Die Schaltung der Displays könnte
recht Einfach mit einem kleinen uC und ev. Transistortreibern für die
LED-Anzeige realisiert werden...

Einer der erwähnte I2C-Baustein ist sicherlich der SAA1064. Nur kann
man den selbst nur auf maximal 4 verschiedene Adressen einstellen, mehr
als 4 Bausteine am selben I2C-Bus sind damit ersteinmal nicht möglich,
auch wenn I2C mehr Adressen kann (beim I2C sind für verschieden
"Bausteinklassen" Adressbereiche reserviert, von der eigentlichen
Bausteinadresse lassen sich in der Regel nur die letzten 1-3Bits von
Aussen einstellen). Ausserdem ist I2C nicht wirklich für Kabellängen
geeignet.

Die mögliche Alternative CAN ist sicherlich vom Aufwand nicht
geeignet.

Bei 500 Stück sollte man vielleicht auch über eine maschinelle
Bestückung usw. nachdenken.

Jörg

von crazy horse (Gast)


Lesenswert?

Wenn es nur in eine Richtung gehen soll, ist das auch mit RS232 kein
Problem, an einen Sender können mehrere Empänger angeschlossen werden.
Wieviele Empfänger ein Sender verkraftet, welche Leitungslänge bei
welcher Baudrate - sicher interessante Fragen :-)
RS485 wäre wahrscheinlich die bessere Variante.

von Ralf Kellerbauer (Gast)


Lesenswert?

a)
Der Abstand der Anzeigen ist natürlich eine kritische Größe. Sollte man
mit meist wenigen cm oder einigen Metern auskommen bietet sich eine 5V
oder 3V RS232 oder per Umsetzer eben normgerecht +-12V an.
Bei 5V/3V könnte man Stereo-Klinkenbuchsen verwenden und damit GND, Vcc
und eben Signal übertragen.


b)
Am sinnvollsten erscheint mir eine Umsetzung per Controller wie
ATiny2313 (+Keramik-Resonator) und eine Software zur gemultiplexten
LED-Anzeige an.
Jeder ATiny hätte eine eindeutige Adresse (EEROM) und würde nur
Anweisungen für diese entgegen nehmen. Für andere wäre er ein Repeater
zum nächsten Modul.


c)
Bei 9600 Baud und 4 Byte (2* Adresse, 2* Hexadezimal Daten) ergäben
sich max. 250 neue Übertragungen oder alle 2s eine Aktualisierung der
500 Anzeigemodulen.


d)
Die Module lassen sich per 'Dasy-Chain', aber auch (wg.
Ausfallsicherheit) teils sternförmig ansteuern, sobald mal
2 Eingänge an einen Ausgang gehängt werden.


e)
Kosten:
- Controller ca. 1,50
- Resonator, Transistoren, Kondensatoren etc. ca. 2,50
- LED-Anzeige ca. 2.-
- abschnittsweise Netzteile
- Platine, Fertigung je nach Organisation
In Summe dürften ca. 10-15 Euro je Modul entstehen.
Da man die 500 Module ja auch kostenintensiv vorort einbauen muss,
sicherlich noch im Rahmen.


Noch mehr Details sinnvoll zu definieren, wenn die örtlichen und
räumlichen Gegebenheiten definiert sind.

Gruß

von peter dannegger (Gast)


Lesenswert?

"Die Anzeigenmodule sollten im Dasy-Chain Verfahren einfach alle
"hintereinander" gehängt werden können."


Dann brauchst Du doch überhaupt keine DIP-Schalter.

Jeder hört auf die Adresse 1 und alle anderen Daten schickt er mit der
Adressen um 1 vermindert an den nächsten.

D.h. Daten der Adresse 1 wertet er selber aus.
Daten der Adresse 2 schickt er mit der Adresse 1 an den nächsten.
Daten der Adresse 3 schickt er mit der Adresse 2 an den nächsten usw.


Wenn man vom letzen Modul wieder an den PC geht, kann der auch
feststellen, wieviel Module gerade angeschlossen sind.
Jeder Modul hat 2 Sub-D9 Anschlüsse, die Rückleitung wird
durchgeschleift und der letzte Modul bekommt einen Kurzschlußstecker.


Peter

von Ralf Kellerbauer (Gast)


Lesenswert?

a)
Habe es nicht direkt aufgeführt - aber die DIP-Schalter hatte ich eh
schon gestrichen.


b)
Natürlich gehts auch mit automatischer Auswertung.
Ist aber 'empfindlicher', wenn beim Einbau irgendwelche Module
vertauscht werden oder bei Reparaturen.
Vielleicht einfach auch nur einen solchen Modus für die Inbetriebnahme
vorsehen.
Kritisch eher die Rückschleife, denn man muss wahrscheinlich vom
entferntesten Controller zurück und hätte bei mehreren Strängen dann
mehrere Sender für eine V24 Eingang am PC.


c)
Sub-D9 ist im Prinzip ok, aber man benötigt eben zusätzlich die
Pegelwandler oder eben +-12V als Spannungszufuhr. Auch etwas mehr
Bauteileaufwand.
Zudem könnte eine Auslegung auf 3,3V (per PC-Netzteil) den
Energiebedarf am minimalsten halten (Vorwiderstände der LEDs).
Auch lassen sich 4 LED-Anzeigen, ein ATiny2313 (SMD oder DIL) und 2
Buchsen auf einer Platine unter bringen, die gerade mal so groß ist wie
ein handelsüblicher Einbaurahmen für LED-Anzeigen.

Aber Pegelwandler dürften (Anzeigen verteilt in mehrere Gebäude) in
kleinen Stückzahlen eh nötig sein. Könnte man aber gleichzeitig als
Verteiler auslegen, als ein 3,3 bis 5V Eingang ergibt zwei normgerechte
V24 Pegel (z.B. per MAX232).

von Sebastian (Gast)


Lesenswert?

Du kannst das auch mit Schieberegistern (74595) lösen.

Ein Mikrocontroller, der die Daten vom PC empfängt und in die
Schieberegister schiebt.

von Jens (Gast)


Lesenswert?

@Sebastian

wieviele kabel willst du legen??
500*4*7+1 ;)

von Ralf Kellerbauer (Gast)


Lesenswert?

Sebastian:
''Du kannst das auch mit Schieberegistern (74595) lösen.
Ein Mikrocontroller, der die Daten vom PC empfängt und in die
Schieberegister schiebt.''

------------

Also 4* HC595 kosten bei Reichelt 4* 0,33 = 1,32.
Dazu noch eine größere Platine, zusätzliche Widerstände (24 Stück).
Der ATtiny2313 kostet dort 2,00

Auch kann man über etwas Distanz nur noch mit begrenztem Schiebetakt
arbeiten, während die digitalen V24 Signale bei Bedarf einfach auf
Normpegel angehoben werden können und bei 9600 Baud leicht 10-50m
packen könnten (vielleicht terminiert)

von Kristof Kling (Gast)


Lesenswert?

Wow, das hätte ich nicht gedacht, dass sich so viele so engagiert hier
beteiligen. Daher schonmal ein dickes "DANKE" an alle für Eure Ideen
und Anregungen. Hat mir sehr geholfen!

Da ich dieses Projekt bei einem Kunden anbieten muss, suche ich Leute,
die eine derartige Schaltung professionell entwickeln (Schaltpläne,
Leiterplattenlayout, simple Software für Windows PC, evtl. Herstellung
der Platinen).
Mein Kunde hat selbst eine (Kleintransformatoren-) Fertigung in
Tunesien und würde wahrscheinlich dort die Platinen bestücken lassen.
Die Anforderung nochmal anders formuliert:
auf einem PC liegt z.B. eine txt-Datei, in der je Zeile eine Adresse
und ein Zahlenwert (max. 4stellig) abgelegt sind. Mittels der Adresse
müssen sich bis zu 350 Anzeigen adressieren lassen. Ein kleines
Softwareprogramm muss nun die Datei auslesen. Die Zahlenwerte sollten
dann auf den zugehörigen Anzeigen aufleuchten. Per Knopfdruck an der
Anzeige wird diese wieder gelöscht.
Toll - aber nicht unbedingt notwendig - wäre, wenn erst wieder eine
neue Datei (also neue Zahlenwerte für die Anzeigen) eingelesen werden
könnte, wenn alle Anzeigen mittels des Knopfes gelöscht wurden.
Wer sich also in der Lage sieht, eine solche Schaltung (und
Progrämmchen) zu erstellen, der schickt mir bitte eine mail an
k.kling@acom-ohg.de

Danke nochmal,

Kristof Kling

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.