Salve Da die Anzeige im Dunkeln von weitem gut erkennbar sein soll, habe ich an 7-Segmentanzeigen gedacht. Gibt es eine elegantere Möglichkeit die Anzeigen anzusteuern als über 4x 8Bit-DeMux(74LS138)? Da würde ich da 8 Ausgänge benötigen. 4 für Enable 1 für Daten 3 für die Steuerleitungen Klar, ich könnte 2x16 Bit DeMux verwenden, es würde mich aber interessieren ob es noch eine andere, elegantere Möglichkeit giebt, an die ich noch nicht gedacht habe. mfg Sepp
Hallo, ich habe gerade eine 2x 7-Segment-Anzeige(7SA) so realisiert: - 4 Ausgänge für den BCD Code - die BCD-Zahl(en) direkt auf den BCD-zu-7segment-Decoder - über Steuerleitungen & Transistor die 7SA eingeschaltet - je nachdem, welche 7SA gerade aktiv ist, den entsprechenden BCD angelegt - zu beachten wäre, dass die Helligkeit entsprechend des Tastverhältnisses abnimmt. Allerdings haben LEDs ja auch eine gute Impulsbelastbarkeit. Also evtl. weniger Vorwiderstand nehmen. - bei vier 7SA bräuchtest du also 4 Leitungen für BCD-Code und 2 Leitungen zur Adressierung der 7SA - evtl gibts ja auch die Möglichkeit den BCD zu serialisieren (ext. Schieberegister) (braucht aber immernoch 2 leitungen für data+clock; könnte man evtl high/low unterscheidung machen wie beim DCF77-Signal)
Der 74LS138 ist total ungeeignet. Nimm einen Timerinterrupt, der die 4 Digits nacheinander multiplext. Anbei die Schaltung. Peter
Mein Senf: 7 Segment X 8 für den ISP - Port Unter: Attaching an LED display http://elm-chan.org/docs/avr/avrisp.html http://elm-chan.org/docs/avr/ispled1.png
Hallo, IMHO muesste sich ein SAA 1064 fuer sowas bestens eignen. Ansteuerung ueber I2C Bus. Gruss
Salve, den Spaß mit dem Zeitmultiplex würde ich mir sparen. Da muß ich immer an die Kaffeeautomaten bei uns an der Uni denken. Wie kann man ein Display nur so langsam multiplexen... da fehlt eindeutig das Epilepsie-Warnschild. ;) 7-Segmentanzeigen (und auch sonst alles unidirektionale, langsame, portfressende) betreibe ich persönlich gern über 74HC595. Ist simpel über SPI angesteuert, und der µC muß sich nur bei Änderungen drum kümmern. Mark
naja - ein Negativ-Beispiel kann ja nicht gleich eine Technik unbrauchbar machen, die millionenfach bestens funktioniert. Multiplex ist eine schöne port/platz/strom/layoutsparende Sache, die, richtig gemacht, nur Vorteile hat.
Wenn man den Mux in Software macht, fielen mir zumindest die paar dauerhaft benötigten Ressourcen als "Nachteil" ein. Ein 595 ist zeitunkritisch bei Bedarf bedienbar. Ansonsten hast Du natürlich Recht... wenn man es, wie Du schon sagst, richtig macht. :) Ich wollte mit dem Beispiel auch zeigen, daß einige Probleme, die hier oft von Hobbyisten besprochen werden, scheinbar selbst in kommerziellen Produkten nicht ganz bis zu Ende gedacht worden sind. Aber diesen Effekt kennen wir ja spätestens seit Open Source. ;) Mark
Mahzeit Danke für eure Tipps. Ich werde gleich mal die Ausschlatplatienen durchstöbern und dem Elektronikladen einen Besuch abstatten. mfg Sepp
"Ich wollte mit dem Beispiel auch zeigen, daß einige Probleme, die hier oft von Hobbyisten besprochen werden, scheinbar selbst in kommerziellen Produkten nicht ganz bis zu Ende gedacht worden sind." Das stimmt. Manche Hobbyprogrammierer bauen bessere Programme als professionelle Programmierer. Usability, Ergonomie, intuitive Bedienung, Fehlertoleranz usw. scheinen für viele Profis noch absolute Fremdwörter zu sein. Ich nehme immer etwa 200Hz Multiplexfrequenz, d.h. bei 4 Digits also 800Hz Interruptrate. Peter
Ich werd's so machen dass ich einfach mit einem Schieberegister die einzelnen Segmente durchadressiere und die Daten einfach über den BCD-Dekoder mache. Denn diese Bauteile habe ich zu Hause rumleigen. Die Bausteine die den I2C Port verwenden habe ich nicht in meiner Grabbelkiste und würden sicher einiges kosten. Solange die Pin's noch reichen werde ich die Sparsame Variante verwenden. mfg Sepp
Hallo Sepp Schau dir mal das Datenblatt des mm5451 an. Der kann 35 Segmente (also 5 Anzeigen ohne Dezimalpunkte) treiben und hat eine Möglichkeit der Helligkeitsregelung. Die Daten werden seriell eingelesen. Michael
> Ich werd's so machen dass ich einfach mit einem Schieberegister die > einzelnen Segmente durchadressiere und die Daten einfach über den > BCD-Dekoder mache. Hmmm... Diese Lösung stufe ich nicht als "einfach" ein. Denn Schieberegister und Decoder komplizieren die Platine. Warum 3 Chips einsetzen, wo einer reicht? Dabei achte ich jetzt weniger auf die Kosten der Schaltkreise sondern auf die Kompliziertheit der Platine. Sinn des Einsatzes von MCs ist es ja, "IC-gräber" zu vermeiden. "Einfach" hingegen ist die Multiplexlösung. Sie benötigt nur den AVR, ein paar Widerstände, einige Transistoren und etwas Software. An einem AT90S1200 hatte ich eine dreistellige 7-Segment-Anzeige und eine 12-er Tastaturmatrix angeschlossen und das Ergebnis über zwei weitere Ausgänge seriell herausgeschoben. Die 3 Anoden der Anzeige bekamen je einen PNP-Transistor in Emitterschaltung, die Kathoden (Segmente) lagen über Widerstände an den AVR-Ports. Die Zeilen der Tastaturmatrix (4x3) lag über 4 Dioden mit an den Segment-Ports und die Spalten bekamen 3 separate Ausgänge. Die Tastenabfrage war Teil des Multiplexings. Das ASM-Programm war garnicht mal so kompliziert. Aus heutiger Sicht ist es etwas (arg) umständlich geschrieben, aber damals stand ich auch noch nicht unter dem Einfluss dieses genialen Forums... ...
@...HanneS... Lux "Einfach" hingegen ist die Multiplexlösung. Da stimme ich voll und ganz zu. Wer einmal gemultiplext hat, der macht nichts anderes mehr. Die erzielten Einsparungen und Vereinfachungen beim Layout sind schon extrem. Und nen ATTiny2313 extra dafür abzustellen ist gar keine schlechte Idee, wenn der Hauptprozessor Pins sparen muß. Da ich Analogeingänge benötigte, habe ich es mit dem ATTiny26 gemacht. Ich gebe zu, es gibt für Anfänger gewisse Hemmnisse, in die Interruptprogrammierung einzusteigen. Man muß nur einmal die quasi Gleichzeitigkeit von Main und Interrupt verstehen und das Interrupts kurz sein müssen. Peter
Wenn ich mir so die Preise ansehe, die z.B. Elektro-nix für AVR-Controller verlangt, ist es naheliegend, Controller als Ersatz für nahezu jegliche Speziallogik zu verwenden. @ M. von Gersdorff: Der MM5451 ist zwar ganz nett, hat aber einen entscheidenden Nachteil, oder gleich derer zwei: 1.) Alle Segmente ein: 4*7*10mA = 280mA. Eine geplexte Anzeige braucht nur ein Viertel davon. 2.) Der IC ist deutlich schwerer erhältlich als z.B. ein ATTiny2313, der so ein Multiplex-Display mit Links erledigt. Ohne externe Logik. Und billiger ist so ein ATTiny auch noch. Man darf sowas nur eben nicht beim grossen C kaufen. Gruss Jadeclaw.
Einen Nachteil des Multiplex-LED-Displays sollte man noch bedenken: Es kann wegen der ständig ein- und ausgeschalteten LED-Ströme EMV-Störungen verursachen, was z.B. bei Audio- oder Meßgeräten mitunter zu nervigen Problemen führt. Das läßt sich zwar durch gutes EMV-Design vermeiden oder notfalls auch durch Softwaremaßnahmen reduzieren (z.B. nicht alle Segmente einer Stelle gleichzeitig schalten), aber ein statisches Display (Schieberegister) vermeidet solche Probleme von vornherein. MfG Olaf
Danke für eure Hilfe @HanneS Hab ich dich da richtig verstanden? Du verwendest diverse Pins abwechselnd als Eingänge und als Ausgänge. Wie schützt du den MC davor dass er den Pin auf ausgang geschalten hat, aber ein Signal angelegt(Schalter gedrückt) wird? Wenn du mir erklährst währe dass wirklich toll. @Jadeclaw Der gleich gedanke ist mir auch schon gekommen. Die meißten Elektronik-Versandhandel führen den MM5451 gar nicht und beim Laden um's Eck bekomme ich 3 bis 4 Mikrokontroller für das Geld. @Alle Für diese Anwendung werde ich bei der Schieberegister+BCD-Dekoder Variante bleiben, da ich diese Schaltung warscheinlich nur einmal baue und dann nie mehr anrühre. Aber die Idee mit den Mikrokontrollern ist nicht mal so schlecht für Basteleien und Versuchsaufbauten. Ich werde mir mit kleinen Mikrocontrollern auf Modul-Platienen diverse spezial I/O's bauen und dann später je nach Anforderung über den IIC Bus verbinden. Das hat nebenbei den Vorteil dass ich die Daten in SRam-Cluster speichern kann. (Es wird sicher nicht der Gesamte SRam benötigt.) mfg Sepp
Die überlegung hatte ich auch schon mit dem EMV... Wenn man PLatinen anfertigen lässt, ist es kein problem n schieberegister auf die unterseite zu machen, und auf der oberseite die 7 segment anzeige. Platztechnisch dürfte das kein problem darstellen. auch die ansteuerung ist relativ simple - Die bytes die ausgegeben werden dürften fast gleich sein...
> Wie schützt du den MC davor dass er den Pin auf ausgang geschalten > hat, aber ein Signal angelegt(Schalter gedrückt) wird? Durch Dioden zwischen den Tastern und den Portpins... Ist eine Stelle des Displays aktiv, dann ist der Port Ausgang. L an den Segmenten lässt das Segment leuchten. Gleichzeitig ist dann einer der 3 Stellentreiber-Ausgänge aktiv (bei mir L-aktiv, da ich PNP-Transistoren nutze). Die drei Spaltentreiber (normale Ausgänge) der Tastaturmatrix sind währenddessen auf H-Pegel (hochohmig ginge auch). Drückt man eine Taste, so sperrt die Diode zwischen Taster und Segmentausgang und es passiert nix weiter. Während der Tastaturabfrage sind die LED-Stellentreiber deaktiviert (H), worauf kein Strom durch die Segmente fließen kann. Nun werden die Segment-Ports als Eingang mit Pullup geschaltet. Dann wird jeweils ein Tasten-Spaltentreiber auf L gelegt und der Port eingelesen. Die Diode der gedrückten Taste wird leitend und gibt den L-Pegel an den Port. ...
Könntest du mir bitte eine kurze Scizze machen. Das währe echt toll. Denn so richtig verstanden habe ich das jetzt nicht. mfg Sepp
AVR242-Application Note lässt grüssen... http://www.atmel.com/dyn/resources/prod_documents/DOC1231.PDF
So geht's natürlich auch. Ist sogar noch sparsamer als meine damalige Lösung. Da hatte ich noch garnicht reingeschaut... Danke... ...
Ich wusste gar nicht dass Atmel Beispiele hat. Ich werd mal schaun ob ich das Beispiel das Rahul verlinkt hat an meine Anforderungen anpassen kann. (Bidirektionale Komunikation zwischen PC und MC über Parralellport mit möglichs geringem Portverbrauch am MC.) Ich hab mir die Adresse mal genauer angeschaut und bin auf interessante Beispiele gestoßen. Z.B. das Ansprechen einer PC-Tastatur mit nur 2 Pins. http://www.atmel.com/dyn/resources/prod_documents/DOC1235.PDF Kennt eventuell eine Linksammlung zu den Aplication Notes damit man sich nicht mit dem Google abqwählen muß? mfg Sepp
Startseite www.atmel.com Dann interaktiv durchstöbern. Also AVR, Dokumentationen, Appnotes... Dann findest du eine HTML-Seite, auf der alle derzeit verfügbaren Appnotes aufgelistet sind und zum Download angeboten werden. Mundgerechter geht es eigentlich nicht, oder? ...
Vielen vielen Dank. Ich hatte einige Zeit auf der Atmel-Seite rumgesucht aber nicht's brauchbares gefunden. Dank deiner Hilfe hab ich's entlich gefunden. Ich habe schon langsam den Verdacht dass mich die Computer nicht leiden können. mfg Sepp
Naja, Google bietet mir auch meist das an, was ich gerade nicht haben will. Und ich habe den Eindruck, dass das immer schlimmer wird. ...
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.