Hallo! Erstmal super Dank an die Macher dieses Forums und des Tutorials. Ich habe folgendes Problem! Ich habe eine AD Umsetzung mit dem Atmega8 durchgefuehrt(Assembler) und das hat auch gut geklappt. Jetzt wuerde ich gerne diesen 10bit Wert dezimal auf einem 3digit 7 Segment Display ausgeben. Ein LCD sollte es bei mir nicht sein, da die Ziffern sehr gross werden sollten und das bei einem LCD Display zu teuer wird. Ich wuerde mich ueber eure Hilfe sehr sehr freuen , da ich noch ziemlich neu in de Materie bin.
Wo ist jetzt dein Problem? DIe Hardware? Die Software? Oder gar beides?
Hi, suche im Forum nach "Schachuhr", bei diesem Projekt kannst du das Prinzip der Ansteuerung "abkupfern" :) Die Idee ist, die gemeinsame Anode bzw. Kathode der Segmentanzeige über einen Transistor anzusteuern. So kann man die einzelnen Segmente zeitlich nacheinander mit den selben Pins ansteuern -> Multiplexverfahren. Es gibt aber natürlich auch andere Möglichkeiten...
Mein Problem ist eigentlich beides! Hast du vielleicht irgendwelche Ideen?
Ich habe mit einem Kollegen ein ähnliches Projekt durchgezogen. Wir hatten noch drei Schieberegister rumliegen (74HC595). Sie sind kaskadiert und erhalten einen 24Bit-Wurm mit den parallel auszugebenden Zahlen. Die Register missbrauchen wir auch gleich als Treiber für die Anzeigen. Der Vorteil an dieser Konstruktion ist, dass sie durch Hinzufügen weiterer Anzeigen fast beliebig erweiterbar ist. Die Schieberegister lassen eine Ansteuerung mit bis zu 100MHz, wodurch man nicht einmal gross auf Timings achtgeben muss. Der eindeutige Nachteil ist, dass man wieder drei ICs mehr in der Schaltung hat. Ein grosser Vorteil ist, dass sich wegen dem Tristate-Ausgang mit dem Output Enable relativ einfach eine PWM realisieren lässt um Strom zu sparen.
Wie habt ihr das den angesteuert? Versteh nicht so recht.Waere super wenn Ihr bei der 10bit gewandelten Zahl im Mikrocontroller anfangen koenntet und vielleicht eine Zeichnung oder so uploaded. Waere euch echt dankbar.
hier eine 4fach-Anzeige, Multiplex. Aber wenn du sagst: "grosse Ziffern" - wie gross? Kann sein, dass du dann gar nicht mehr mit 5V arbeiten kannst, dann benötigst du auf jeden Fall Treiberbausteine.
Super Crazy horse! Danke Hast du auch noch den Code ueber zum ansteuern? Lieg ich da jetzt total falsch oder kann ich theoretisch nur Zahlen bis 256 darstellen wegen 8 bit Eingang? Sorry aber kenn mich echt noch nicht so gut damit aus!
Das ist nicht böse gemeint, aber du solltest wirklich ein bisschen mehr Eigeninitiative zeigen. Wie kommst du plötzlich auf 8-Bit-Eingänge? IMHO ist es nicht nötig, für crazy horses Schaltung die passende Software zu posten. Die ist nämlich wirklich nicht sehr kompliziert, wenn du verstanden hast wie die Schaltung funktioniert. Wenn du das noch nicht hast (und danach sieht es aus), hilft dir fertiger Code auch nicht weiter.
habe ich schon, gebe ich dir aber nicht. Ist erstens in C und zweitens willst du was lernen. Aber das Prinzip erkläre ich dir gerne: Eigentllich besteht das Ganze aus 3 Abschnitten: -Umrechnung der Dualzahl in einzelne Dezimalstellen -Umkodierung dieser Dezimalstellen in Siebensegmentcode (das macht man am einfachsten mit einer Tabelle) -Ausgeben der einzelnen Stellen. zu 1: du dividierst die Dualzahl durch 10, das Ergebnis merken, den Rest speichern. Ergebnis nochmal durch 10, Rest ergibt die Zehner, Ergebnis die Hunderter. Dividierroutinen: Atmel asm200. Jetzt hast du 3 oder 4 Bytes vorliegen, je nachdem ob du mit 3 oder 4stelliger Anzeige arbeiten willst, im Bereich von 0-9. Jetzt brauchst du eine Tabelle von 10 Bytes, am besten im Flash ablegen mit dem zu jeder gehörenden Siebensegmentcode. Da lädst einen Zeiger mit der Anfangsadresse der Tabelle und holst dir den passenden Siebensegmentcode und speicherst diesen in einem Register (oder auch in dem, wo das Ergebnis der Dezimaldivision stand. Damit ist die Berechnung fertig. Fehlt noch die Ausgabe: Timer programmieren, der z.B. alle 1ms auslöst. Beim ersten Mal das Bitmuster für die Hunderter-Stelle ausgibt, anschliessend den Anodentreiber für die Hunderter-Stelle aktiviert. Beim nächsten Mal sind dann die Zehner dran, dann die Einer. Danach von vorn.
Vielen Dank Crazy Horse werde mich damit beschaeftigen und wenn ich es nicht packen sollte meld ich mich nochmal bei dir wenn das OK ist.
das schaffst du schon, wenn du das Prinzip verstanden hast. Der Rest ist einfach.
So ganz einfach ist die Ansteuerung der Segmente nicht. Die Gefahr das Geisterbilder entstehen, flackern, Helligkeit, Dimmung, Vornullenunterdrückung usw. sollte man nicht unterschätzen (wenn man was g'scheits machen will) SG Josef
Auch eine Parametrierung wäre interessant, das setzen der Dezimalpunkte ist nicht ganz ohne und das Blinken einzelner Segmente ist auch nicht ganz konfliktfrei. Dazu kommt eine Datensicherung bei Stromausfall und ein Poweroff. Sollte der MC stehen, können durch die kleinen Segmentvorwiderstände ev.Leds oder Ports abbrennen. Das ist nur ein kleiner Auszug aus Vorgaben, wenn du was für die Industrie machst. Also mach's gleich g'scheit. Oder fragt Matthias, der weiß alles ;-) SG Josef
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.