Hallo Zusammen, ich habe folgendes Problem ich lasse einen Port die erkannten Signale zählen(Binär). Nun wollte ich mir mit 3 7-Segmentanzeigen den Zählerstand dezimal anzeigen lassen.Es gibt unzählige IC die einen 4-Bit Wert zur Anzeige bringen. Hat jemand eine Ahnung ob es auch einen IC für 8-Bit gibt?!? Ich konnte leider beim gooooogeln nichts finden.
gibt es nicht. Du hast einen MC, lass den doch bisschen was tun :-) 7-Segment-Ansteuerung würde hier schon mehrfach diskutiert.
Hast du nciht evtl. noch genug µController Resourcen um das dein Controller mit erledigen zu lassen? Also ich würd sagen, 3 Siebensegmentanzeigen gemultiplext an ein Port wäre am einfachsten und vor allem ganz ohne extra ICs zu realisieren.
SAA1064 gibts bei reichelt 2 bzw.4x 7-seg über I2c desweiteren können glaub ich 4 SAA1064 an einem I2c bus hängen -> 16x 7seg
LüLü dazu muss man erstmal wissen wie so eine multiplex schaltung aussehen würde :)
Oh...hab ich etwa zu viel Wissen vorrausgesetzt :-) Hier (http://www.sprut.de/electronic/pic/programm/led.htm) ist z.B eine Multiplexerschaltung beschrieben. Dort wird es mit einem PIC Controller gemacht. Ich weiß ja nicht mit welchem Controller du arbeitest, aber ich denke das Prinzip kann man auch so gut verstehen.
"dazu muss man erstmal wissen wie so eine multiplex schaltung aussehen würde :)" Kein Problem, siehe Anhang. Peter
Wie eine Multiplex Schaltung grundlegend funktioniert kann ich mir jetzt vorstellen. Jedoch denke ich das diese Schaltung nicht das erfüllt was ich brauche. Ich zeige einen Wert(bin) an Port4 an --> 00001111 dann sollen die Anzeigen 15 anzeigen wenn sich der Wert der Ports ändert soll sich der Wert der 7 Segmentanzeigen auch ändern so dass der akuelle Wert des Ports immer angezeigt wird. Thomas
Nun...ich behaupte jetzt einfach mal, so ein IC, dass die Anzeige richtig ansteuert, gibt es nicht. Zumindest habe ich noch nie davon gehört. Wenn du die Ansteuerung der Anzeigen wirklich nicht den Controller überlassen willst (oder kannst), hättest du grundsätzlich noch die Möglichkeit, dir deinen eigenen CPLD zu programmieren, um die Zahlen entsprechend anzeigen zu lassen. Ich denke aber mal, dass das völlig übertriebener Aufwand wäre. Ansonsten könntest du dir die Zahlen ja auch als Hex-Wert anzeigen lassen. Das heißt, du würdest nur 2 Anzeigen verwenden und anstatt z.B. 15 würde deine Anzeige 0F anzeigen. Ich würde dir allerdings wirklich ganz stark empfehlen, den Controller die Ansteuerung der Anzeigen zu überlassen, sonst langweilt der sich doch auch, wenn der sonst nur zählen muss g
Danke für die Antwort LüLü! Ich habe mir das auch schon überlegt den Wert einfach Hex anzeigen zu lassen. Ich hatte nur gedacht, da es ja IC's fast für alle möglichen Anwendungen gibt, dass es da auch einen IC gibt der 8 Bit Bin in Dez Zahlen umwandeln kann. Daher werde ich mir Anzeige in HEX machen ist das einzigste und schnellste. Danke nochmal an alle die sich hier beteiligt haben. Finde ich echt supper!!!!!!!!!!!!!! Thomas
>ich habe folgendes Problem ich lasse einen Port die erkannten Signale >zählen(Binär). Wenn Du etwas mehr zu Deinem Projekt sagen könntest (ist schwer, ich weiß g), kann Dir noch viel besser geholfen werden. >Jedoch denke ich das diese Schaltung nicht das erfüllt was ich >brauche. Mit welcher Begründung? Ich halte es für sehr wahrscheinlich, daß Du kein weiteres IC benötigst, und mit einer Multiplexschaltung sehr glücklich werden könntest.
So wie ich die Multiplexschaltung verstehe funktioniert diese wie folgt: Am Eingang lege ich ein Signal an vom IC werden die Impulse gezählt und dann auf den Anzeigen angezeigt. Ich möchte aber zwei Dinge einmal den Port den ich hochzähle einfach in Zahlen fassen und zum anderen einen weiteren Port der mir Messergebnisse ausgibt z.B 186 in Bin diesen binärwert einfach anzeigen. Also sollten die Ports im ganzen eingelesen werden um die Segmentanzeigen anzusteuern. Thomas
Da hast du ein bischen was falsch verstanden :-) Als Multiplexschaltung bezeichnet man nur die Art der Ansteuerung der Anzeigen (die Ausgabe). In deinem Fall bedeutet das, du zählst deine Impulse in deinem Controller wie du dir gedacht hattest und mit dem gleichen Controller steuerst du (quasi nebenbei) deine Anzeigen an. Wenn du noch fragen hast frag einfach :-)
Thomas, da hast Du was falsch verstanden. Der Begriff Multiplex steht für eine bestimmte Art und Weise wie man ein Display ansteuern kann. Für eine 'statische' Ansteuerung verbindet man jedes Segment der Anzeige mit einem Portpin des Prozessors. Dazu würde man bei 3 Stellen Siebensegment 21 Anschlüsse benötigen (wenn man auf der Hunderstelle die führende Null weglässt reichen 20). Im Multiplexbetrieb sind alle gleichen Segmente der 3 Anzeigen miteinander verbunden und an je einen Portpin angeschlossen - macht 7 Leitungen. Die gemeinsamen Anode (oder Katode) jeder Anzeige geht an einen weitern Pin - 3 Stellen = 3 Pins + 7 Segmente ergibt zusammen 10 Leitungen. Du siehst, man spart mindestens die Hälfte der Portleitungen am Prozessor ein. Außerdem braucht man nur noch 7 statt 21 Widerstände zur Begrenzung des Stromes durch die LEDs. Die Ansteuerung erfolgt 'dynamisch', d.h. man gibt zum Beispiel als Erstes die Segmentdaten für die Einerstelle aus. Sofort danach wird die Anode (Katode) der Einerstelle eingeschaltet. Nach 1 bis 2 ms schaltet man die Einerstelle wieder aus. Dann wird die Segmentinformation für die Zehnerstelle ausgegeben. Jetzt wird Zehnerstelle einschalten, warten und wieder ausschalten. Danach das Ganze nochmal für die Hunderterstelle und wenn die abgearbeitet ist fängt man wieder von vorne bei der Einerstelle an. Das wichtigste dabei ist die möglichst genaue Einhaltung von immer gleichen Einschaltzeiten (Stichwort 'Timer') für alle Stellen, sonst sind sie unterschiedlich hell oder / oder flackern. Und noch was Gutes hat die Sache: wenn man zwischen die einzelnen Ausgaben variable Pausen (Display aus) einfügt, lässt sich eine prima Dimmung realisieren. Ich hoffe Du kannst diesem etwas langatmigen Beitrag einige brauchbare Informationen entnehmen. Dieter
Sorry falsche Wortwahl, ich meinte natürlich Contoller und nicht IC sind aber alle schwarz. Auf alle Fälle werden bei einer solchen Schaltung die Impulse gezählt und zur Anzeige gebracht. Wenn ich jedoch einen Wert z.B 168 anzeigen will müsste ich erst etwas programmieren wo diese Impulse sendet damit ich den Wert zur Anzeige bringen kann. Ich denke mit einer Hex Zahl kann ich leben und es ist da einfachste und schnellste. Gruß Thomas
4 Möglichkeiten: 1. Ein (Flash-)EPROM als Decoder verwenden. Dazu programmiert man dieses mit einer Tabelle, die für die jeweiligen Eingangskombinationen die entsprechenden Ausgangswerte direkt an die Anzeige ausgibt. Sozusagen programmierbare Logik für Arme. Nachteil: benötigt 1 ROM pro Anzeige. 2. Display mit eingebauter Logik verwenden. Z.B. das TIL311 gibt direkt Hex-Werte aus. Sehr cool. Nachteil: schwer zu finden. Gibts neu zu kaufen, aber sauteuer. Vgl. http://home.wanadoo.nl/electro1/avr/til311.htm 3. Treiberbaustein benutzen, z.B. SAA1064 oder MAX7219. Einfach anzusteuern; der Chip übernimmt die komplette Ansteuerung und das Multiplexing. Helligkeit läßt sich per Software regeln. Serielle Ansteuerung, benötigt daher die wenigsten Controllerpins. Nachteil: die Teile sind relativ teuer. Der SAA ist deutlich billiger als der MAX, wenn man <= 4 Stellen braucht. 4. Alles in Software machen. Nachteil: höherer Programmieraufwand; benötigt Rechenzeit, Speicherplatz und Controllerpins.
Die Funktionsweise der Multiplexschaltung hast Du anscheinend völlig mißverstanden. Aus Deiner Beschreibung der beiden Dinge, die Du willst, werde ich beim besten Willen nicht schlau. Tut mir leid.
>Wenn ich jedoch einen Wert z.B 168 anzeigen will müsste ich erst etwas >programmieren wo diese Impulse sendet damit ich den Wert zur Anzeige >bringen kann. ??????? Sorry, aber liegt es an mir, daß ich das nicht verstehe?
Ich vermute mal, Du benutzt gar keinen MC sondern hast nur einen 8Bit-Zähler (z.B. 74HC393). Ohne Programmierung eines MC oder EPROM ist da nichts mit dezimaler Anzeige. Du könntest höchstens gleich einen Dezimalzähler nehmen (74HC390) und dann 7S-Decoder dahinter. Da es hier aber hauptsächlich um MCs geht, denken gleich alle, Du willst alles nur mit einem Chip machen (Zählen, Dezimal wandeln, 7S-dekodieren, Multiplexen), z.B. mit einem ATTiny2313 (zählt bis max 10MHz). Aber wie gesagt, ohne Programmieren lernen geht das nicht. Peter
Also nochmal Multiplexschaltung habe ich so verstanden. Es werden die Impulse am Eingang gezählt und dann über die drei Anzeigen angezeigt oder habe ich das falsch verstanden?!?!?!?!?!?!?!?!? Wenn ich ich aber einen Wert direkt am Port anzeigen lasse (P4=164;)dann kann diese Zahl ja nicht direkt über die Multiplexschaltung angezeigt werden auser wenn ich über ein MC Routine auf einen Ausgang 164 Impulse schicke.Oder habe ich da was Missverstanden. Wenn ja kann mich mal jemand vom Prinzip her aufklären wie die Multiplexschaltung auf den angezeigten Wert kommt. Ich benutze schon einen MC zwar einen alten 80C517A aber zum programmieren reicht mir dieser bis jetzt.
moin hmm nochmal anders du hast 3 anzeigen. alle segmente der 3 anzeigen sind parallel geschaltet. die katohden / anoden sind einzeln steuerbar. t1: nur anziege 1 angeschaltet zahl für anzeige 1 ausgeben t2: nur anzeige 2 angeschaltet zahl für anz2 ausgeben t3:nur anziege 3 angeschaltet zahl für anzeige 3 ausgeben --> wieder mit 1 anfangen. das ganze schnell genug so das es nicht flimmert also min 25x pro sekunde. so wie du auf die zahlen kommst: du liest deinen zähler/port aus. machst modulo 10 speicherst das auf die variable für anzeige 3 divison mit 10 wieder modulo --> wird zahl für anziege 2 divison modulo--> anziege 1 ja und dann nach dem du die zahlen hast kannst diese dann umrechnen in den ausgabe wert damit diese zahl wirklich erscheint zB über einen switch konstruckt zb für ne 1 brauchst du die 2 rechten segmente also müsstets du 0x03 ausgeben wenn auf pin 1 und pin 2 die entsprechenden segmente angeschlossen sind MISCH ps: noch fragen dann bitte pss: fals der post zu spät kommt ich habe rechtzeitig angefangen war aber zwischenzeitlich essen
> dann kann diese Zahl ja nicht direkt über die > Multiplexschaltung angezeigt werden auser wenn ich über > ein MC Routine auf einen Ausgang 164 Impulse schicke. Ich glaube, ich hab das Mißverständnis begriffen! Du nimmst an, die 7-Segmentanzeige hätte irgendeine Logik? Hat sie nicht. Der µC kann jedes Segment einzeln ansteuern, ob es gesetzt sein soll oder nicht. Also drei Schritte: 1. Umwandlung des Bytes in drei Dezimalwerte für die drei Stellen (das hat Luchs2a gerade beschrieben) 2. Umwandlung der Dezimalwerte in Segmentmuster; das geschieht mit einem einfachen 10-Byte-LookupTable 3. Diese Bytemuster auf die drei Anzeigen multiplexen. Das hast Du mittlerweile wohl begriffen, wie das geht Ja, dazu mußt Du ein wenig programmieren, aber für solche Dinge sind µC irgendwie gedacht ...
vorhin die mail adrr vergessen. bin übers we nicht da. möchte einfach nur wissen wie es ausgeht. ach ja ung gaaaaanz wichtig MISCHA heist es ;-)
will man glauben oder nicht haken vergessen Tschuldigung
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.