Forum: Mikrocontroller und Digitale Elektronik ! Vorsicht NEWB 7-Segmentanzeigen via PC ansteuern


von Oliver M. (gonzox)


Lesenswert?

Hy@all,
Ich habe ein VB Programm zur Zeitmessung für bei 
Reitsportveranstaltungen geschrieben, welches die 
Teilnehmerinformationen aus einem weiteren bestehenden Programm bezieht, 
die Zeitinformationen von 2 bzw. 3 per Funk angebundenen Lichtschranken 
und evtl. Strafpunkte werden vom Bediener eingegeben.

Nun möchte ich die von diesem Programm ermittelten Werte auf einer LED 
Außenanzeige darstellen, 1x 4fach 7-Segment für die Startnummer, 1x 
4fach 7-Segment für die Strafpunkte und 1x 5fach 7-Segment für die Zeit.

Die bestehenden Beiträge habe ich bereits überflogen,auch die 
entsprechenden Tutorials, aber eine Frage stellt sich mir noch immer :

Welches ist der beste Weg die Daten vom PC-Programm zu der Anzeige zu 
übermitteln und wie setze ich das mit welchen benötigten Komponenten um 
?

Ich bitte meine Unwissenheit zu entschuldigen :) und freue mich über 
eure hilfreichen Antworten.

MfG,
Oliver.

von Fred R. (seek51)


Lesenswert?

Es gibt dafür fertige Anzeigentafel (um die 4 tausend Euro) die du dann 
direkt per RS232 oder Ethernet ansprechen kannst. Die für Profibus Asi 
Bus, ... sind um einiges teurer.

von Oliver M. (gonzox)


Lesenswert?

:) THX, das war sogar mir bekannt ....
Da ich die Sache aber in einem finanziell etwas kleinerem Rahmen 
verwirklichen muss (max. 1K), habe ich hier um Hilfe gebeten :)

Also Hinweise dazu was ich brauche um die Anzeige per 
RS232,Funk,Ethernet oder USB anzubinden, welche Teile,welche Bausätze 
usw ....

MfG,
Oliver.

von oldmax (Gast)


Lesenswert?

Hi
Mein Tip:
Nimm einen 22'' Monitor und schreib dir eine Anzeige. Das ist allemal 
preiswerter. Natürlich kannst du dir auch eine Anzeige aus roten LED's 
zusammenbauen und mit einem µC steuern, aber wenn du da keine Erfahrung 
hast.. dann wird's wohl so schnell nix.
Gruß oldmax

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Da ich die Sache aber in einem finanziell etwas kleinerem Rahmen
> verwirklichen muss (max. 1K), habe ich hier um Hilfe gebeten :)
Bis wann soll das laufen?
Wie groß sollen die Leuchtziffern sein?
Wie groß ist die Distanz vom PC bis zur Anzeige?
Wieviel Erfahrung hast du mit Elektronik-Hardware?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

oldmax schrieb:

> Nimm einen 22'' Monitor und schreib dir eine Anzeige.

Wie sieht das mit der Leuchtkraft im Vergleich zu einer ordentlichen
7-Segment-Anzeige aus?

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Oliver Müller schrieb:
> :) THX, das war sogar mir bekannt ....
> Da ich die Sache aber in einem finanziell etwas kleinerem Rahmen
> verwirklichen muss (max. 1K), habe ich hier um Hilfe gebeten :)

Ich hab wieder mal ein Dejavue-Gefuehl, solche Freds gab es hier 
haeufig. Selten konnte man lesen, ob am Ende wirklich etwas zu Stande 
kam. Liegt wohl daran dass sie fast immer von Anfaengern gepostet 
wurden, die die Sache etwas unterschaetzt haben. Trotzdem viel Erfolg.

Michael

von Otto (Gast)


Lesenswert?

Neben mechanischem Geschick und Geduld benötigst Du viel Zeit und dieser 
Punkt wird oft unterschätzt.

Mit einem AVR (z. B.ATMEGA16) und diversen diskreten Bauelementen ist 
das Projekt sicher zu bewältigen.

Programmteile wirst Du viele in der Codesammlung fehlen - eine Anpassung 
wird aber auf jeden Fall erforderlich sein.

Das Hauptproblem ist der Aufbau der eigentlichen Anzeigen aus Einzel-LED 
und die optische Optimierung, damit das Display auch bei hellem 
Sonnenlicht ablesbar ist.

1k€ ist sicher realistisch und wenn Du Deinen Stundenlohn nicht rechnest 
sogar deutlich unterbieten zu sein.

Gehe davon aus, dass aber mindestens 100 Stunden ins Land gehen werden.

Otto

von blub² (Gast)


Lesenswert?


von Oliver M. (gonzox)


Lesenswert?

Gut,noch ein paar Einzelheiten zur Erläuterung :
Die Segmente sollen die 200mm von ForgeEuropa werden,ist notwendig da 
sie über eine Entfernung von 75 bis 150 m lesbar sein sollen. (Je nach 
Platzgröße eben).
Das das nicht von heute auf morgen funktioniert als newb ist mir 
bewusst,ich habe Zeit bis nächstes Frühjahr/Sommer wenn notwendig.
Meine Zeit rechne ich natürlich nicht,ist klar.
Den Kasten kann ich auf der Arbeit entsprechend bauen,Aluminium und 
entspiegelte oder Filterscheibe.
Löten und Mechanik sollte ich auch beherrschen, wenn ich auch 
üblicherweise  nicht in dieser Größenordnung (oder 'Kleinenordnung') 
arbeite:)

Angebunden werden sollte die Anzeige an den PC entsprechend über Funk, 
aber auch da gibt es ja viele Möglichkeiten und ich kenne mich da eben 
nicht so gut aus.

Offen ist für mich auch welche MC ich benötige um die drei Zeilen 
anzusteuern, einen oder besser zwei oder drei ?
Multiplexing oder Schieberegister ?
Eigentlich müssen die MC ja nicht 'viel' leisten, die Daten kommen ja 
vom PC aber ich sehe ja keine Möglichkeit die Segmente direkt 
anzusprechen.

Bin also für jede weitere Hilfe dankbar.

MfG,
Oliver.

von Otto (Gast)


Lesenswert?

> 200mm von ForgeEuropa

Das ist schon mal ein Wort und erspart Dir einiges an Arbeit.

Die Funkanbindung solltest Du als eigenes Projekt sehen.

Eine Anbindung über RS-232 ist sicher die erste Wahl, bis Dein Display 
zufriedenstellend läuft.

Bei der Vielzahl von Anzeigen wirst Du um Multiplex nicht herumkommen - 
ist aber kein Hexenwerk.

Die Spannungsversorgung ist sicher auch noch ein Thema.

Otto

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Oliver Müller schrieb:

> Angebunden werden sollte die Anzeige an den PC entsprechend über Funk,
> aber auch da gibt es ja viele Möglichkeiten und ich kenne mich da eben
> nicht so gut aus.

Das wäre allerdings noch 'ne Runde mehr.  Ich würde an deiner
Stelle erstmal mit klassischer RS-232 anfangen.

> Offen ist für mich auch welche MC ich benötige um die drei Zeilen
> anzusteuern, einen oder besser zwei oder drei ?

Einer ist -- vor allem für einen Anfänger -- einfacher zu
programmieren als ein Multi-Prozessor-Verbund.

> Multiplexing oder Schieberegister ?

Schließt sich beides nicht aus.  Schieberegister braucht man,
wenn die IO-Pins des Controllers nicht ausreichen.  100-pinnige
Controller mit ihrem TQFP-Gehäuse im 0,5-mm-Raster sind nicht
jedermann's Sache.  Schieberegister helfen da, die kann man
einfach über eine SPI-Schnittstelle treiben, die nahezu jeder
Controller heute hat, und die Programmierung ist zwar etwas
aufwändiger als bei Parallelausgabe, aber wenn man das Prinzip
einmal verstanden hat, auch kein Problem.

Multiplexing spart IO-Pins, allerdings muss man dann entsprechend
höhere Spitzenströme treiben, für die das Display auch spezifiziert
sein muss.  Außerdem hast du schnell Flimmerneigung, die die
Besucher stören kann.  Dafür ist es natürlich bei der ohnehin
notwendigen Taktung einfach, da auch noch ein Dimmen mit vorzusehen.

von Joachim (Gast)


Lesenswert?

Habe sowas ähnliches vor 15 Jahren für unsere ortsansässige Kartbahn 
gemacht.
Vom Zeitmesssystem (AMB20) kamen serielle Daten, die in eine von mir 
gebaute Box mit einem 8051 Mikrocontroller gingen.
Mittels einem OSD-Chip (On Screen Display) dann die relevanten Infos per 
Videosignal an ganz normale Fernseher.
Für das Publikum wurden Platzierungsnummer, Startnummer,  Bestzeit und 
aktuelle Rundenzeit angezeigt. Dabei passten 10 Zeilen auf einen 
Bildschirm, bei mehr Startern schaltet das Gerät auf die 2. Anzeigeseite 
im 5 Sekundentakt um. Für die Rennfahrer wurden nur Kartnummer und 
aktuelle Zeit mit größeren Zeichen auf ein TV an der Strecke gegeben, 
wegen der besseren Lesbarkeit.
Das System aus nunmehr 4 Anzeigen arbeitet nach 15 Jahren immernoch :-)

Mit einem modernen Mikrocontroller würde man wohl das Videosignal direkt 
erzeugen und nicht über den Umweg eines OSD-Chips.

Für Außenbahnen würde das aber wohl nicht gehen, weil TVs bei 
Lichteinwirkung schlecht abzulesen sind.
Also wäre die erste Frage, für Outdoor oder Indoor?

Joachim

von Joachim (Gast)


Lesenswert?

Okay, da war jemand schneller. Frage hat sich damit erledigt.

von Oliver M. (gonzox)


Lesenswert?

Dann schon mal DANKE soweit.

RS232 kann ich ja gleich behandeln wie die spätere Funkübertragung, gibt 
ja fertige Lösungen die RS232/Funk koppeln.
... und zum Testen sollte ich vielleicht nicht gleich die doch etwas 
teureren 200mm Segmente nehmen.

Was bräuchte ich den im Einzelnen alles um via RS232 Daten an die 
Anzeige zu übertragen ?

Empfehlungen ???

Danke im Voraus,
Oliver.

von Axel K. (axel)


Lesenswert?

Wenn ich as bauen würde, würde ich pro Zeile einen µC nehmen um ein paar 
segmentanzeigen zu Multiplexen. Der Master µC sendet die Anzuzeigenen 
Werte jeweils per Software UART an den jeweiligen Anzeige µC.

So habe ich es bei meinem Digitaltacho gemacht und es funzt wunderbar.

von Otto (Gast)


Lesenswert?

> Was bräuchte ich den im Einzelnen alles um via RS232 Daten an die
> Anzeige zu übertragen ?

Einen MAX232-Schnittstellen-Pegelwandler und 5 Kondensatoren, eine 
9-polige D-SUB-Buchse (bzw. Stecker) und einen Controller, der eine UART 
hat, wir z. B. ATMEGA16

Otto

von Otto (Gast)


Lesenswert?

Hier in der Codesammlung ist ein ähnliches Projekt:

Beitrag "Duplex-LED-Display (Uhren-Radio) ATmega8 (Assembler)"

(Achtung: andere Displays)

von Oliver M. (gonzox)


Lesenswert?

Danke, da habe ich ja erst mal ein paar Tage zu tun um mir das alles zu 
Gemüte zu führen.

Welches Board sollte ich verwenden um alle Anforderungen erfüllen zu 
können ?

Hat jemand auch noch einen Verweis darauf wie ich aus VB.net den 
Assembler Code per RS232 an den MC senden kann :) ?

MfG,
Oliver.

von Klonk (Gast)


Lesenswert?

Sprichst Du von diesem Display?
http://www.forge-europa.co.uk/pdfs/FEM-790HXX0DGW.pdf

Wenn Du alle Segmente deiner Anzeige gleichzeitig einschaltest benötigst 
Du einen Strom von 7,8A bei einer Vorwärtsspannung von max. 26,4V, also 
über 200W.
Da kannst Du dir schonmal Gedanken für eine ordentliche Stromversorgung 
machen und wie Du die Segmente überhaupt treiben willst.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Oliver Müller schrieb:

> Hat jemand auch noch einen Verweis darauf wie ich aus VB.net den
> Assembler Code per RS232 an den MC senden kann :) ?

Willst du einen Assembler im Bootloader des Controllers implementieren?
:-)

Nein, du benutzt für den Controller eine Entwicklungsumgebung.  Diese
besitzt einen Compiler und/oder Assembler sowie eine Software, mit
der man den fertigen Binärcode (zumeist als sogenanntes Intel-Hex-
File) in den Controller programmieren kann.  Dafür ist dann in aller
Regel noch irgendwas an Hardware notwendig (ein Programmiergerät).

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Klonk schrieb:

> Da kannst Du dir schonmal Gedanken für eine ordentliche Stromversorgung
> machen und wie Du die Segmente überhaupt treiben willst.

Mit Elektronik im Bereich größerer Leistung kennt er sich doch wohl
besser aus als mit Controllern (schrieb er zumindest).

von Oliver M. (gonzox)


Lesenswert?

>Nein, du benutzt für den Controller eine Entwicklungsumgebung.  Diese
>besitzt einen Compiler und/oder Assembler sowie eine Software, mit
>der man den fertigen Binärcode (zumeist als sogenanntes Intel-Hex-
>File) in den Controller programmieren kann.  Dafür ist dann in aller
>Regel noch irgendwas an Hardware notwendig (ein Programmiergerät).

Vielleicht habe ich mich unverständlich ausgedrückt : Ich habe ja 
bereits ein Programm welches die anzuzeigenden Werte berechnet (in 
VB.net).
Diese Werte muss ich ja nun programmgesteuert an den MC der Anzeige 
weitergeben.
Die Frage war wie ich aus VB.net heraus über RS232 dem MC die 
anzuzeigenden Werte mitteile.

MfG,
Oliver.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Oliver Müller schrieb:

> Die Frage war wie ich aus VB.net heraus über RS232 dem MC die
> anzuzeigenden Werte mitteile.

Wie auch immer du mittels VB.net halt eine serielle Schnittstelle
ansprechen und dort Werte ausgeben kannst.  Wenn du davon keine
Ahnung hast (ich habe keine, habe weder Windows noch VB.net), dann
kannst du das sicher im Forum über PC-Programmierung erfragen.

Im Controller liest du diese Zeichen dann ein.  Entweder gibst du
sie 1:1 an deine Anzeige weiter (dann überschreiben sie halt alles,
was vorher in der Anzeige stand), oder du definierst dir noch
irgendwelche Steuerzeichen (Löschen des ganzen Displays, Sprung zu
einer bestimmten Zeile, um dort weiterzuschreiben).

von Oliver M. (gonzox)


Lesenswert?

Danke erstmal, ich versuche jetzt erst mal die Anfänge umzusetzen und zu 
begreifen ....

MfG,
Oliver.

von D. S. (jasmin)


Lesenswert?

schaust du hier,

"jasmin" / Dietmar


Beitrag "Große 7-Segment Anzeige"



was sollen die 20 cm displays von den inselapen denn kosten ???

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Schau Dir mal das Datenblatt zum MC14499 (4x 7-Segmente LED-Treiber mit 
seriellem Eingang = Schieberegister; kaskadierbar) bzw MC14489 (5x 
7-Segmente...) an.

Damit sparst Du Dir die Programmierung und den Aufbau eines 
Multiplexers.
Einfach die Daten seriell hineinschieben.

Davor kommt ein kleiner AVR mit RS232-Anschluss. Davor eine 
RS232-Funkbrücke. Sender an den PC. Empfänger an den RS232 des AVR.

von Oliver M. (gonzox)


Lesenswert?

@Dietmar :
Ja den entsprechenden Beitrag kenne ich.
Über Farnell kosten die 200mm (gem.Anode) zw. 47 und 64 Euro,ForgeEuropa 
vertreibt zwar auch direkt,da warte ich aber noch auf eine 
Preisauskunft.

@Christian :
Danke für den Hinweis,habe mir die entsprechenden Datenblätter 
runtergeladen und arbeite sie gerade durch...

Noch eine Frage zur Vorgehensweise :

-Die erste Zeile (4 Segmente) zeigt die Starternummer, ändert sich in 
der Regel also alle 2 Minuten.
-Die zweite Zeile (5 Segmente) zeigt die mitlaufende Zeit an,ändert sich 
also je 1/100 Sekunde.
-Die dritte Zeile (4 Segmente) zeigt Strafpunkte an, ändert sich also 
auch nur gelegtlich.

Ist es sinnvoller, jede Segmenteinheit mit einem einzelnen MC 
anzusteuern ?

Nur wie teile ich dann die übertragenen Daten an die einzelnen MC's auf 
?
(Einen Master, drei slaves ???, Wenn ja, wie ???)

SORRY für meine Unwissenheit, :) aber das wird sich im Laufe der Zeit ja 
hoffentlich ändern.

MfG,
Oliver.

von Otto (Gast)


Lesenswert?

Ob sich die Daten schnell oder langsam ändern, ist für eine Entscheidung 
für oder gegen Multiplex eher unerheblich.

> Ist es sinnvoller, jede Segmenteinheit mit einem einzelnen MC
> anzusteuern ?

Jain - Der Aufbau ist evtl. klarer strukturiert aber Du hast weiteren 
Aufwand die Kommunikation unter den Controllern zu handlen.

Ein ATMEGA16 (oder 32) hat 4 8-bit-Ports. Du benötigst einen Port für 
die 7 Segmente und Dezimalpunkt. Segmente sind die einzelnen Elemente 
EINES Displays.

Pro Display benötigst Du einen Portpin für die "Auswahl" des "zu 
beschreibenden" Displays. Bei insgesamt 13 Displays sind dies (fast) 2 
weitere belegte 8-bit-Ports.

Hinzu kommen 2 Datenleitungen für RS232.

Das heisst, dass Du noch mehr als Port als Reserve frei hast.

Nimm einen Controller und steuere Segmente und Displays über Transistor 
oder Integrierte Treiber an.

Gruss Otto

von Oliver M. (gonzox)


Lesenswert?

@Otto :
Danke zuerst.
Also einen MC, 2 LED Treiber 4 stellig und einen LED Treiber 5 
stellig...
(muss ich aber erstmal alle neuen Infos lesen und verarbeiten...)
Bleibt also noch die Frage der Stromversorgung offen ???

MfG,
Oliver.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Oliver Müller schrieb:

> -Die zweite Zeile (5 Segmente) zeigt die mitlaufende Zeit an,ändert sich
> also je 1/100 Sekunde.

Wer kann denn so schnell lesen? ;-)

Es genügt, wenn du diese deutlich seltener aktualisierst, allerdings
solltest du irgendeinen Modus finden, bei dem auch die 10-ms-Stelle
,,flimmert'', d. h. nicht etwa die ganze Zeit nur 0 anzeigt.

Du musst dir ein Kommunikationsprotokoll ausdenken, dann kannst
du entscheiden, ob du das auf mehrere Controller aufteilen willst.
Wenn du die von Christian beschriebenen seriell anzusteuernden Treiber
nimmst, dreht der Controller wohl sowieso die meiste Zeit Däumchen.

Das Kommunikationsprotokoll benutzt irgendwelche Zeichen, die nicht
im Anzeige-Alphabet vorkommen (welches bei dir ja wohl nur aus Ziffern
und Leerzeichen besteht, so ich das richtig sehe), um Steuerinfor-
mationen zu übertragen.

Ich könnte mir sowas vorstellen:
1
A 123<NL>
2
B  99.54<NL>
3
C  50<NL>
4
X<NL>

Der Buchstabe vorn bezeichnet, für welch der drei Zeilen der Anzeige
die nachfolgenden Informationen gültig sind.  Danach folgt der
anzuzeigende Text, abgeschlossen mit einem Zeichen deiner Wahl, das
wiederum nicht im Anzeigealphabet drin ist (habe mal ein Newline
gewählt).  Beim Empfang des ersten Zeichens schaltet die Controller-
Firmware eine ,Weiche' für den Ausgabekanal.  Das ist letztlich
weiter nichts als die Festlegung, in welchen der drei Zeilenpuffer
die nachfolgenden Daten übernommen werden.  Danach werden die Daten
in diesen Puffer gelesen bis das Abschlusszeichen erkannt wurde.
Jetzt wird der entsprechende Puffer noch in die jeweilige
Anzeigezeile rausgeschoben.  Fertig, warten auf das nächste Zeichen.

Zeichen X macht eine Initialisierung, also alle drei Puffer
löschen und dann auf die Anzeige rausschieben.

Du musst natürlich nie alle drei Zeilen gleichzeitig vom PC
übertragen, in der Regel wirst du ja vor allem die B-Zeile
aktualisieren.

von Otto (Gast)


Lesenswert?

Ein im Multiplexbetrieb angesteuertes Display wird nie so hell sein, wie 
ein parallel angesteuertes. Viele integrierte mehrstellige 
Displaytreiber arbeiten intern auch mit Multiplex.

Netzteil:

Du benötigst einen 5V-Regler für den Controller und eine 2. Spannung, 
welche höher sein muss, als die Flussspannung des Display - 
optimalerweise wäre die 2. Spannung ebenfalls stabilisiert.

Der maximale Strom der 2. Spannung richtet sich nach der Betriebsart:

- bei konventioneller Ansteuerung max. Dauerstrom x Stellenanzahl
- bei Multiplex mindestens der maximale Pulsstrom einer Anzeige

Wichtig ist, dass das Netzteil der 2. Spannung (also die der Displays) 
NIE unter die Flussspannung absinkt ! Andernfalls kannst Du die maximale 
Helligkeit bei bestimmten Ziffern nicht mehr sicherstellen !


Treiber:

Du benötigst bei Multiplexbetrieb einen 8-Bit Segmenttreiber (z. B. 
ULN2803 max 500mA bei gemeinsamer Anode der Displays) und 13 
Spaltentreiber, welche die Displays anwählen bzw. ein- und ausschalten.
Dies ist im einfachsten Fall eine 2-stufige Transistorschaltung, die 13 
mal benötigt wird.

Otto

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Otto schrieb:
> Ein im Multiplexbetrieb angesteuertes Display wird nie so hell sein, wie
> ein parallel angesteuertes.

Das ist ziemlicher Quatsch.  Es ist weder heller noch dunkler, so
man den Strom um 1/T erhöht.  Allerdings sind dieser Erhöhung halt
Grenzen gesetzt in Form des maximalen Spitzenstroms, und EMV-mäßig
ist das Schalten derartiger Ströme auch nicht so der Brüllern.  Von
der Warte her würde ich multiplex vermeiden.

Aber passende Treiber waren ja schon geannnt worden.

von Otto (Gast)


Lesenswert?

Hiermit konkretisiere ich meine Aussage:

wenn die Anzahl der Displays so gross ist, dass der maximal zulässige 
Pulsstrom niedriger ist als der rechnerisch benötigte, ist das Display 
nicht so hell, wie bei paralleler Ansteuerung.

Beispiel:

10 Displays, max. Pulsstrom 100mA, max. Dauerstrom 10mA ist gleich hell
20 Displays, max. Pulsstrom 100mA, max. Dauerstrom 10mA ist dunkler

von Schluck (Gast)


Lesenswert?

Multiplexing würde ich grundsätzlich vermeiden! Statischer Betrieb der 
Anzeige ist einfacher zu handhaben, gerade wegen der räumlichen 
Ausdehnung.

Mein Ansatz wäre eine Kette aus Schieberegistern (4094/74HC595) und 
nachfolgenden Treibern (2803). Jedes Segment bekommt einen eigenen 
Treiber und das Bitmuster wird im µC erzeugt und per SPI alle 10ms 
ausgegeben.

Da die Segmente mit konstantem Strom angesteuert werden müssen, ist die 
Versorgungsspannung einiges höher zu wählen und der Strom durch einen 
Widerstand zu begrenzen. Ich würde 35-40V ansetzen und ca. 47-100 Ohm 
als Vorwiderstand verwenden. Der Wirkungsgrad ist hier kein Thema.
Die Helligkeit könnte per PWM an den enable-Eingängen der 
Schieberegister erfolgen oder in der Änderung der Spannungsversorgung, 
was keinerlei Störungen verursachen würde.

Alles in allem reicht für diese schlichte Anwendung ein ATmega8 o.ä..
Für die Übertragung der Anzeigedaten ist ein Protokoll festzulegen, 
welches neben den Zahlenwerten vielleicht auch Blinken und Sonderzeichen 
(Buchstaben) sowie Dimmen enthalten sollte.
Für die Anzeige der 1/100 Sekunde würde ich dem PC nicht trauen und u.U. 
einen Zähler im ATmega vorsehen, der auch dann weiterzählt, wenn die 
neuen Daten zu spät kommen.

Das Wichtigste zum Schluß: es sind Vorversuche erforderlich, um die 
Ablesbarkeit im Außenbetrieb sicherzustellen, bevor die Anzeige 
aufgebaut wird.

von Schluck (Gast)


Lesenswert?

>Änderung der Spannungsversorgung,

Korrektur: Änderung der Versorgungsspannung :-)

von Otto (Gast)


Lesenswert?

> Das Wichtigste zum Schluß: es sind Vorversuche erforderlich, um die
> Ablesbarkeit im Außenbetrieb sicherzustellen, bevor die Anzeige
> aufgebaut wird.

Eine sehr richtige Aussage: kaufe Dir ein Displayx, steuere es statisch 
an und beurteile die Ablesbarkeit - besorge Dir auch geeignete 
Filterscheiben.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Otto schrieb:
> Hiermit konkretisiere ich meine Aussage:
>
> wenn die Anzahl der Displays so gross ist, dass der maximal zulässige
> Pulsstrom niedriger ist als der rechnerisch benötigte, ist das Display
> nicht so hell, wie bei paralleler Ansteuerung.

Dem stimme ich uneingeschränkt zu. ;-)

Die genannten Displays können unter dieser Prämisse maximal 1:4
gemultiplext werden (75 mA maximaler Dauergleichstrom, 300 mA
maximaler Impulsstrom).

von Oliver M. (gonzox)


Lesenswert?

??? viele offene Fragen :)

Wenn ich also max. 1:4 multiplexen sollte (und die LED Treiber machen ja 
intern nichts anderes soweit ich das verstanden habe) dann fahre ich 
also bei der 5 stelligen Anzeige schon nicht mehr mit max. Helligkeit, 
richtig verstanden ?

Wie rechnet sich das wenn ich an einem MC drei LED Treiber schalte, für 
jede Zeile eben einen ?

MfG,
Oliver.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Oliver Müller schrieb:

> Wenn ich also max. 1:4 multiplexen sollte (und die LED Treiber machen ja
> intern nichts anderes soweit ich das verstanden habe) dann fahre ich
> also bei der 5 stelligen Anzeige schon nicht mehr mit max. Helligkeit,
> richtig verstanden ?

Da der ja 1:5 untersetzt, hast du nicht mehr die maximal mögliche
Helligkeit.

> Wie rechnet sich das wenn ich an einem MC drei LED Treiber schalte, für
> jede Zeile eben einen ?

Die sind jeder für sich eigenständig, was die Lichtstärke angeht.
Allerdings würde ich den Strom der 4stelligen Anzeigen dann so weit
reduzieren, dass sie effektiv die gleiche Helligkeit hat wie die
5stellige (d. h. du musst bei denen größere Vorwiderstände benutzen).

Oder du verzichtest halt ganz auf Multiplex und treibst alles statisch,
wie ja auch schon vorgeschlagen worden ist.  Dann brauchst du allerdings
auch viel mehr Vorwiderstände (7 · (5 + 4 + 4) = 91 Stück, wenn ich
dein Vorhaben richtig verstanden habe).  Die in den Vorwiderständen
zu verheizende Leistung bleibt aber die gleiche, und wie hoch diese
ist, hängt davon ab, wie viel die zweite Versorgungsspannung höher
ist als die Flussspannung der LED-Anzeigen.  Etwas Spielraum brauchst
du aber, da die Dinger maximal 26,4 V Flussspannung brauchen, aber
typisch nur 22 V.  Wenn du also jetzt mit 30 V versorgst, und würdest
deine Vorwiderstände auf 75 mA bei 26,4 V bemessen (48 Ω), dann
würden bei typischer Flussspannung von 22 V bereits 170 mA (statt
der erlaubten 75 mA) fließen.

Allerdings kannst du natürlich die Anzeigen ausmessen und sehen, wie
viel Spannung sie wirklich brauchen, dann den Netzteil entsprechend
nachregeln.  Das klappt aber nur, wenn die einzelnen Teile nicht zu
stark streuen.

von Otto (Gast)


Lesenswert?

Anzumerken ist, dass Du aus Sicht der benötigten Port-Pin auch mit einem 
ATMEGA16 Controller die 3 Displays seperat Multiplexen kannst, so dass 
der Faktor 1:5 eingehalten werden kann, wenn Du keinen Dezimalpunkt 
anzeigen musst.

von Otto (Gast)


Lesenswert?

entschuldigung: 2 x 1:4 und 1 x 1:5

von Frank E. (erdi-soft)


Lesenswert?

Alternativ alle Zeilen für 5 Segmentanzeigen vorsehen, aber bei zwei 
jeweils nur 4 bestücken. Damit ist gleiche Helligkeit aller Anzeigen 
garantiert (abgesehen von Bauteilabweichungen).

von Otto (Gast)


Lesenswert?

Nachtrag: kleiner Denkfehler - es geht auch mit Dezimalpunkt....

von Oliver M. (gonzox)


Lesenswert?

@Otto :
Danke für deine ausführlichen Erklärungen,ich werde jetzt erst mal übers 
WE  versuchen zu lernen und verstehen :) und dann mal anfangen zu 
bestellen und zu testen.
Mit 'statisch antreiben' meinst du wenn ich es richtig verstanden habe 
die Ansteuerung über Schieberegister ?

MfG,
Oliver.

von Otto (Gast)


Lesenswert?

Mit "statisch" meine ich:

das Display nur mit aus einer Spannungsversorgung betreiben - das heißt 
konkret, alle Segmente (Es zeigt dann "8." an) entweder über geeignete 
Vorwiderstände an eine feste Spannungsquelle oder über ein Labornetzteil 
mit einstellbarer Strombegrenzung betreiben.

von Otto (Gast)


Lesenswert?

Mein letztes Post gilt nur im Zusammenhang mi:

> Eine sehr richtige Aussage: kaufe Dir ein Display, steuere es STATISCH
> an und beurteile die Ablesbarkeit - besorge Dir auch geeignete
> Filterscheiben.

von Oliver M. (gonzox)


Lesenswert?

OK,danke.

von Peter Z. (hangloose)


Lesenswert?

Hallo Oliver,

kennst Du zufällig einen Peter Engel? (autuvo.com)
Dem hab ich nämlich genauso eine 7-Segment Anzeige gebaut.
Auch für den Reitsport....

Gruß Peter

von Oliver M. (gonzox)


Lesenswert?

@Peter :
Nein,ihn kenne ich nicht.
Aber wenn du schon so eine Anzeige gebaut hast, könntest du mir ja evtl. 
sagen welche Bauteile (7-Segment,MC,LED Treiber usw) du dabei verwendet 
hast.

MfG,
Oliver.

von Peter Z. (hangloose)


Lesenswert?

Als Mikrocontroller hatte ich ein Crumb128 Board verwendet und
12 74HC595 Schieberegister und 12 ULN2803 Treiber.
Ansteuerung war über die RS232 welche auch schon am Crumb Modul drauf 
war.
Alles auf einer Lochrasterplatine aufgebaut. 7-Segment Anzeigen waren so 
riesen Dinger(300x150mm) die er aus China hatte...mit gemeinsamer Anode.

von Oliver M. (gonzox)


Lesenswert?

@Peter :
Danke für die Info !!!

von Lui S. (lute)


Lesenswert?

Hallo Oliver,

ich habe so etwas auch mal gebaut, allerdings mit Glühlämpchen. Es ist 
eine 4-stellige 7-Segment Anzeige mit einem Komma hinter der 2. Stelle. 
So kann max. 99,99s angezeigt werden. Ich habe aber festgestellt, dass 
das auch schon mal zu wenig sein kann, also 5-stellig ist auf jeden Fall 
sinnvoll.
Wenn Du die laufende Zeit anzeigst, dann reicht es, die Sekunden 
hochzuzählen und während der Messung die 1/10 und 1/100 auszublenden. 
Die kannst Du einblenden, wenn die Zeit angehalten ist und das Ergebnis 
feststeht.
Ich habe bei meiner Anzeige immer 5 Glühlämpchen mit je 48V in Reihe 
geschaltet und diese mit Solid-State-Relais angeschaltet. Darin sind 
schon Optokoppler enthalten, so dass eine galvanische Trennung zur 
Ansteuerlogik gegeben ist. Der Vorteil ist, dass ich kein starkes 
Netzteil brauche, da die Anzeigen direkt mit 230V Netzspannung betrieben 
werden. Nur für die Logik habe ich ein kleines 5V Netzteil eingebaut.
Bei mir werden die anzuzeigenden Daten seriell per Kabel an die Anzeige 
gesendet und von einem Microcontroller empfangen und decodiert. Um Pins 
zu Sparen (ich hatte damals nur 8 I/Os, es ist eine BasicStamp... würde 
ich heute nicht mehr damit machen sondern einen Atmel nehmen) sind 
7-Segment Treiber 4511 und Adressleitungen verwendet. Die 4511 halten 
die Daten am Ausgang über einen Speichereingang, so dass die Anzeigen 
statisch angeschaltet sind, solange bis neue Daten angelegt werden.
Du könntest für jede Anzeigeeinheit (Zeit, Startnummer, Fehler) einen 
Mikrocontroller nehmen und die seriellen Daten vom PC an alle 
gleichzeitig senden und eine Adresse für die entsprechende Anzeige mit 
übertragen. Dann könntest Du die auch einzeln betreiben, wenn z.B. mal 
nur Zeit benötigt wird.
Die Glühlampenanzeige ist ziemlich hell (es sind(glaube ich) 5W 
Lämpchen) und ist auch bei direkter Sonneneinstrahlung noch gut zu 
lesen. Auch in 100m Entfernung.
In mehreren Jahren Betrieb ist noch nie! eine Glühlampe (von den 145!) 
kaputt gegangen :)

Wenn Interesse besteht, kann ich mal ein Foto machen...

Viele Grüße,
lute

von Oliver M. (gonzox)


Lesenswert?

@Lui :
Danke für deinen interessanten Ansatz,auch wenn ich denke das ich die 
'fertigen' 7-Segmente verwenden werde würde mich doch ein Foto deiner 
Lösung freuen.

MfG,
Oliver.

von Gast (Gast)


Lesenswert?

Kann sein das es schon jemand vorgeschlagen hat, hab nicht alles 
gelesen.

Benedikt hat hier im Forum mal eine RS232-Funkbrücke über einfache 
RFM-Funktmodule vorgestellt.
Du kannst du Anlage zunächst über ein Kabel an den PC anschließen und 
später einfach die Funkbrücke zwischenschalten, das sollte kaum Probleme 
geben.
Vielleicht stellst du in der Anzeige auch beide Anschlüsse bereit.
Wenn du einen RS485 Treiber einsetzt, kannst du für die Verbindung 
günstige Netzwerk-Patchkabel verwenden und bist relativ sicher vor 
Störungen.

von Oliver M. (gonzox)


Lesenswert?

@Gast :
Danke, aber zur Zeit habe ich die Problematik der Übertragung nach 
hinten geschoben, da ich primär zuerst eine Lösung für die Ansteuerung 
einer 5 stelligen Anzeige mit diesen leuchtstarken Outdoor 7-Segmenten 
suche :

http://www.forge-europa.co.uk/pdfs/FEM-790HXX00GW.pdf

Wäre ja zu schön wenn es einen geeigneten LED Treiber geben würde der 
das 'erledigen' könnte.

MfG,
Oliver.

von Schluck (Gast)


Lesenswert?

>Wäre ja zu schön wenn es einen geeigneten LED Treiber geben würde der
>das 'erledigen' könnte.

Hast Du nicht gelesen, was hier dazu geschrieben wurde?

von Oliver M. (gonzox)


Lesenswert?

@Schluck :
Doch das habe ich.(Und zum Teil auch verstanden hoffe ich :) )

Doch es sieht ja so aus, das kein 'fertiges' LED Treibermodul gibt mit 
welchem ich eine 5-stellige Anzeige mit voller Leistung ansteuern 
könnte.

Und wenn es für dich unverständlich sein sollte, das ich als newb 
vielleicht nicht alles direkt umsetzen kann, zwingt dich ja keiner meine 
Beiträge zu lesen und zu beantworten ....

MfG,
Oliver.

von Schluck (Gast)


Lesenswert?

Na gut, dann überlassen wir das Wiederkäuen den Kühen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Oliver Müller schrieb:

> Doch es sieht ja so aus, das kein 'fertiges' LED Treibermodul gibt mit
> welchem ich eine 5-stellige Anzeige mit voller Leistung ansteuern
> könnte.

Naja, als ,Modul', sprich als einzelnen IC gibt es das halt nicht,
weil das so nicht geht.  Entweder hast du Multiplexing (und dann
hast du das Problem, dass bei weniger als 1:4 nicht die maximale
Helligkeit erreichbar ist -- daran ist aber nicht der Treiber schuld,
sondern deine Anzeigen), oder aber der Pincount würde für ein
einzelnes IC einfach zu hoch, das lohnt dann nicht mehr.

Wenn du also nicht multiplexen willst, musst du eben die bereits
genannten 74HC595 + ULN2803 dafür benutzen.  Von dieser Kombination
brauchst du eins für jede Stelle deiner Anzeige.  Auf eine Platine
musst du das ja sowieso irgendwie setzen, nun kannst du dir noch
überlegen, ob du für jede Anzeigezeile eine Platine machen willst
oder eine Platine für alles -- das ist im Wesentlichen eine
Geschmacksfrage, insbesonder hängt halt die Länge der Drähte davon
ab.  Wenn du eins pro Zeile machst, kannst du die Platine ja für
5 Stellen entwerfen und dann dreimal bauen; bei den Zeilen, die nur
4 Stellen haben, lässt du einfach das jeweils letzte Paar weg.

von Christian (Gast)


Lesenswert?

Neugierige Frage:
Was kostet denn so ein Display bei Forge Europa?

von Oliver M. (gonzox)


Lesenswert?

@Christian :
Die Standard Ausführung siehe hier :
http://de.farnell.com/forge-europa/fem-7902r0300gw/led-display-200mm-rot-gem-anode/dp/1200619

für die Outdoor habe ich noch keine Preisantwort ...

von Oliver M. (gonzox)


Angehängte Dateien:

Lesenswert?

@Jörg :
Danke für deine Erläuterungen.
Habe aus einem anderen Beitrag hier den angehängten Schaltplan, könnte 
ich das aus so lösen ?

MfG,
Oliver.

von Otto (Gast)


Lesenswert?

Die von Dir vor 2 Beiträgen verlinkten Displays haben gemeinsame Anode - 
die in der Schaltung verwendeten gemeinsame Kathode.

Otto

von Oliver M. (gonzox)


Lesenswert?

.... sorry, das kommt wenn der Unwissende nicht richtig schaut und 
nachdenkt.

von Otto (Gast)


Lesenswert?

macht nichts - im Prinzip must Du für gemeinsame Anode nur Spalten- und 
Segmenttreiber "vertauschen" - dass heisst, der ULN2803 treibt bei 
gemeinsamer Anode die Segmente der Displays (das sind die Kathoden) und 
der anderen Baustein die "Spalten" (das sind die gemeinsamen Anoden).

Selbstverständlich muss das Programm (falls das dabei war) entsprechend 
angepasst werden.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Die Schaltung, die du ausgegraben hast, macht multiplex.  Das willst
du nicht.

Die 74HC595 werden einfach hintereinander verkettet, das sind
serielle Schieberegister mit parallelen Ausgängen.  Jedes hat
aber auch noch einen seriellen Ausgang, damit baust du die Kette
zum nächsten auf.  Alle Register einer Kette werden mit einem
einzigen Takt getaktet, außerdem haben sie noch ein Freigabesignal,
mit dem der Inhalt des Schieberegisters ins Ausgangsregister
übernommen wird.  Nachdem du alle Bits einer Kette durch das
Schieberegister durch geschoben hast, gibst du einen Impuls auf
dieses Signal, damit werden die Ausgänge dann auf den neuen Wert
geschaltet.

Die ULN2803 kommen dann an die Ausgänge dran und arbeiten als
Segmenttreiber, der Kollektor jedes einzelnen Transistors geht
dann an die Katode eines LED-Segments.  Von der Anode des Segments
brauchst du noch einen Strombegrenzungswiderstand (pro Segment!),
mit dem geht's dann an +30 V (oder wieviel auch immer du als
Versorgung nimmst).

von Christian (Gast)


Lesenswert?

Ich persönlich würde die schon bereits weiter oben genannte 
Vorgehensweise mit 74HC595 und ULN2803 bevorzugen, da bei 75mA pro 
Segment die max. zulässigen 500mA der Treiber überschritten werden.

von Oliver M. (gonzox)


Lesenswert?

@Jörg/Christian :
Denke/rechne ich falsch ?
Wenn ich mit Schieberegistern arbeite(74xx595/ULN2803)für jedes Segment 
kann ich mit 75mA belasten,
wenn ich aber kombinierte Treiberbausteine für jede Zeile verwenden 
würde ( 2x je 4 Segmente, 1x 5 Segmente) und diese bis zu 500mA 
verkraften wo liegt dann der Nachteil bzw. die geringere 
Leistungsfähigkeit dieser Lösung ?

Danke für eure Geduld im Voraus,
Oliver.

von Harald A. (embedded)


Lesenswert?

Hallo Oliver,
ich habe diesen Thread gerade entdeckt und habe ihn überflogen. Dabei 
interessierten mich diese Anzeigen von Forge Europa, da ich ähnliche 
Anzeigen schon gebaut habe. Wenn ich das Datenblatt richtig 
interpretiere, reden die bei dieser Anzeige von Helligkeiten im Bereich 
von einigen wenigen 100 mcd - ein typischer Wert für solche 
Großanzeigen. Bist Du dir sicher, das Du mit dieser Helligkeit glücklich 
wirst, gerade im Außenbereich? Meine Lösungen basieren immer aus 
Anordnungen von 'normalen' LEDs, weil ich bisher keine fertige 
Großanzeige gefunden habe, die die benötigte Outdoor-Helligkeit auch nur 
annähernd bringt.
Hast Du da bereits Erfahrungswerte?

von Oliver M. (gonzox)


Lesenswert?

@Harald  :

siehe
http://www.forge-europa.co.uk/pdfs/FEM-790HXX00GW.pdf

hoffe das die ausreichen.
Ich werde mir davon eine zum Probieren besorgen und die Erfahrungen hier 
posten.
Ich habe nur bisher keinen Distributor gefunden wo ich diese Version 
bestellen kann und meine Anfrage an ForgeEuropa direkt ist noch 
unbeantwortet.

MfG,
Oliver.

von Christian (Gast)


Lesenswert?

Beim Multiplexing steuerst Du immer nur EINE Ziffer deiner Anzeige nach 
der anderen an. Dabei wechselst Du die Ziffern so schnell, dass es für 
das menschliche Auge flimmerfrei erscheint. Für den Betrachter leuchten 
also alle Ziffern quasi gleichzeitig.

Das Problem hierbei ist, dass bei 5 Ziffern jede Ziffer natürlich nur 
1/5 der Zeit leuchtet. Sie erscheint dem Betrachter dadurch wesentlich 
dunkler. Dem kann man nun entgegenwirken indem man den Strom für die 
Segmente der Ziffer erhöht.

Laut Datenblatt kannst Du den Anzeigen bei einem Tastverhältnis von 1/10 
noch einen Segmentstrom von 300mA zumuten. Da Du mit einem 
Tastverhältnis von 1/5 arbeiten würdest, solltest Du diesen auf 150mA 
beschränken (Frage an die Experten: Kann man das hier so einfach 
rechnen?).

Zu Problemen wird es kommen, falls z.B. dein Programm abstürzt oder das 
Multiplexing aus irgendwelchen anderen Gründen versagt. Du hast dann auf 
einmal 150mA dauerhaft durch die Segmente einer einzigen Ziffer fließen.

Pro Ziffer würdest Du bei 150mA Segmentstrom auf etwa 1,2A kommen. Ob 
die Treiber der oben gezeigten Schaltung diese bei einem Tatsverhältnis 
von 1/5 überhaupt aushalten müsste man mal im Datenblatt nachlesen.

Kurz gesagt:
+ weniger Hardwareaufwand
- mehr Aufwand bei der Programmierung
- Gefährdung deiner Displays beim Versagen des Multiplexing
- Evtl. Probleme mit obiger Schaltung wegen zu hoher Ströme für die 
Treiber

Vielleicht bringt der folgende Artikel ja auch etwas mehr Licht ins 
Dunkle.
http://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige

von Lui S. (lute)


Angehängte Dateien:

Lesenswert?

Hi,

hier ist ein Bild von meiner Glühlampenanzeige (sorry, ist ein bischen 
unscharf). Die Ziffern sind ca. 26 cm hoch.

Viele Grüße

von Oliver M. (gonzox)


Lesenswert?

Gibt es irgendwo einen Beispielschaltplan für mehrere 7-Segmente der die 
Lösung mit den 74HC595 und ULN2803 zeigt, würde mir beim Verstehen 
weiterhelfen :)

MfG,
Oliver.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Naja, sooo schwer ist das doch nicht.  Fertig habe ich das auch nicht,
aber ich habe in meiner Nixie-Uhr die Ansteuerung der einzelnen Stellen
mit 74HC595 gemacht.  Das hänge ich dir mal an.  Hier eine einzelne
Stelle.  Entscheidend für dich ist die Beschaltung des 74HC595 selbst.
/EN habe ich dauerhaft auf Masse, das schaltet die Ausgänge in den
Tristate, wenn der Eingang high ist.  Habe ich nicht gebraucht, du
könntest das bei Bedarf benutzen, um per PWM eine Helligkeitssteuerung
zu realisieren, falls die Anzeigen unter bestimmten Beleuchtungs-
bedingungen zu hell sind.

Auf der rechten Seite findest du die Ausgänge, die bei mir zur
Buchse X10 weiter gehen (dort waren meine Nixie-Blöcke reingesteckt).
Stattdessen müsstest du dann die ULN2803 anschließen.  Diese sind
weiter nichts als (Darlington-)Transistoren mit einem Basisvorwider-
stand.  Wenn sie ein high am Eingang sehen, dann schaltet der
Transistor zwischen Kollektor und Emitter (Masse) durch.  Vom
Kollektor muss dann also über den bereits besprochenen Vorwiderstand
das jeweilige Segment des Anzeigemoduls angeschlossen werden, Katode
der LEDs in Richtung Kollektor+Widerstand, Anode an die Versorgungs-
spannung von ~ 30 V.

LATCH_CLK ist das Signal, mit dem der Inhalt des Schieberegisters
in die Ausgangsstufen übernommen wird.  (Bei NXP wird dieses Signal
als ST_CP bezeichnet.)  Dies erfolgt mit einer positiven Flanke.
Alle Stellen einer Zeile bekommen dieses Signal verbunden, gesteuert
wird es von einem Ausgang des Controllers.  Dadurch kann man die
Daten ,,im Hintergrund'' in das Schieberegister bit für bit reintakten,
ohne dass sie bereits in der Anzeige (als ganz schnelles Flimmern)
wirksam werden.

SER_CLK (bei NXP als SH_CP bezeichnet) ist der serielle Takt.  Das
wirst du normalerweise mit dem SCK-Ausgang des SPI-Blocks deines
Controllers verbinden.

Nächstes Bild...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

...zeigt die Zusammenschaltung der einzelnen Anzeigestellen bei mir.
Hier siehst du, wie jeweils SER_IN einer Stelle von SER_OUT der
vorhergehenden angesteuert wird.  Das letzte SER_OUT bleibt frei,
das erste SER_OUT wird mit MOSI des SPI-Blocks am Controller verbunden.

DP sind bei mir die Dezimalpunkte, die nicht als Teil der Schiebe-
registerkette ausgegeben werden, da ich alle 8 Bits für die
Ansteuerung meiner Nixie-Module benötigt habe.  Du könntest bei
dir die Dezimalpunkte mit in die Schieberegister aufnehmen, wenn du
willst.

Die SPI-Leitungen (SER_CLK und SER_IN) aller drei Anzeigezeilen
kannst du parallel an den Controller klemmen.  Damit werden alle
Informationen zwar in jede der drei Zeilen reingetaktet, aber am
Ende entscheidet ja der Impuls am jeweiligen LATCH_CLK, welche der
drei Zeilen die Information tatsächlich in die Ausgabe übernehmen.
Du müsstest damit nur drei verschiedene Ausgänge am Controller für
LATCH_CLK jeder der drei Zeilen vorsehen, der Rest wird gemeinsam
benutzt.  (Falls du einen AVR benutzen willst: dort muss der Pin
/SS ein Ausgang sein, wenn man den SPI-Block im Master-Modus benutzen
will.  Damit bietet es sich an, dass einer der drei LATCH_CLK an
/SS gelegt wird, die anderen beiden gehen dann wahlfrei an andere
Ausgänge des Controllers.)

von Maarten J. (quirk)


Angehängte Dateien:

Lesenswert?

Hallo Oliver,

    ich arbeite seit längerem an einem ählichen System. Ich habe 8x 
7-Segmet-Anzeigen im Multiplex-Betrieb laufen. Das Bild zeigt den 
schematischen Aufbau. Je Display habe ich einen PNP zum Anschalten der 
Versorgungsspannung an Common. Die Segmente (A1, A2, ... An; B1, 
B2,...)werden alle zusammengefasst über jeweils eine Konstantstromquelle 
geführt.
Das hat den Vorteil, dass man nur noch die Displays über ein 
Flachbandkabel verbinden muss.

Wenn ich später Zuhause bin, suche mal nach dem Plan.

Grüße
   Quirk

von Oliver M. (gonzox)


Lesenswert?

@jörg:
Danke für die Hinweise,ich denke Avr und Schieberegisterkette sind mir 
jetzt einigermaßen klar, ein Beispiel wie ich die ULN2803 anschließe 
wäre noch schön ....

MfG,
Oliver.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Oliver Müller schrieb:
> ein Beispiel wie ich die ULN2803 anschließe
> wäre noch schön ....

Hmm, so schwer ist das doch gar nicht.  Hast du dir denn die
Innenschaltung mal angeguckt?

von Oliver M. (gonzox)


Angehängte Dateien:

Lesenswert?

Habe ich das in dem angehängten Schaltplan jetzt richtig umgesetzt für 
das eine Segment ???

Thx,
Oliver.

von Karl H. (kbuchegg)


Lesenswert?

Oliver Müller schrieb:
> Habe ich das in dem angehängten Schaltplan jetzt richtig umgesetzt für
> das eine Segment ???
>

Wenn der einsame Anschluss rechts die Versorgungsspannung sein soll und 
du dem Chip noch einen Masseanschluss spendierst: ja

Ist doch ganz einfach: den ULN2803 kann man sich wie Schalter 
vorstellen, der seine Ausgänge mit Masse verbindet, wenn der zugehörige 
Eingang entsprechend steht.

von Otto (Gast)


Lesenswert?

Nein:

- die Widerstände am Display hast Du alle überbrückt
- der Reset gehört über einen Pull-Up an +5V
- AVCC gehört an +5V
- Alle GND der IC müssen mit einem GND-Symbol beschaltet werden
- an der Versorgung jedes IC gehört ein 100nF

von Otto (Gast)


Lesenswert?

Hast Du Dir Gedanken darüber gemacht, wie Du die Schaltung aufbaust ?
Soll es eine Lochraster-Platine oder eine Geätzte werden ?
Sollen die Displays über Drähte angeschlossen werden ?
Ist das Netzteil eine seperate Baugruppe ?

Das solltest Du in Deinen Schaltplan einfliessen lassen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Otto schrieb:

> - an der Versorgung jedes IC gehört ein 100nF

Wobei die ULN2803 in dem Sinne keine ICs sind, da hängen am Pin 10
nur die Freilaufdioden dran, die auf Grund der nicht vorhandenen
induktiven Last hier egal sind.  Man könnte den Pin auch komplett
offen lassen.

Aber der AVR sollte 2 solcher Kondensatoren bekommen (direkt
neben das jeweilige Paar, also Vcc/GND und AVcc/GND) und jeder
der 74HC595 ebenfalls.

Die Segmentwiderstände müssen eine ausreichende Verlustleistung
haben.  War ich oben schon mal drauf eingegangen.  Entweder für
worst case mit relativ hoher Versorgungsspannung und großen
Widerständen mit entsprechend viel Verlusten dimensionieren, oder
die tatsächliche Flussspannung der LEDs messen und dann entsprechend
aufbauen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Pin 13 der 74HC595 (G oder /EN) müssen entweder an GND oder an
einen Controller-Pin, falls eine Helligkeitssteuerung gewünscht
wird (dann sollte das ein OCx-Pin sein).

Pin 10 der 74HC595 (Reset) können fest an Vcc gelegt werden, diese
Funktionalität braucht man nicht.

von Oliver M. (gonzox)


Lesenswert?

Danke für die Fehlerkorrekturen, was bewirken die Kondensatoren bzw. was 
würde/könnte passieren wenn sie nicht verwendet werden ?
Nicht lachen, aber wie füge ich in Eagle das Groundsymbol ein, finde ich 
einfach nicht ....
@Otto :
Ja die weitere Vorgehensweise....
Zum Probieren/Testen dachte ich eigentlich an eine Lochrasterplatine und 
die 7 Segmente wollte ich aufgrund ihrer Größe entsprechend verkabeln 
und auch ersteinmal mit externen Netzteilen arbeiten.
Wenn mal alles so funktioniert wie gedacht könnte man da ja auch noch 
einiges verbessern, aber ich als newb muss ja zuerst mal die ganze Sache 
ans Laufen bekommen und ich muss ja auch noch die serielle 
Datenübertragung vom PC zum MC und die Darstellung der gewünschten Daten 
auf dem Display erst einmal hinbekommen, das wird ja auch noch etwas 
dauern ....

Aber wie gesagt,ich habe ja einen weit gesteckten Zeitrahmen und noch 
viel zu lernen .....
(und trotzdem schon 'spinnerte' Erweiterungspläne im Kopf)

MfG,
Oliver.

von Chris (Gast)


Lesenswert?

>Nicht lachen, aber wie füge ich in Eagle das Groundsymbol ein, finde ich
einfach nicht ....

Das findest Du in der supply1.lbr

von Chris (Gast)


Lesenswert?

> was bewirken die Kondensatoren bzw. was würde/könnte passieren wenn sie nicht 
verwendet werden ?

Schau mal hier:
http://www.rn-wissen.de/index.php/Abblockkondensator

Ganz wichtig: Möglichst nahe an den entsprechenden Pins des IC legen.

von Oliver M. (gonzox)


Lesenswert?

@Chris :
Danke !!!
MfG,
Oliver.

von Oliver M. (gonzox)


Angehängte Dateien:

Lesenswert?

So,ich habe einmal meinen nächsten Schaltplanversuch angefügt und würde 
mich über weitere Korrekturen und Hinweise freuen.
Wie schließe ich die benötigten Kondensatoren bei den 74HC595 an ?

Und noch ein paar Fragen bezüglich der Steuerung bzw. des 
Programmablaufes :
(Ich habe zwar die entsprechenden Tutorials hier gelesen (UART,SPI), 
aber einiges ist leider immer noch offen...)

Ich sende also vom PC via RS232 eine Zeichenfolge an den MC welche 
angibt welche der drei 7-Segmentzeilen ausgewählt werden soll und 
welcher Inhalt angezeigt werden soll und ein Abschlusszeichen.
Durch den Empfang des Kommandos wird ein Interupt ausgelöst und je nach 
Auswahl soll der Inhalt per SPI an die entsprechende 7-Segment Zeile 
ausgegeben werden.

Ich hoffe das ist gedanklich vom Ablauf her richtig.
Gibt es irgendwo Beispiele für so eine 'Kombination' zwischen Kommandos 
via UART einlesen und Ausgaben via SPI durchführen ?

Wenn ich das AVRStudio verwende (kann ich zur Zeit noch nicht 
runterladen,bin im Urlaub und habe nur einen OGO mit :( ), kann ich 
damit auch ohne angeschlossenen MC eine solche Testumgebung und meine 
Programmfunktionalität in der Emulation testen ???

Danke für eure Hilfe im Voraus, wird bestimmt nicht meine letzte Frage 
gewesen sein :)

MfG,
Oliver.

von D. S. (jasmin)


Lesenswert?

Ach du meine Güte,

was ist den das für eine Hardwareschlacht um 7 Segmentanzeigen 
anzusteuern ?

Von den Aufwänden bei eventuellen Erweiterungen gar nicht zu sprechen 
...

Google einfach mal nach UCN5841, oder dessen Nachfolger oder erweiterten 
Treibern und Dir wird hoffentlich ein (LED) Licht aufgehen.

Ansonsten stirbst Du bei der Löterei an Bleivergiftung ;-).

Das gekoppelt mit dem kleinsten AVR, ein bischen Software und Du bist 
fein raus.....


D.S.

von Otto (Gast)


Lesenswert?

Dietmar S hat wahrscheinlich nicht den gesammten Thread gelesen.....

vergiss es einfach....

von Otto (Gast)


Lesenswert?

Entschuldigung - Dietmar S hat recht - der UCN5842A wäre gut geeignet 
(siehe Applikation im Datenblatt) !

von D. S. (jasmin)


Lesenswert?

Dietmar S hat damit schon mehrere "professionelle" Großanzeigen für 
große Sporthallen gebaut und damit über Jahre ne Menge Erfahrungen 
gesammelt ;-)

Schick mal Deine Mailadresse und sende Dir den Sourcecode nebst 
Schaltbild.

Aber der Hersteller hat mittlerweile glaube ich noch besser Alternativen 
im Programm....

Die Lösung ist die trivialste, stabilste und preiswerteste,


believe me !

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Otto schrieb:
> Entschuldigung - Dietmar S hat recht - der UCN5842A wäre gut geeignet
> (siehe Applikation im Datenblatt) !

Ist halt nur schade, dass er damit jetzt erst ankommt, wenn unser
Kandidat allmählich die 74HC595 + ULN2803-Lösung in der Tasche hat.

Von der inneren Logik her ist der UCN5842A nicht viel anders als
eine Kombination aus '595 und ULN2803, man spart also die Hälfte
an ICs, dafür muss man gucken, wo man den Allegro-Kram überhaupt
kaufen kann.

Eine Hardwareschlacht bleibt letztlich beides, aber das ist den
gewünschten Strömen geschuldet und der Tatsache, dass ein
Multiplexbetrieb aus diversen Gründen abgewählt worden war.

von D. S. (jasmin)


Lesenswert?

Sorry,


aber ich hatte das schon mehrfach hier vor längerer Zeit als Lösung 
gepostet, sogar Anfangs schon in diesem Thread.

Übrigens spart man unter anderem eventuell auch das ganze 
Platinengedrösel.
Den Ucn kann man auch mit der Heißklebepistole hinten auf die Anzeige 
kleben und verdrahten. Von Anzeige zu Anzeige dann einfach nur STROBE 
CLOCK und DATA schleifen nebst +/-.

Die Versorgungsspannung habe ich pro IC über einen 78L05/12 erzeugt.
Bei der Direktversogung gabs Probleme.

Die "neueren" Bausteine (auch in 32 BIT o.ä.) haben auch eine current 
loop Steuerung, so daß man hier auch bequem die Helligkeit regeln kann 
und die Vorwiderstände ggf. obsolet werden.

Bei der Beschaffung hatte ich keine Probleme, Samples haben die auch 
rausgerückt.

Die 7 Segmentanzeigen habe ich von Hand auf eine Platine mit ca. 250 
Hochleistungs-leds aufgebaut.

Das ind die fertigen  Anzeigen vielleicht eine gute Alternative

D.S.

von Klaus (Gast)


Angehängte Dateien:

Lesenswert?

Hier ist eine Schaltung für die serielle Ansteuerung von kaskadierbaren 
7Segment- LED. Die Anbieterseite ist: 
http://www.sureelectronics.net/goods.php?id=136

von D. S. (jasmin)


Lesenswert?

@ Klaus


das ist der Hammer !!!

http://www.sureelectronics.net/pdfs/DE-DP029~033_Ver1.0_EN.pdf

schaut euch mal die Dinger an ....

für unter 40 €

das ist ne Tapete von über 25 mal 50 cm !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Ich glaub davon bestelle ich mal  4 Stück !

So billig gibts noch nicht mal die Einzelteile in Summe


Klasse

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Naja, in so eine Direkt-Verklebe-Methode hätte ich nicht das rechte
Langzeitvertrauen.

Die Anzeige, die du zuletzt rausgekramt hast, ist natürlich wirklich
nett für jemanden, der sowas vorhat.

von Oliver M. (gonzox)


Lesenswert?

@all :
Danke für die neuen Informationen, werde ich erst einmal sichten und 
versuchen zu verarbeiten.
@Dietmar :
Habe dir meine Mailadresse gesendet und warte auf deine Antwort,Danke 
schon einmal im Voraus.

MfG,
Oliver.

von D. S. (jasmin)


Lesenswert?

oliver,


habe bisher keine mail erhalten.
gib deine mal "verschlüsselt" hierüber bekannt.

von Oliver M. (gonzox)


Lesenswert?

@dietmar :

code51'at'mr-moto.net

MfG,
Oliver.

von Chris (Gast)


Lesenswert?

Zum Schaltbild:
Der 7824 ist natürlich hoffnungslos überlastet. Hier fließen wesentlich 
höhere Ströme. Zudem sind 24 Volt zu wenig. Die Segmente haben eine 
Forward Voltage von bis zu 26,4V. Da solltest Du auf jeden Fall drüber 
liegen.

Ich persönlich würde mich hier mal auf die Suche nach einem 
Schaltnetzteil mit einer stabilisierten Ausgangsspannung von mind. 30V 
begeben.

von Oliver M. (gonzox)


Lesenswert?

@chris :
Danke für die Korrekturen.

Wenn ich ja wüsste ob diese 7-Segmente hier hell genug sind, dann wären 
sie ja optimal, integrierte Schieberegister und Treiber, per SPI 
ansteuerbar :

http://www.sureelectronics.net/goods.php?id=721

und preislich auch konkurenzlos günstig.

@dietmar :
warte 'sehnsüchtig' auf deine mail :)

MfG,
Oliver.

von Chris (Gast)


Lesenswert?

Tja, eine Angabe hierzu scheint nicht im Manual zu stehen. Kann man ja 
auch mal anfragen. Zur Not muss man eben je eine Anzeige von beiden 
Bestellen und schauen wie hell sie jeweils sind.

Bedenke, dass bei einer Lieferung aus China Einfuhrumsatzsteuer beim 
deutschen Zoll fällig wird (auch auf die Versandkosten).

von D. S. (jasmin)


Lesenswert?

@Oliver

Viel Spaß.

Der Code funktioniert wie geschmiert!!!






'( Diese Software steht unter GPL

Copyright (C) [2006]  [Dietmar Steiner]

'This program is free software; you can redistribute it and/or modify it 
'under the terms of the GNU General Public License as published by the 
Free Software Foundation; either version 3 of the License, or (at your 
option) any later version.

This program is distributed in the hope that it will be useful, but 
WITHOUT ANY WARRANTY; without even the implied warranty of 
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 
Public License for more details.

You should have received a copy of the GNU General Public License along 
with this program; if not, see <http://www.gnu.org/licenses/>;.
')



$regfile = "m8def.dat"                                      ' specify 
the used micro
$crystal = 8000000                                          ' used 
crystal frequency
$baud = 38400

Config Portb.0 = Output
Config Portb.3 = Output
Config Portb.4 = Output
Config Portb.5 = Output

Alarm_out_pin Alias Portb.0
Data_out_pin Alias Portb.3
Clock_out_pin Alias Portb.4
Strobe_out_pin Alias Portb.5

Set Strobe_out_pin
Reset Data_out_pin
Reset Clock_out_pin
Alarm_out_pin = 0

'(
In Bascom ist es möglich, ein und denselben SRAM-Platz mit mehreren 
Variablen zu belegen. Wir können z.B. anweisen, daß unsere 
String-Variable auf Adresse &H60 gesetzt werden soll. Gleichzeitig 
können wir ein Feld mit n Bytes dimensionieren, das auf der gleichen 
Adresse liegen soll.
(ein n Byte langer String benötigt n+1 Bytes Platz). Damit können wir 
ganz
einfach und effizient über völlig verschiedene Methoden auf denselben
Speicher zugreifen.
Der String wird auf Adresse &H60 im AVR abgelegt. Dies ist die Adresse 
des
ersten Bytes im SRAM .Da der AT90S2313 über 128 Bytes SRAM vefügt, ist 
die
höchste SRAM-Adresse &HDF. Quasi "darüber", also auf die selbe Adresse, 
legen wir ein Feld, das genauso lang wie der String ist. Das ist alles.
Der Trick ist nur, daß wir beim Füllen des Strings in unserem 
Anwendungsfall am effizientesten mit einem Feld arbeiten können, während 
in anderen Fällen die Arbeit mit einem String günstiger sein kann.
Welche Wege man in der Praxis gehen will, hängt natürlich immer von der
Anwendung ab. Die Anwendung des Overlay-Tricks kostet weder
zusätzlichen Code, noch SRAM.
')

Dim S As String * 16 At &H60

Dim B(15) As Byte At &H60 Overlay
Dim Shift_string As String * 16
Dim A(15) As Byte
Dim N As Byte
Dim I As Byte
Dim Ausgabe As Byte
Dim Newstring As Bit
Dim Frame_complete As Bit
Dim Dummy As Byte
Dim Delay_1 As Byte
Frame_complete = 1
Newstring = 0
N = 1                                                       'Array 
beginnt bei 1
Delay_1 = 50
Dim Index As Byte

On Urxc Onrxd
Enable Urxc
Enable Interrupts

Bkz_zehner_weiss Alias B(1)
Bkz_einer_weiss Alias B(2)

Hkz_minute Alias B(3)
Hkz_sek_zehner Alias B(4)
Hkz_sek_einer Alias B(5)
'
Bkz_zehner_blau Alias B(6)
Bkz_einer_blau Alias B(7)

Strafe_blau Alias B(8)
Wazaari_blau Alias B(9)
Yuko_blau Alias B(10)
Koka_blau Alias B(11)

Strafe_weiss Alias B(12)
Wazaari_weiss Alias B(13)
Yuko_weiss Alias B(14)
Koka_weiss Alias B(15)


'***********************************************************************
'*     Zuordnung Bit zu Segment 
*
'* 
*
'*              2 A               BIT|SEGMENT 
*
'*                                ----------- 
*
'*           ---------             1 | b----> (LSB) 
*
'*          |         |            2 | a 
*
'*          |         |            3 | c 
*
'*      8 f |         | 1 b        4 | -----> frei 
*
'*          |         |            5 | g 
*
'*          |   5 g   |            6 | d 
*
'*           ---------             7 | e 
*
'*          |         |            8 | f----> (MSB) 
*
'*          |         | 
*
'*      7 e |         | 3 c 
*
'*          |         | 
*
'*          |         | 
*
'*           --------- 
*
'*              6 D 
*
'* 
*
'*          ____ 
*
'*         |      | 
*
'* DATA    |      | 
*
'* ________|      |__________________________ 
*
'*              ____ 
*
'*             |      | 
*
'* CLOCK       |      | 
*
'* ____________|      |______________________ 
*
'*                       ____ 
*
'*                      |      | 
*
'* STROBE               |      | 
*
'*______________________|      |_____________ 
*
'* 
*
'* 
*
'***********************************************************************

'Wenn: 1 MSB shifted out first when clock_out_pin goes high


'Segment zu BIT     fedg-cab
'                   ||||||||
'1=               &B00000101                                  '=1
'2=               &B01110011                                  '=2
'3=               &B00110111                                  '=3
'4=               &B10010101                                  '=4
'5=               &B10110110                                  '=5
'6=               &B11110110                                  '=6
'7=               &B00000111                                  '=7
'8=               &B11110111                                  '=8
'9=               &B10110111                                  '=9
'0=               &B11100111                                  '=0
'S=               &B10110110                                  '=S
'U=               &B11100101                                  '=U
'A=               &B11010111                                  '=A
'E=               &B11110010                                  '=E 
(Error)
'H=               &B11011101                                  '=H
'h=               &B11100100                                  '=h
'd=               &B01110101                                  '=d
'b=               &B11110000                                  '=b
'L=               &B11100000                                  '=E
'o=               &B01110010                                  '=o
'r=               &B11010010                                  '=F
'P=               &B11010011                                  '=P

  Segment_a Alias &B00000010                                '
  Segment_b Alias &B00000001                                '
  Segment_c Alias &B00000100                                '
  Segment_d Alias &B00100000                                '
  Segment_e Alias &B01000000                                '
  Segment_f Alias &B10000000                                '
  Segment_g Alias &B00010000                                '



Do

If Frame_complete = 1 Then
For Index = 1 To 15
A(index) = B(index)
Next I
Frame_complete = 0
End If

For Index = 1 To 15

   Ausgabe = A(index)
   Select Case Ausgabe
          Case Asc( "1") : Ausgabe = &B00000101             '=1
          Case Asc( "2") : Ausgabe = &B01110011             '=2
          Case Asc( "3") : Ausgabe = &B00110111             '=3
          Case Asc( "4") : Ausgabe = &B10010101             '=4
          Case Asc( "5") : Ausgabe = &B10110110             '=5
          Case Asc( "6") : Ausgabe = &B11110110             '=6
          Case Asc( "7") : Ausgabe = &B00000111             '=7
          Case Asc( "8") : Ausgabe = &B11110111             '=8
          Case Asc( "9") : Ausgabe = &B10110111             '=9
          Case Asc( "0") : Ausgabe = &B11100111             '=0
          Case Asc( "S") : Ausgabe = &B10110110             '=S
          Case Asc( "s") : Ausgabe = &B10110110             '=s
          Case Asc( "U") : Ausgabe = &B11100101             '=U
          Case Asc( "u") : Ausgabe = &B11100101             '=U
          Case Asc( "A") : Ausgabe = &B11010111             '=A
          Case Asc( "a") : Ausgabe = &B11010111             '=a
          Case Asc( "E") : Ausgabe = &B11010111             '=E
          Case Asc( "e") : Ausgabe = &B11010111             '=e
          Case Asc( "H") : Ausgabe = &B11011101             '=H
          Case Asc( "h") : Ausgabe = &B11100100             '=h
          Case Asc( "o") : Ausgabe = &B00101110             '=o
          Case Asc( "F") : Ausgabe = &B11000011             '=F
          Case Asc( "b") : Ausgabe = &B00111111             '=b
          Case Asc( "d") : Ausgabe = &B01110101             '=d
          Case Asc( "L") : Ausgabe = &B00000111             '=L
          Case Asc( "r") : Ausgabe = &B01010000             '=r
          Case Asc( "P") : Ausgabe = &B11010011             '=P

          'Case Asc( "(") : Ausgabe = &B01000111             '=[
          'Case Asc( ")") : Ausgabe = &B11100100             '=]
          'Case Asc( "-") : Ausgabe = &B00001000             '=-
          'Case Asc( "_") : Ausgabe = &B11010011             '=_
          'Case Asc( "=") : Ausgabe = &B00000100             '= =
          'Case Asc( "P") : Ausgabe = &B11010011             '=P
          'Case Asc( "P") : Ausgabe = &B11010011             '=P
          'Case Asc( "P") : Ausgabe = &B11010011             '=P
          Case 0 : Ausgabe = &B00000000                     'Leerzeichen
          Case 32 : Ausgabe = &B00000000
          Case Else Ausgabe = &B11110010                    '=E Error
   End Select

   Shiftout Data_out_pin , Clock_out_pin , Ausgabe , 1      ' [ , 8 , 1 
]
Next Index

Set Strobe_out_pin
Waitms 1
Reset Strobe_out_pin




 Loop
'*********************************************
'*                                           *
'*       Interrupt Service Routinen          *
'*                                           *
'*********************************************

Onrxd:

 If Udr = "+" Then
   Alarm_out_pin = 1
 End If

If Udr = "-" Then
   Alarm_out_pin = 0
End If


If Newstring = 1 Then
   B(n) = Udr
   'Print N
   'Print B(n)
   Incr N
    If N > 15 Then
       N = 1
       Frame_complete = 1
       Newstring = 0
    End If

End If





If Udr = "*" Then
   Newstring = 1
End If

Return

'(

Zeigean:
For Index = 1 To 15

   Ausgabe = B(index)
   Select Case Ausgabe
          Case Asc( "1") : Ausgabe = &B00000101             '=1
          Case Asc( "2") : Ausgabe = &B01110011             '=2
          Case Asc( "3") : Ausgabe = &B00110111             '=3
          Case Asc( "4") : Ausgabe = &B10010101             '=4
          Case Asc( "5") : Ausgabe = &B10110110             '=5
          Case Asc( "6") : Ausgabe = &B11110110             '=6
          Case Asc( "7") : Ausgabe = &B00000111             '=7
          Case Asc( "8") : Ausgabe = &B11110111             '=8
          Case Asc( "9") : Ausgabe = &B10110111             '=9
          Case Asc( "0") : Ausgabe = &B11100111             '=0
          Case Asc( "S") : Ausgabe = &B10110110             '=S
          Case Asc( "s") : Ausgabe = &B10110110             '=s
          Case Asc( "U") : Ausgabe = &B11100101             '=U
          Case Asc( "u") : Ausgabe = &B11100101             '=u
          Case Asc( "A") : Ausgabe = &B11010111             '=A
          Case Asc( "a") : Ausgabe = &B11010111             '=a
          Case Asc( "E") : Ausgabe = &B11010111             '=E
          Case Asc( "e") : Ausgabe = &B11010111             '=e
          Case Asc( "H") : Ausgabe = &B11011101             '=H
          Case Asc( "h") : Ausgabe = &B11100100             '=h
          Case Asc( "o") : Ausgabe = &B01110010             '=o
          Case Asc( "F") : Ausgabe = &B11010010             '=F
          Case Asc( "b") : Ausgabe = &B11110000             '=b
          Case Asc( "d") : Ausgabe = &B01110101             '=d
          Case Asc( "L") : Ausgabe = &B11100000             '=L
          Case Asc( "r") : Ausgabe = &B01010000             '=r
          Case Asc( "P") : Ausgabe = &B11010011             '=P
          Case 0 : Ausgabe = &B00000000                     'Leerzeichen
          Case 32 : Ausgabe = &B00000000
          Case Else Ausgabe = &B11110010                    '=E Error
   End Select

   Shiftout Data_out_pin , Clock_out_pin , Ausgabe , 1      ' [ , 8 , 1 
]
Next Index

Set Strobe_out_pin

Reset Strobe_out_pin

Return

')


End

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Och nö, Code inline, nicht einmal mit pre-Markierungen versehen,
geschweige denn als Attachment...  Ganz davon abgesehen, ob der
OP auch Bascom hat?

von Michelle K. (Firma: electronica@tdnet) (michellekonzack) Benutzerseite


Lesenswert?

Chris schrieb:
> Tja, eine Angabe hierzu scheint nicht im Manual zu stehen. Kann man ja
> auch mal anfragen. Zur Not muss man eben je eine Anzeige von beiden
> Bestellen und schauen wie hell sie jeweils sind.
>
> Bedenke, dass bei einer Lieferung aus China Einfuhrumsatzsteuer beim
> deutschen Zoll fällig wird (auch auf die Versandkosten).

Das ist absoluter Quark...

Du mußt lediglich dem Verkäufer in China mitteilen, das er die Ware als 
MusterExemplare sendet...  Mit DHL/UPS absolut kein Problem und ich 
bekomme pro Woche 2-4 Sendungen aus China...

Sollte das Paket wirklich mal am Zollammt hängen (mir mal ganz am Anfang 
passiert) mußte lediglich beim Zollbeamten deklarieren Das Du ne Firma 
bis die ware zum importieren sucht und DERZEIT nur Musterexemplare 
bestellt (also kein eigentlicher Import) welche AUSSCHMLIESSLICH 
Firmenintern zund NICHT ZUM VERKAUF bestimmt sind.

Außerdem funktioniert das auch als Student, indem Du deklarierst, das 
entsprechende Produkte in DE/EU nicht verfügbar sind und Du für ne 
Studien-Arbeit das Material benötigst.

Ne Freundin von mir an der FH-Offenburg hatte 1.000 HBLED's so 
eingekauft...

von Michelle K. (Firma: electronica@tdnet) (michellekonzack) Benutzerseite


Lesenswert?

Hallo Dietmar,

welche VERSION der GPL?  2 oder 3?

Grüße
Michelle

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Michelle Konzack schrieb:

> welche VERSION der GPL?  2 oder 3?

Free Software Foundation; either version 3 of the License, or (at your
option) any later version.

von D. S. (jasmin)


Lesenswert?

@ Oliver,


hallo, kommst Du klar mit dem Code und dem HW-Design ?
Die Ansteuerung über ein VB Programm ist damit trivial.

Dietmar

von Oliver M. (gonzox)


Lesenswert?

@dietmar :
Danke für das Codebeispiel, ich nutze zwar kein Bascom aber ich denke 
ich sollte es umsetzen können. (hoffe ich :) )

MfG,
Oliver.

von gonZoX (Gast)


Lesenswert?

@dietmar :
Danke noch mal für dein Code-Beispiel, aber anscheinend bin ich noch 
nicht fit genug, dieses nach C zu portieren, wenn also jemand Lust hätte 
mir zu helfen ... :)

MfG,
Oliver.

von Oliver M. (gonzox)


Lesenswert?

@Dietmar :
So,ich denke von der Programmierung habe ich das inzwischen umgesetzt 
(natürlich nur durch Mithilfe hier im Forum), aber wie es aussieht sind 
die von mir angedacchten 7-Segmente von SureElectronic nicht wirklich 
tageslichttauglich (nach Aussage eines Users dort im Forum).
Du hattest einmal in einem anderen Beitrag hier Leerplatinen für ca. 
25cm 7-Segmente angeboten,besteht diese Möglichkeit noch ???
Wäre nett wenn du dich meldest (code51"at"mr-moto"dot"net)
Danke im Voraus,
Oliver.
(Ich hatte auch schon überlegt eine Anzeige zum Testen zu ordern,aber 
25$ Versandkosten für einen Versuch scheue ich dann doch :) )

von MWS (Gast)


Lesenswert?

>> aber wie es aussieht sind die von mir angedacchten 7-Segmente von
>> SureElectronic nicht wirklich tageslichttauglich

Das denke ich auch, hab' 6 Stück hier, bei direkter Sonneneinstrahlung 
selbst mit Filterscheibe wird m.E. nix mehr zu lesen sein.

Ansonsten sind die ideal, sehr sauber verarbeitet und alles drauf zur 
einfachen Ansteuerung und Stromversorgung.

Für Outdoor aber nur bedingt geeignet.

von Oliver M. (gonzox)


Lesenswert?

@MWS :
Danke für die Info. Kannst du eine Angabe machen (ca.) bis wieviel Meter 
sie bei 'normalen' Tageslicht ohne Sonneneinstrahlung zu lesen sind ?

Danke,Oliver.

von MWS (Gast)


Angehängte Dateien:

Lesenswert?

Oliver,

hab' Dir gerad' mal ein Bild gemacht, also bei einsetzender Dämmerung, 
25m Entfernung. Weiter hab' ich's noch nicht getestet, denn bei mir 
wird's etwas für Innen, und dafür ist die Leuchtstärke sicher 
ausreichend.

Katze leuchtet nur, weil sich der Blitz mit eingeschaltet hat, natürlich 
ohne Wirkung auf's sonstige Bild bei der Helligkeit und Entfernung.

von D. S. (jasmin)


Lesenswert?

Hallo,


ich habe von den Platinen noch welche da.
Auch von den Allegro IC's.
darauf werden 5 mm superhelle LEDS verlötet (ca. 250 Stück).
Das Display ist "heller" als die Sonne ;-).

Eine Anzeige steht direkt in einer großen Sporthalle vor der riesiegen 
Fensterfront.

Die Zuschauer beschweren sich über Blendprobleme, habe danach die 
Anzeige dimmbar gemacht (über die Versorgugsspannung...)

von gonZoX (Gast)


Lesenswert?

@Dietmar :
Dann würde ich mich doch über eine Mail von dir bzgl. Zahlungs- und 
Lieferbedingungen freuen :)

MfG,
Oliver.

von gonZoX (Gast)


Lesenswert?

So,der Anfänger nochmal in seiner Ahnungslosigkeit ....

Als ich mir das Projekt so am Anfang durchdacht habe, wollte ich zur 
Stromversorgung der Displays ein Universal Notbooknetzteil verwenden, 
einfach und billig eben dachte ich.

Nun sieht es ja aber so aus, das ich bei 13 Displays mit Steurung doch 
eine ganze Menge Strom benötige, ca. 8,5 A.

Wie versorge ich am kostengünstigsten die Displays mit ca. 36V und max. 
8,5A ?

Bin für jede (anfängergerechte) Hilfe/Hinweise dankbar :)

MfG,
Oliver

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.