Mehrstellige 7 Segment Anzeige mit MS7

OP #7811940
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

#7811953
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.

#7812261
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.

#7812350
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.

#7812483
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.

#7812560
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.