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
Google? "avr multi 7 segment" Direkt erster Link: https://fritzler-avr.de/HP/tipps/multi.php oder weiter unten noch das: https://extremeelectronics.co.in/avr-tutorials/multiplexed-seven-segment-displays-part-ii/
:
Bearbeitet durch User
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
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.
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.
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.
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!
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.