Forum: Mikrocontroller und Digitale Elektronik Mehrstellige 7 Segment Anzeige mit MS7


von Mirko (mirkomikro)


Lesenswert?

Hallo,

ich probiere mich gerade an einer mehrstelligen 7-Segment Anzeige. Das 
Ansteuern einer einzigen ist an sich möglich und funktioniert soweit 
auch.
Da ich kein Schieberegister nutze, wollte ich es einfach über den 
Controller selbst realisieren. Ich nutze Microchip Studio 7 und kann 
leider mit dem auf mikrocontroller.net geführten Tutorial nichts 
anfangen, da es in ASM ist.
Gibt es hierzu vielleicht eine gute Quelle zum Nachschlagen oder 
eventuell eine Library die ich einfach einbinden kann?

Grüße

von Adam P. (adamap)


Lesenswert?


: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Mirko schrieb:
> Da ich kein Schieberegister nutze, wollte ich es einfach über den
> Controller selbst realisieren.

Um irgendeine Treiberschaltung wirst Du aber nicht umhin kommen.
Es gibt fertige Schieberegister mit Stromquellenausgang, z.B.:
https://www.digikey.de/de/products/detail/microchip-technology/MM5450YN/771810

Es gibt auch Multiplexer mit Stromquellenausgang, z.B. MAX7219.

Oder ganz klassisch multiplexen mit Timerinterrupt und 
Treibertransistoren.

Such Dir was aus.
Erst wenn die Hardware feststeht, kannst Du mit dem Programmieren 
anfangen.

: Bearbeitet durch User
von Rüdiger B. (rbruns)


Lesenswert?

Gibt es Fix und Fertig:
https://www.ebay.de/itm/172166503893

von Michael B. (laberkopp)


Lesenswert?

Mirko schrieb:
> Gibt es hierzu vielleicht eine gute Quelle zum Nachschlagen oder
> eventuell eine Library die ich einfach einbinden kann?

Da es viele verschiedene Möglichkeiten gibt, mehrere 7-Segment Anzeigen 
an einen uC anzuschliessen, und viele verschiedene uC, wird nur ein 
winzigkleiner Bruchteil aller Vorschläge bei dir passen.

Da du Microchip Studio 7 verwendest könntest du Assembler, bare C oder 
Arduino-style C++ verwenden für AVR und SAM uC. Assembler scheinst du 
nicht zu verstehen.

Da übliche uC nicht genug Anschlüsse haben um z.B. 6 7-Segment Anzeigen 
statisch anzusteuern und du keine Schieberegister als Porterweiterung 
nutzen mochtest, bleibt eigentlich nur Multiplexing als Ansteuermethode.

Da ein PortPin maximal 20mA liefert und Miltiplexing das auf alle 
Stellen verteilt, bei 4 also 5mA, bleibt die Frage wie viel Strom deine 
Displays brauchen um hell genug zu werden und ob du eventuell den Strom 
verstärken musst. Extra Transistoren sind ggf. mehr Aufwand als extra 
Schieberegister.

Der übliche Multiplex-Code nutzt einen Timer der z.B. 1000 Interrupt pro 
Sekunde auslöst, legt alle Segmente auf ein Port und nutzt Leitungen 
eines anderen Ports um die jeweils anzuzeigende Stelle zu selektieren.

Generischer code ist einfach:
1
#define STELLENANZAHL 4
2
char [STELLENANZAHL];
3
void timerinterrupt(void)
4
{
5
    PORTD=0; alle aus
6
    PORTB=segmente[stelle];
7
    PORTD=1<<stelle;
8
    stelle++;
9
    if(stelle>=STELLENANZAHL) stelle=0;
10
}
mehr ist nicht nötig.

von Rainer W. (rawi)


Lesenswert?

Mirko schrieb:
> Ich nutze Microchip Studio 7 und kann
> leider mit dem auf mikrocontroller.net geführten Tutorial nichts
> anfangen, da es in ASM ist.

Du könntest es lernen.

von Ralph S. (jjflash)


Lesenswert?

Peter D. schrieb:
> Es gibt auch Multiplexer mit Stromquellenausgang, z.B. MAX7219.

... oder TM1637

von Harald K. (kirnbichler)


Lesenswert?

Michael B. schrieb:
> Da ein PortPin maximal 20mA liefert und Miltiplexing das auf alle
> Stellen verteilt, bei 4 also 5mA, bleibt die Frage wie viel Strom deine
> Displays brauchen um hell genug zu werden

Wenn kein spezielles Low-Efficiency-Display verwendet wird, sollten auch 
5 mA für eine LED für eine Raumbeleuchtung ausreichen.

Ich verstehe nach wie vor nicht, warum hier Leute gerne LEDs immer mit 
dem zulässigen Maximalstrom betreiben wollen, wenn es nur um 
Signalisierung etc. geht.

Das ist nur dann relevant, wenn man entweder Geräte für Außenanwendungen 
in praller Sonne oder eben Raumbeleuchtung baut.

von Teo D. (teoderix)


Lesenswert?

Harald K. schrieb:
> Ich verstehe nach wie vor nicht, warum hier Leute gerne LEDs immer mit
> dem zulässigen Maximalstrom betreiben wollen, wenn es nur um
> Signalisierung etc. geht.

Weil hier gemultiplext wird!

von Michael B. (laberkopp)


Lesenswert?

Harald K. schrieb:
> Wenn kein spezielles Low-Efficiency-Display verwendet wird, sollten auch
> 5 mA für eine LED für eine Raumbeleuchtung ausreichen.
> Ich verstehe nach wie vor nicht, warum hier Leute gerne LEDs immer mit
> dem zulässigen Maximalstrom betreiben wollen, wenn es nur um
> Signalisierung etc. geht.

Weil die Leute die Erfahrung haben, dass auch moderne superhell 
beworbene, aber nicht speziell auf Effizienz ausgesuchte LED und 
7-Segment nicht ausreichend hell sind.

Beitrag "Re: Zeitschalter mit AVR (ATtiny84A) zur Diskussion"

Die Helligkeitseinstellung hätte ich mir sparen können, auch im dunklen 
Keller hinter einem grünen Plexiglas steht die immer auf VOLL. Immerhin 
sind die LM5624-11 doppelt so hell wie eine DDR VQE23E .


Klar, passiert dir nicht, wenn du superhelle Displays kaufst sind die 
blendend hell auch ohne Strom. Nur hast du noch nie irgendwas gekauft 
oder gebaut wir man an deinen fehlenden Bastelbildern in diesem Forum 
sieht.

: Bearbeitet durch User
von H. H. (hhinz)


Lesenswert?

Michael B. schrieb:
> Nur hast du noch nie irgendwas gekauft
> oder gebaut wir man an deinen fehlenden Bastelbildern in diesem Forum
> sieht.

Nicht jeder ist Exhibitionist.

von Gerald B. (gerald_b)


Lesenswert?

Mirko schrieb:
> ich probiere mich gerade an einer mehrstelligen 7-Segment Anzeige. Das
> Ansteuern einer einzigen ist an sich möglich und funktioniert soweit
> auch.

Ah, ja DIE!
Gibt ja nur das eine Modell.

Magst du uns nicht den Typ nennen und so Feinheiten, ob gemeinsame Anode 
o. Kathode, verschaltet für Multiplex, wieviele LEDs pro Segment verbaut 
sind?
Dann kann man wesentlich gezielter Tipps geben.

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.