PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Welche Display-Technik (LCD, LED oder 7-Segment?)



Björn
25.12.2009, 22:03
Hallo!

Ich bin auf der Suche nach einem Display, um 4 Zahlen darzustellen, welche mindestens 5cm hoch sein sollen.
Dabei soll die Ansteuerung mittels AVR (Bascom) möglichst unkompliziert sein (wie bei LCDs) und das Display nicht all zu teuer.
Am liebesten wäre mir wohl ein LED-Matrix-Modul, welches man einfach über den AVR ansprechen kann - gibt es sowas?

Vielen Dank!

Grüße, Björn

TomEdl
25.12.2009, 22:08
Hallo!

Was verstehst du unter "einfach" ansprechen. Am einfachsten anzusprechen sind in Bascom meiner Ansicht nach Text-Lcd's. Alles andere ist komplexer, wenn auch lösbar.

LED-Matrix-Module sind meiner Meinung nach am kompliziertesten anzusprechen, ich würde daher in deinem Fall eher zu Sieben-Segment-Anzeigen raten. Diese sind recht einfach zu handhaben, auch im Multiplex-Betrieb.

Grüße
Thomas
:)

Björn
25.12.2009, 22:18
Hallo!

Was verstehst du unter "einfach" ansprechen. Am einfachsten anzusprechen sind in Bascom meiner Ansicht nach Text-Lcd's. Alles andere ist komplexer, wenn auch lösbar.

LED-Matrix-Module sind meiner Meinung nach am kompliziertesten anzusprechen, ich würde daher in deinem Fall eher zu Sieben-Segment-Anzeigen raten. Diese sind recht einfach zu handhaben, auch im Multiplex-Betrieb.

Grüße
Thomas
:)

Genau, die Text-LCDs meinte ich auch mit "einfach" :D - aber leider gibt's die ja nicht in der Größe oder?
Ich hatte die Hoffnung, dass es evtl. schon etwas "fertiges" gibt, wo schon entsprechende Treiber am Display sind, eben wie bei den Text-LCDs ;)

Grüße, Björn

TomEdl
25.12.2009, 22:21
Naja, es gäbe Grafik-LCDs in dieser Größe. Auf diesen lassen sich so große Zahlen darstellen. Aber ob es sinnvoll ist, ein Grafik-LCD für eine solche Aufgabe zu missbrauchen...naja....

Ich würd große Sieben-Segment-Anzeigen nehmen und diese Multiplexen. Hört sich zwar schwer an, ist es aber eigentlich nicht.

Grüße
Thomas

Vitis
26.12.2009, 11:46
das kommt eher drauf an wo das Display verwendet werden soll.
LCD sind wegen Kontrast auf "größere" Entfernungen eher
schlecht ablesbar, da bietet sich LED bzw. 7-Segment eher an.
Wenn der Nutzer eh mit der Nase zum Gerät muss ist LCD
geschickter.
Auch die Umgebungshelligkeit geht noch stark mit ein.
Bei Tageslicht im freien sind LCD auch wieder im Nachteil.
Beschreib mal Deine Anwendung, dann kann man konkreter helfen.

Björn
26.12.2009, 13:58
Das Display kommt drinnen (Sporthalle) zum Einsatz und muss aus 5m Entfernung lesbar sein. Es wird ein Punkte-Zähler.

Grüße, Björn

BurningWave
26.12.2009, 14:04
Soviel ich weiß gibt es für 7-Segment-Anzeigen auch Treiber-ICs. Wenn du so einen verwendest, dann ist die Ansteuerung der Anzeigen viel einfacher, da du dem IC nur sagen musst, was für Ziffern angezeigt werden sollen und er sich um den Rest kümmert. Ich weiß gerade leider nur nicht, wie solche ICs heißen (Bezeichnung).

mfg

TomEdl
26.12.2009, 17:30
Soviel ich weiß gibt es für 7-Segment-Anzeigen auch Treiber-ICs. Wenn du so einen verwendest, dann ist die Ansteuerung der Anzeigen viel einfacher, da du dem IC nur sagen musst, was für Ziffern angezeigt werden sollen und er sich um den Rest kümmert. Ich weiß gerade leider nur nicht, wie solche ICs heißen (Bezeichnung).

mfg
Das sind sogenannte "BCD zu Siebensegment"-Decoder, da gibt es viele verschiedene. Zum Beispiel: 74SN47

Grüße
Thomas

wkrug
26.12.2009, 19:37
Bei der Größe würde ich auch Siebensegment LED Anzeigen verwenden.

Guck mal bei Reichelt unter SA 40-19 RT...

Die Ansteuerung kannst Du mit dem Microcontroller über entsprechende Treiber Bausteine machen.

Ich hab mal eine DCF 77 Uhr mit 10cm hohen Ziffern gemacht.

Ein ATMEGA 16 steuert dabei über einen ULN2803 die Segmente der Displays an.

Ein N- und nachgeschalteter P- Kanal Fet steuern nacheinander die Anoden der Displays an.

Die Multiplexfunktion läuft bei mir im Interrupt des Timers 0.

Also einfach die Werte der einzelnen Stellen in einem Array ablegen.

Die Interruptfunktion liest dann nacheinander diese Werte aus.
Die einzelnen Werte werden dann über eine Look Up Tabelle für die Aktivierung der entsprechenden Segmente umgewandelt.

Anbei der Code in C für den Timer0 Overflow Interrupt.....

// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
#asm("SEI"); /* Interrupts für Stoppuhr freigeben !*/
switch (uc_segmentcounter)
{
case 0:
PORTC=0;
PORTA.5=0;
delay_us(20);
PORTA.0=1;
PORTC=uc_segment[uc_segmentcounter];
if(PINB.2>0)
{
PORTC.7=1;
};
break;
case 1:
PORTC=0;
PORTA.0=0;
delay_us(20);
PORTA.1=1;
PORTC=uc_segment[uc_segmentcounter];
break;
case 2:
PORTC=0;
PORTA.1=0;
delay_us(20);
PORTA.2=1;
PORTC=uc_segment[uc_segmentcounter];
break;
case 3:
PORTC=0;
PORTA.2=0;
delay_us(20);
PORTA.3=1;
PORTC=uc_segment[uc_segmentcounter];
break;
case 4:
PORTC=0;
PORTA.3=0;
delay_us(20);
PORTA.4=1;
PORTC=uc_segment[uc_segmentcounter];
break;
case 5:
PORTC=0;
PORTA.4=0;
delay_us(20);
PORTA.5=1;
PORTC=uc_segment[uc_segmentcounter];
break;

};
uc_segmentcounter++;
if(uc_segmentcounter>5){uc_segmentcounter=0;};
}
und die dazugehörige Look Up Tabelle....

// Zeichentabelle für 7 Segment Display
//0,1,2,3,4,5,6,7,8,9,A,b,c,d,E,F,h,J,L,n,o,P,r,u,[]
volatile unsigned char uc_chartable[25]={
0b00111111,/*0*/
0b00001100,
0b01011011,
0b01011110,
0b01101100,
0b01110110,
0b01110111,
0b00011100,
0b01111111,
0b01111110,/*9*/
0b01111101,/*A*/
0b01100111,/*b*/
0b01000011,/*c*/
0b01001111,/*d*/
0b01110011,/*E*/
0b01110001,/*F*/
0b01101101,/*H*/
0b00011110,/*J*/
0b00100011,/*L*/
0b01000101,/*n*/
0b01000111,/*o*/
0b01111001,/*p*/
0b01000001,/*r*/
0b00000111,/*u*/
0b00000000};/*Leerzeichen*/

Ist zwar in C, da aber alles sehr Hardwarenah passiert sollte das auch für Bascom umsetzbar sein.

TomEdl
26.12.2009, 19:40
Alternativ hätte ich einen Code für Multiplexen in Bascom, mit dem ich meine Digitaluhr ansteuere. Es werden hierbei sieben Stück Sieben-Segment-Anzeigen gesteuert.

Grüße
Thomas

theborg
27.12.2009, 09:34
Hm, multiplexen muss er ja net umbedinkt ich nehme dafür immer schiberegister z.b. die CD4096 die kommen auch mit der hohen seg. spannung zurecht die gehen bis 15V

wkrug
27.12.2009, 09:47
Hm, multiplexen muss er ja net umbedinkt ich nehme dafür immer schiberegister z.b. die CD4096
Auch ne sehr gute Idee, spart auch noch Controller Pins und flimmert nicht.

theborg
27.12.2009, 11:46
jo naja je nach ob du OE nutzt ich hab bei meiner Geschichte oe nicht genutzt und den flimmert es des ist recht blöd aber kannst ja mal schauen oder man schibt halt so schnell das es nicht flimmert hab momentan nut 4mhz µC takt da ist aber noch einiges drinne.

http://www.grautier.com/grautier/index.php?/archives/65-Sieben-Segment-Uhr.html

wkrug
27.12.2009, 11:57
jo naja je nach ob du OE nutzt ich hab bei meiner Geschichte oe nicht genutzt
Also wenn ich es schon mit einzelnen Chips pro Segment mache würde ich die Anzeige auf jeden Fall per Latch betreiben, sonst hat die Geschichte ausser der Pin Einsparung des Controllers uberhaupt keine Vorteile.

theborg
27.12.2009, 12:13
naja du kanst eigentlich alles komplett Durchschleifen man würde sogar mit 3 Datenleitungen auskommen.

TomEdl
27.12.2009, 20:16
Wieso soll eine gemultipexte Anzeige flimmern? Dein Auge erkennt ab 25 Hz nur noch flüssige Bilder. Ich habe bei meiner Uhr eine Multiplexfrequenz von 400Hz, da sieht man gar nix flimmern.

Der CD4094 kann bei 15V Betriebsspannung lediglich 3mA liefern. Es müssen also noch Treiberstufen eingeplant werden.

Für die Multiplexvariante benötigst du lediglich einen ULN2003 und vier Transistoren.

Grüße
Thomas

wkrug
27.12.2009, 21:44
Für die Multiplexvariante benötigst du lediglich einen ULN2003 und vier Transistoren.
Meine Rede...
Allerdings haben die "großen" LED Siebensegment Anzeigen eine höhere Schwellenspannung als 5V.
Somit muss man da mit den Controller einen NPN Transistor ( oder N-Fet ) gefolgt von einen PNP Transistor ( oder P-Fet ) nachschalten.

Also wird es ein ULN2803 ( den Dezimalpunkt nicht vergessen ! ) und 8 Transistoren.
Alternativ zu den Transistoren wäre eventuell auch ein UDN 2981 geeignet.
Mit diesem Baustein hab ich allerdings keine Erfahrung.

TomEdl
27.12.2009, 21:49
Für die Multiplexvariante benötigst du lediglich einen ULN2003 und vier Transistoren.
Meine Rede...
Allerdings haben die "großen" LED Siebensegment Anzeigen eine höhere Schwellenspannung als 5V.
Somit muss man da mit den Controller einen NPN Transistor ( oder N-Fet ) gefolgt von einen PNP Transistor ( oder P-Fet ) nachschalten.

Also wird es ein ULN2803 ( den Dezimalpunkt nicht vergessen ! ) und 8 Transistoren.
Alternativ zu den Transistoren wäre eventuell auch ein UDN 2981 geeignet.
Mit diesem Baustein hab ich allerdings keine Erfahrung.
Hoppla, diese Tatsache hab ich ganz übersehen. Ich habe bei meiner Uhr die Dezimalpunkte nämlich strombegrenzt fest auf 5V gelegt, da ich sie nicht wirklich benötige.

Grüße
Thomas

Besserwessi
27.12.2009, 22:58
Die großen Anzeigen brauchen zwar oft mehr Spannung (z.B. 7 V), aber auch da reicht ein Spannungshub von 5 V aus. Bei nur 4 Segmenten ist zu überlegen ob man multiplexen muß. Wenn man mit 10 mA je Segment auskommt, könnte man z.B. noch mit je einem 74HC595 pro Stelle auskommen.

wkrug
28.12.2009, 09:58
Hoppla, diese Tatsache hab ich ganz übersehen. Ich habe bei meiner Uhr die Dezimalpunkte nämlich strombegrenzt fest auf 5V gelegt, da ich sie nicht wirklich benötige.
Das kannst Du ja auch so lassen.
Ich meine ja den Dezimalpunkt der an den allermeisten 7 Segment Anzeigen mit drauf ist, es sei denn Du brauchst ihn nicht ?!


Die großen Anzeigen brauchen zwar oft mehr Spannung (z.B. 7 V), aber auch da reicht ein Spannungshub von 5 V aus
Ich weiß nicht, mir wär da das Risiko zu hoch, das es nicht funktioniert und ich das ganze Layout nochmal machen muß.

10mA wären bei meinen großen 100mm Anzeigen definitiv zu wenig.
Die Leute wollen ja auch bei Sonnenlicht was sehen.

Ich hab als Netzteil ein kleines einstellbares Schaltnetzteil genommen, da kann man dann über die eingestellte Spannung die Helligkeit des Displays ändern.

TomEdl
28.12.2009, 16:55
Die großen Anzeigen brauchen zwar oft mehr Spannung (z.B. 7 V), aber auch da reicht ein Spannungshub von 5 V aus. Bei nur 4 Segmenten ist zu überlegen ob man multiplexen muß. Wenn man mit 10 mA je Segment auskommt, könnte man z.B. noch mit je einem 74HC595 pro Stelle auskommen.
Mit 10mA kommt man niemals aus, wenn - wie schon gesagt wurde - die Leute auch am Tag was sehen wollen. Der 74HC595 packt lediglich 35mA Output Current. Außerdem verstehe ich nicht, was die Leute gegen das Multiplexen haben. Mit der 74HC595-Geschichte ist die Ansteuerung komplizierter, wohingegen das Programm beim Multiplexen sehr einfach gehalten wird.

Grüße
Thomas

PICVB
29.12.2009, 12:54
Ich würde das ganze mit einem 4543 machen und einen ULN 2003 als Treiber.
Da fällt das Multiplexen weg.
Ich hatte nämlich bei großen 100mm Anzeigen das Problem, das diese beim Multiplexen zu dunkel wurden.

Grüße Carsten

TomEdl
30.12.2009, 18:12
Ich würde das ganze mit einem 4543 machen und einen ULN 2003 als Treiber.
Da fällt das Multiplexen weg.
Ich hatte nämlich bei großen 100mm Anzeigen das Problem, das diese beim Multiplexen zu dunkel wurden.

Grüße Carsten
Dann gib ihnen mehr Pulsstrom. Bei mir zieht ein Segment auch während der Einschaltzeit etwa 0,5A.

Grüße
Thomas

Besserwessi
30.12.2009, 18:56
Das hängt von den Displays ab. Ich habe so einen Anzeige mit 57 mm Elementen aufgebaut, und die ist mit 8 mA (konstant) schon eher zu hell.

Es stimmt aber, mit Multiplexing kann man relativ einfach etwas Reserve einplanen (stärkere Treiber) um es ggf. heller zu machen. Und so aufwendig ist das auch nicht.

Die hc595 sind auch nicht so komliziert: Man hat pro Stelle ein IC und 7-8 Widerstände, als SMD geht das noch, mit bedrahteten Widerständen wird es umständlich. Nach dem Datenblatt ist das wesentliche Limit 75 mA an Gesamtstrom oder halt rund 10 mA je Segment und 5mA für den Punkt.

Björn
28.01.2010, 22:04
Hallo!

Da ich in der letzen Zeit wenig freie Zeit hatte, geht es jetzt erst weiter ;)
Ich habe mich entschieden es mit Multiplexen zu versuchen. Dazu möchte ich diese Anzeigen verwenden: Link (http://www.reichelt.de/?;ACTION=3;LA=2;GROUP=A51;GROUPID=3002;ARTICLE=315 78;START=0;SORT=artnr;OFFSET=100;)

Kann ich die Schaltung wie > HIER < (http://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige#Mehrere_7-Segment_Anzeigen_.28Multiplexen.29) aufbauen?
Wie kommt dort eigentlich die Dimensionierung der Vorwiderstände zustande. Als "normale" LED-Vorwiderstände kommen sie mir etwas groß vor - oder ist die Anzeige trotzdem hell genug?

Viele Grüße, Björn

Besserwessi
28.01.2010, 23:25
Bei den Widerständen steht ja schon ein Hinweis mit der Helligkeit. Mit 100 Ohm und roten LEDs hat man etwa 2,5 V am Widerstand oder 25 mA. Viel mehr schaft der µC Ausgang ohnehin nicht.

Wenn man 4 Stellen Treiben will werden aus 25 mA Pulsstrom rund 6 mA im Mittel. Das sollte schon reichen ist aber auch nicht so viel. Für viel Umgebungslicht wäre dann ein Rotfilter schon Sinnvoll. Die Displays haben ja auch einges an Tolleranzen - in Zweifelsfall lieber vorher mit den entgültigen Dispalys Probieren. Reduzieren kann man die Helligkeit ja immer noch per Software. Nur heller geht dann nicht so einfach.

Die Schaltung kann man nicht so wie im Link Aufbauen. Die großen Anzeigen brauchen ca. 8 V für die Segmente. Da wird man mindestens andere Treiber für die Anoden brauchen und ein Versorgung mit 8-9 V.
Um sicher zu gehen besser extra Treiber für beide Seiten.

Die im Link angebene Type ist auch mit gemeinsamer Kathode - die Schaltung braucht gemeinsame Anode.

Björn
29.01.2010, 18:41
Bei den Widerständen steht ja schon ein Hinweis mit der Helligkeit. Mit 100 Ohm und roten LEDs hat man etwa 2,5 V am Widerstand oder 25 mA. Viel mehr schaft der µC Ausgang ohnehin nicht.

Wenn man 4 Stellen Treiben will werden aus 25 mA Pulsstrom rund 6 mA im Mittel. Das sollte schon reichen ist aber auch nicht so viel. Für viel Umgebungslicht wäre dann ein Rotfilter schon Sinnvoll. Die Displays haben ja auch einges an Tolleranzen - in Zweifelsfall lieber vorher mit den entgültigen Dispalys Probieren. Reduzieren kann man die Helligkeit ja immer noch per Software. Nur heller geht dann nicht so einfach.

Die Schaltung kann man nicht so wie im Link Aufbauen. Die großen Anzeigen brauchen ca. 8 V für die Segmente. Da wird man mindestens andere Treiber für die Anoden brauchen und ein Versorgung mit 8-9 V.
Um sicher zu gehen besser extra Treiber für beide Seiten.

Die im Link angebene Type ist auch mit gemeinsamer Kathode - die Schaltung braucht gemeinsame Anode.
Oh ich habe nicht bedacht, dass bei den großen 4 LEDs im Schaltbild sind und ich die im Datenblatt angegebene Spannung vervierfachen muss.
Hmm... aber die 20mm Anzeigen (nur eine LED pro Segment) mit gemeinsamer Anode könnte ich wie in der Schaltung aufbauen.
Schade, dass es nichts dazwischen gibt, denn 20mm ist wohl etwas klein.

Besserwessi
29.01.2010, 19:23
Es gibt auch Anzeigen mit 38 mm (z.B. Kingbright SA15-11...). Die haben oft 2 LEDs hintereinander. Die roten lassen sich damit gerade noch mit 5 V treiben. Mankreigt die nur halt nicht überall.

Wenn man ohnehin für mehr Strom Treiber braucht, ist auch nicht mehr so schlimm auf mehr als 5 V zu gehen. Wenn man sich traut, kann man auch nur auf der Anodenseite extra Treiber (z.B. mit Transistoren) für eine höhere Spannung von z.B. 8 V nehmen und für die Segmente weiter den AVR. Unter etwa 5 V fließt bei den Anzeigen prakitsch keine Strom und leuchten tuts auch nicht. Man muß nur sicherstellen, das nicht die 8 V da sind, aber keine 5 V - normale machen das aber schon die Treiber.