Siebensegmentanzeigen ansteuern

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 22 12 2025  17:20:48      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Oszilloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Siebensegmentanzeigen ansteuern

    







BID = 443714

pg-zonk

Gelegenheitsposter


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 66
Wohnort: CH
 

  


Hallo zusammen

Momentan setzte ich mich mit einer Schaltung auseinander die die Ergebnisse über 7 Siebensegmentanzeigen ausgeben sollte. Ich würde für das ganze gerne den ATmega8 verwenden. Einen Port brauche ich als Eingang. Somit bleibt mir nur noch höchstens zwei Ports als Ausgänge wenn ich den analog Port als Eingang benutze. Mit zwei Ports kann ich aber gerade mal 4 Siebensegmentanzeigen betreiben.

Gibt es nun auch andere Möglichkeiten bei denen mir 2 Ports oder vieleicht sogar ein Port reicht? zB wenn ich das ganze statt mit BCD Code seriell ausgebe?

Für eure Antworten danke ich schon mal im Voraus.


_________________
Gruss

pg-zonk

PS: Seid lieb zueinander!

BID = 443720

Her Masters Voice

Inventar


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 5312
Wohnort: irgendwo südlich von Berlin

 

  

hm...
ein Port hat 8 bit.
7 Segmente hat eine Anzeige, ggf 8 wenn man den DP dazuzählt. Wäre ein Port.
Der andere Port könnte nun direkt über seine 8 Pins 8 solcher Anzeigen ansteuern. Mit 8 bit kann man binär 0 bis 255 darstellen. Wenn man den Port also über einen Decoder nutzt liessen sich somit auch 255 7-Segmenter ansteuern. Reicht das?

Nur das mit den 4 Stück konnte ich nicht nachvollziehen...

_________________
Tschüüüüüüüs

Her Masters Voice
aka
Frank

***********************************
Der optimale Arbeitspunkt stellt sich bei minimaler Rauchentwicklung ein...
***********************************

BID = 443724

Nukeman

Schriftsteller



Beiträge: 754
Wohnort: bei Kleve

HMV war schneller
Sind per Dekoder sogar 256 Stück möglich.

Wenn man noch mehr braucht, geht das wohl am einfachsten
über Schieberegister. Dann bestimmen fast nur noch
finanzielle Mittel und elektischer Energievorhalt die Anzahl
Bei der Schieberegister-Lösung entfällt dann der Zeit-Multiplex
in der Software, aber man braucht halt weitere externe ICs.

Ich denke, mit 2 Port -> 4 Digits ist gemeint, so eine
"intelligente" Anzeige anzusteuern. Also 4 x 4 Bit für
die 4 Stellen.

Gruß,
Stefan

BID = 443737

pg-zonk

Gelegenheitsposter


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 66
Wohnort: CH

Zuerst einmal Danke für eure Antworten

Ich hatte zuerst im Sinn einen normalen BCD Dekoder zu benutzen zB den 74LS247. Weil ich eure Möglichkeit einfach nicht kannte (Bin noch ein neuling in Sachen µC)

Ganz verstanden habe ich die Sache noch nicht. Habt ihr zufällig irgend einen Link mit einem Beispiel?

_________________
Gruss

pg-zonk

PS: Seid lieb zueinander!

BID = 443768

PhyMaLehrer

Schriftsteller



Beiträge: 911
Wohnort: Leipzig

In dem Beispiel auf der Seite http://www.dumdididum.de/blackstrom/avr/avr_uhr/index.shtml wird zwar ein anderer Mikrocontroller verwendet, aber das Prinzip ist es. Die Schaltung befindet sich im unteren Drittel der Seite.

BID = 443849

clembra

Inventar



Beiträge: 5402
Wohnort: Weeze / Niederrhein
ICQ Status  

Ich würde ehr von Nukeman vorgeschlagene Methode mit Schieberegistern wählen. Dann braucht man sich wenigstens nicht mit genauen Zeiten auseinandersetzen. Bei Multiplexbetrieb, wie im von PhyMaLehrer geposteten Link, müssen die Segmente so beschaltet werden, dass sie im Falle eines Softwarefehlers und voller Einschaltdauer nicht lange halten würden.
Wenn es normale 7Segmentanzeigen sind sollte man sich ein Schieberegister-IC suchen, welches die gesamte Anzeige (alle 7 Segmente + Dezimalpunkt) gleichzeitig dauerhaft treiben kann, so erspart man sich auch weitere Transistoren oder Treiberbausteine.

BCD-Dekodierer für 7Seg. bringen IMHO nur wenig bei mehrstelligen Anzeigen, da man aufgrund des Zehnersystems eh umrechnen muss; da kann man es auch gleich "richtig" machen.

_________________
Reboot oder be root, das ist hier die Frage.

BID = 443895

pg-zonk

Gelegenheitsposter


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 66
Wohnort: CH

Zuerst Mal danke für den Link und eure Tipps.

Es tut mir leid dass ich vergessen habe zu schreiben dass diese Siebensegmentanzeigen unabhängig von einander betrieben werden. ich will also keine siebenstellige Zahl ausgeben, sondern sieben verschiedene Zahlen welche nichts miteinander zu tun haben. Deshalb auch das mit den BCD Dekodern. Aber Mittlerweile gefällt mir die Methode mit den Schieberegistern immer besser. Ich werde mich mal reingoogeln. Schieberegister kenne ich zwar aber ich habe noch nie etwas damit gemacht. Wir werden sehen...

_________________
Gruss

pg-zonk

PS: Seid lieb zueinander!

BID = 443932

Nukeman

Schriftsteller



Beiträge: 754
Wohnort: bei Kleve

Hallo pg-zonk,

die Lösung mit Schieberegistern braucht auch nur wenige Portpins
des Micro-Controllers. Man braucht nur 3 Pins für Daten, Clock
und nen Strobe. Als IC kann man den 4094 verwenden. Der bietet
allerdings nur wenig Treiberleistung. ( Hab damit aber trotzdem
schonmal direkt 7-Seg angetrieben ). Vielleicht ULN2001
an die Ausgänge hängen.

Verdrahtung wäre dann in etwa so:
erstes IC:
µC-Data an Data(2) ( ach nee.. )
µC-Clock an Clock(3)
µC-Strobe an Strobe(1)
Q1..Q7 -> Ausgänge für 7Seg

weitere ICs:
Data(2) an Qs(9) des vorherigen ICs
Clock wie 1.IC direkt vom Microcontroller
Strobe wie 1.IC direkt vom Microcontroller
Q1..Q7 wieder an die Segmente.

Du brauchst dann also für 7 Digits auch 7 von diesen
Bausteinen.

Ob die einzelnen Ziffern was miteinander zu tun haben
oder nicht, ist für die HW-Beschaltung ja eigentlich egal. Das
muss die Software im Micro-Controller auseinanderklamüsern.
Hauptsache, man kann jede Ziffer gezielt ansteuern.
Allerdings müssen bei jedem Update alle Ziffern kurz neu
geschrieben werden.

Der Prozessor clockt dann 7x8 Bit in die kaskadierten Schieberegister
und gibt danach einen kurzen Strobe, damit die neuen Daten in die
Ausgänge übernommen werden.

Gruß,
Stefan

BID = 443944

DonComi

Inventar



Beiträge: 8604
Wohnort: Amerika

Das schöne ist, dass der CD4094 eben ein Ausgangsspeicher besitzt, dass bedeutet konkret, dass von außen nicht sichtbar ist, dass grade neue Bits eingetaktet werden. Ergo gibt es kein Flimmern oder "transparentes Durschrauschen" der einzelnen Bits.

Daher benutze ich mittlerweile den CD4094 nur noch als Ausgangserweiterung.
Sollte man allerdings mit 16MHz arbeiten und demnach sehr schnell (einige MHz) die Daten eintakten, dann sollte unbedingt das HC(T)MOS-Pendant gewählt werden!

Treiben der LEDn geht schon, ich habe das schon öfter gemacht, aber dann die LEDn mit entsprechend größerem Vorwiderstand dimensioniert, damit die Belastung nicht allzuhoch wird. (Ansteuerung zweier 7-Segmentanzeigen)

Sie funktioniert seit ca. einem Monat perfekt.


Sauberer ist es dennoch, Treiber zu verwenden. Nur ist da, selbst in SMD, die Platine sehr schnell voll oder man benutzt integrierte Treiber (ULN28xx). (Habe grade ne Platine mit Mega16 (TQFP), 16 Treibern (SMD-Transistoren), 4 Wiederstandsnetzwerke in 0402-Größe (aus nem alten MP3-Player) und 2 Widerstandsnetzwerken á 8 Wirderstände (330Ω) und nem Qaurz auf ne 40x50mm große Platine gefummelt. Platz wird da schon knapp.)

Was mich ungemein nervt, ist, dass es den CD/HC/HCT-4094 bei Reich Elt nicht im SMD-Gehäuse gibt.

_________________

BID = 444027

BjörnB

Stammposter

Beiträge: 242
Wohnort: Dortmund

Hallo,

ich verwende für solche Zwecke gerne die 74HC595, sind von der räumlichen Anordnung der Ausgangspins angenehmer in der Anwendung. Leider gibt es die bei Reichelt auch nicht als SMD.

Viele Grüße,
Björn

BID = 444048

Nukeman

Schriftsteller



Beiträge: 754
Wohnort: bei Kleve

Hallo BjönB,

der 74HC595 sieht auch von der Treiberleistung besser aus,
damit kann man die Anzeigen wohl wirklich bedenkenlos
direkt treiben, wenn man etwas grössere Vorwiderstände
wählt.
Guter Tipp! Intern ist das Teil logisch fast gleich wie
der 4094 mit dem Output-Latch und die Q's kommen schön
auf einer Seite raus.


Wollte nur noch eben den Gedanken nicht ganz in den
Hintergrund rücken lassen, dass man bis zu 8 Stellen
( oder 9 ohne Punkt ) mit 2 Ports auch ganz ohne
externe ICs schaffen kann.
Da ist halt eben mehr die SW-Seite gefragt.
Muss man selbst abwägen. So eine serielle Schaltung ist
zum Testen auch schnell an einen PC-Paralell-Port gehängt.
Je nachdem, wie man die SW entwickelt, kann das sinnvoll sein.
Das geht mit dem Multiplex-Betrieb nun wieder eher schlechter
am PC zu simulieren.

Gruß,
Stefan

BID = 444094

hajos118

Schreibmaschine



Beiträge: 2453
Wohnort: Untermaiselstein


Zitat :
Nukeman hat am 18 Jul 2007 14:35 geschrieben :

...
die Lösung mit Schieberegistern braucht auch nur wenige Portpins
des Micro-Controllers. Man braucht nur 3 Pins für Daten, Clock
und nen Strobe. ...

Allerdings müssen bei jedem Update alle Ziffern kurz neu
geschrieben werden.



... oder man verwendet für jedes Display einen eigenen Strobe, ggf. aus einem BCD->BIN decoder.
Das ergibt für die Ansteuerung von 10(16) Stellen genau 5 Port-Leitungen. (4BCD,1Strobe-Clock) mit der Daten und Clockleitung sowie einem Enable - Signal (optional) benötigst Du also nur einenPort am uC.
Softwareseitig kannst Du dann jede Ziffer unabhängig von den anderen neu beschreiben und musst Dir nicht merken, was in den unveränderten Ziffern steht.

BID = 444428

pg-zonk

Gelegenheitsposter


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 66
Wohnort: CH

Vielen Dank für eure ausführlichen Antworten. Ich kann mich bis jetzt noch nicht entscheiden wie ichs mache. Weil diese Bastelei eh nicht Dringend ist werde ich mal beides ausprobieren.

Besonders die Lösung von hajos gefällt mir weil ich da nur einen Port brauche.

Ich hätte nie gedacht dass es so viele Möglichkeiten gibt...

_________________
Gruss

pg-zonk

PS: Seid lieb zueinander!

BID = 445630

stepp64

Gesprächig


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 162

Hallo,

für solche Sachen eignet sich der MAX7219 hervorragend. Das ist ein Displaytreiber für 7-Segmentanzeigen welcher seine Daten seriell bekommt. Du schließt deinen µC über 3 Leitungen am MAX-Eingang an und die bis zu 8x 7-Segmentanzeigen am Ausgang des MAX7219. Multiplexing, Decodierung, Helligkeit, Vorwiderstände etc. ist schon alles integriert. Der MAX7219 ist zwar nicht ganz billig (ca. 7,-€ bei Rei****t) dafür gibt es ihn aber auch in SMD und du sparst dir jede Menge Verdrahtungs- und Programmieraufwand. Schau ihn dir mal an, bei >4 Diggits lohnt es sich sicher darüber mal nachzudenken.

Gruß
Sven


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 18 Beiträge im Durchschnitt pro Tag       heute wurden bisher 6 Beiträge verfasst
© x sparkkelsputz        Besucher : 187881786   Heute : 14116    Gestern : 15438    Online : 334        22.12.2025    17:20
7 Besucher in den letzten 60 Sekunden        alle 8.57 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0339920520782