Forum: Mikrocontroller und Digitale Elektronik uC + 3 Schieberegister + 7-Segmentanzeige


von Patrick B. (patrick_b)



Lesenswert?

Hallo Leute,

ich hoffe ihr könnt mir helfen.

Ich habe 4 Dateien Angehängt.

1. Schaltplan: AT90CAN128 + 3 Schieberegister + 3fache 7Segmentanzeige

2. BC56-13SURKWA_Ver1290387772: Datenblatt der 3fache 7Segmentanzeige

3. AT90CAN128.pdf: Datenblatt der Mikrocontrollers
   Electrical Characteristics: Seite 365

4. 155762-da-01-en-LOGIK_IC_M74HC595B1R_STM: Datenblatt der 
Schieberegister

Wie ihr im Schaltplan sehen könnt habe ich bisher nur die Verkabelung 
realisiert. Die 8 Ausgänge der Schieberegister sind natürlich auch mit 
den jeweiligen PINs der 7Segmentanzeige verbunden.

Da ich noch nie irgendwelche Schaltungen geplant/gebaut habe, weiß ich 
nicht sicher an welchen Stellen ich Widerstände und Transistoren 
benötige, die dann die richtige Stromversorgung liefern.

Ich wäre euch sehr dankbar wenn ihr mit kurz sagen könntet wo ich 
Widerstände und Transisoren benötige und vielelicht auch mit kurzer 
Erklärung.

Falls ich irgendwas vergessen haben sollte an Informationen, dann 
schreibt das kurz. Wie gesagt ich mach das zum ersten Mal.

Danke und Grüße

von wulfi (Gast)


Lesenswert?

Hier werden schon eine ganze Menge deiner Fragen und Probleme 
abgehandelt:
http://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige 
Bitte arbeite das erst mal durch und melde Dich mit konkreten Fragen.

von Dirk (Gast)


Lesenswert?

Guckst Du!

Grundlagen

http://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige

1x Schieberegister

HC595 geht ohne Treiber nicht. ULN2803 dahinter oder gleich TPIC 
verwenden.

3x Spaltentreiber über PNP Transistoren

von wulfi (Gast)


Lesenswert?

Achso, leider hast Du nichts zum Typ des Schieberegisters geschrieben. 
Das Thema wird unter 
http://www.mikrocontroller.net/articles/Porterweiterungen abgehandelt.

von Patrick B. (patrick_b)


Lesenswert?

@wulfi

den Beitrag habe ich schon durch. Da werden Transistoren nur zum 
Schalten benutzt.

Habe doch das ganze Datenblatt zum Schieberegister angehängt.


@ Dirk

ULN2803 dahinter habe ich mir auch überlegt. Muss ich dann jeden PIN des 
Schieberegisters über den ULN2803 verstärken?

3x Spaltentreiber über PNP Transistoren sagt mir nichts. was ist ein 
Spaltentreiber?

Brauch ich zwischen Schieberegister und 7Segment auch überall 
Widerstände oder?

Brauch ich irgenwo nach dem Controller nen Transistor?

Danke

von Dirk (Gast)


Lesenswert?

Patrick B. schrieb:
> ULN2803 dahinter habe ich mir auch überlegt. Muss ich dann jeden PIN des
> Schieberegisters über den ULN2803 verstärken?


Schau Dir zu allererst mal diesen Beitrag an.
Vereint die Eigenschaften von HC595 und ULN in einem Chip.

http://www.mikrocontroller.net/part/TPIC6B595

von Patrick B. (patrick_b)


Lesenswert?

Bin ich grad schon am lesen. Glaube, dass ist sinnvoller.

Hast noch ne Antwort auf die anderen Fragen?

3x Spaltentreiber über PNP Transistoren sagt mir nichts. was ist ein
Spaltentreiber?

Brauch ich zwischen Schieberegister und 7Segment auch überall
Widerstände oder?

Brauch ich irgenwo nach dem Controller nen Transistor?


Danke für die schnellen Antworten

von Mark Penny (Gast)


Lesenswert?

Erst vor kurzem gab es einen ähnlich Thread.

Lies Ihn mal von Anfang bis Ende durch.

Beitrag "Findet ihr meinen Fehler?"

von Patrick B. (patrick_b)


Lesenswert?

WErde ich machen. Werde versuchen bis morgen Abend mal alle Bauteile, 
also auch ULN/TPIC und Widerstände reinzumachen und dann nochmal Fragen 
obs so passt :-)

Eine Frage habe ich nochmal vorher.

Wo müsste ich die 3x Spaltentreiber über PNP Transistoren eibauen. Seh 
ich das richtig, dass mit Spaltentreiber die Spaltenversorgung in den 
7Segmenten/LED Matrix gemeint ist?

Danke

von Dirk (Gast)


Lesenswert?

Ich hab grad mal ins Datenblatt Deiner 7-Segment Anzeige geschaut.

Mit diesem Typ kannst Du Dein Vorhaben nicht realisieren.

Gemeinsame Kathode.

Das heisst Deine Segment-Treiber müssten HighSide Treiber sein.

TPIC oder ULN sind Low-Side Treiber.

Das funktioniert also nicht, jedenfalls nicht mit dieser 7-Segment 
Anzeige

Wäre dann sowas wie:

UDN2981

und die gemeinsame Kathode über NPN Transistoren

von Patrick B. (patrick_b)


Lesenswert?

ok danke, ich werde mal bis morgen die ganzen sachen einbauen. Habe mich 
auch schon gefragt wie der Transistor schalten soll wenn die 
Schieberegister auf 0 schalten wenn die led leuchten soll.

Werd wohl morgen dann noch nen paar fragen bezüglich den widerständen 
haben.

Muss/Sollte ich eigentlich auch Widerstände nach den PINs welche ich für 
die Flanken, mit denen ich die Schieberegister steuere,einbauen?

Danke

von Jürgen W. (juergen_w) Benutzerseite


Lesenswert?

Patrick B. schrieb:
> Wo müsste ich die 3x Spaltentreiber über PNP Transistoren eibauen. Seh
> ich das richtig, dass mit Spaltentreiber die Spaltenversorgung in den
> 7Segmenten/LED Matrix gemeint ist?



Da du ja mit Schieberegister alle Segmente einzeln bedienst und nicht
multiplexen willst, brauchst du keine Spaltentreiber.

Gruss Jürgen

von Jürgen W. (juergen_w) Benutzerseite


Lesenswert?

Deine gemeinsame Kathoden kommen dann aber an GND und nicht an 5V (dein 
Schaltplan oben).

von Patrick B. (patrick_b)


Lesenswert?

@ Jürgen

Dirk Schrieb:

Wäre dann sowas wie:

UDN2981

und die gemeinsame Kathode über NPN Transistoren




Wären die NPN Transistoren die Spaltentreiber? heißt ich bruache nur 
nach den Schieberegistern ein HighSide Treiber!?

Muss/Sollte ich eigentlich auch Widerstände nach den PINs welche ich für
die Flanken, mit denen ich die Schieberegister steuere,einbauen?

Danke

von Jürgen W. (juergen_w) Benutzerseite


Lesenswert?

Du bräuchtest dann schon 6 ICs + MC um 3 7Segmetanzeigen zu betreiben.
Schau mal hier im Tut. nach "Multiplexen".

von Jürgen W. (juergen_w) Benutzerseite


Lesenswert?


von Patrick B. (patrick_b)


Lesenswert?

Hi, jetzt weiß ich wo grad der Fehler liegt. Ich habe grad irgendwie ned 
durchgeblickt. Ich habe das falsche Datenblatt von der 7Segmentanzeige 
angehängt.

http://www.kingbright.com/manager/upload/pdf/BA56-11SURKWA%28Ver1290387710.4%29

Ich habe doch eine Anzeige mit gemeinsamer Anode. Also der Schlatplan 
oben stimmt dann soweit.

@Dirk: Dann kann ich doch den TPIC nehmen oder?

Ich habe an meinen 7 Segment eine gemeinsame Anode, also + liegt immer 
an und zum Schalten der LEDs schalte ich die Scheiberegister PINs auf 0. 
Was muss ich dann jetzt für einen Treiber hinter die Schieberegister 
setzen?

Danke

von Dirk (Gast)


Lesenswert?

Mit Deiner bisherigen Schaltung geht es definitiv nicht.

Da die Segmente eine gemeinsame Kathode haben, welche gegen GND 
geschaltet werden müssen.

Sinnvoller wäre fast, wenn Du Dir eine Anzeige mit gemeinsamer Anode 
besorgst.

von Patrick B. (patrick_b)


Lesenswert?

Dirk schrieb:
> Mit Deiner bisherigen Schaltung geht es definitiv nicht.
>
> Da die Segmente eine gemeinsame Kathode haben, welche gegen GND
> geschaltet werden müssen.
>
> Sinnvoller wäre fast, wenn Du Dir eine Anzeige mit gemeinsamer Anode
> besorgst.

Hi, glaub du hast den Beitrag vor deiner Antwort grad ned rechtzeitig 
gelesen. Habe nur Anzeigen mit gemeinsamer Anode. So wies im schaltplan 
auch drin is. Habe nur das falsche Datenblatt der Anzeige angehängt.

von Dirk (Gast)


Lesenswert?

Patrick B. schrieb:
> Hi, glaub du hast den Beitrag vor deiner Antwort grad ned rechtzeitig
> gelesen. Habe nur Anzeigen mit gemeinsamer Anode. So wies im schaltplan
> auch drin is. Habe nur das falsche Datenblatt der Anzeige angehängt.

@Patrick,

den hatte ich definitiv noch nicht gelesen.

Du brauchst nur die TPICs. Sie vereinen Schieberegister HC595 und 
Treiber ULN in einem IC.

Schau Dir mal das datenblatt an.

Wie steht es mit Deinen Programmierkenntnissen? Programmiersprache ?

von Patrick B. (patrick_b)


Lesenswert?

Programmierkenntnisse sind vorhanden. Das ganze Programm für den MC ist 
auch schon fertig. Da ist ja noch vieles mehr. PWM Signale, CAN usw. 
Also Progammieren ist kein Problem, nur die Hardwareseite, also 
Widerstände und Transistoren, aber da arbeite ich mich auch rein.

Programmiersprachen: C,C++,ADA95,Scheme, Java

Wo bei ich den MC in C++ programmiert habe.

Wieso fragst du?

Ich habe nochmal eine gezielte frage zu nem Transisor auch wenn ich nen 
TPIC nehme.

Ich habe am Collektor mein Vcc und an der Basis die Schiebregister PINs? 
Ich dachte ich muss den Transistor(NPN) über die Basis ansteuern. Da 
fließt doch dann kein Strom wenn ich die PINs am schieberegister auf 0 
Schalte oder?

von Jürgen W. (juergen_w) Benutzerseite


Lesenswert?

Wie ich im Datenblatt sehe, sind das Superhelle LEDs. Der HC595 kann 
insgesamt 70mA. Wenn dir also die Helligkeit bei 8,5 mA (pro Segment ca. 
350 Ohm in die Leitung) noch ausreicht, kannst du auch die billigeren 
HC595 nehmen. Ich selbst habe eine 4Stellige 16-Segmentanzeige so 
aufgebaut.

http://www.avr-projekte.de/16seg.htm

von Jürgen W. (juergen_w) Benutzerseite


Lesenswert?

Patrick B. schrieb:
> Ich habe am Collektor mein Vcc und an der Basis die Schiebregister PINs?
> Ich dachte ich muss den Transistor(NPN) über die Basis ansteuern. Da
> fließt doch dann kein Strom wenn ich die PINs am schieberegister auf 0
> Schalte oder?

Wenn du einzelne NPN Transistoren nehmen wolltest:

Widerstand an Segment X. Anderes Ende des Widerstand an den Kollektor. 
Emitter an GND. Basis über Widerstand an Schieberegister.

High am Schiberegister = Segment X ein. Low = Segment aus.

von Patrick B. (patrick_b)


Lesenswert?

Wenn ich deine Schaltung kurz richtig überblickt habe. hast du mir 
eigentlich alle meine Fragen beantwortet. Kurze Rückfrage zur 
Sicherheit.

Ich kann HC595 nehmen, wenn mir die Helligkeit reicht. Sonst nehme ich 
TPIC!?

Die Transistoren an der gemeinsamen Anode nimmst du doch nur zum 
Multiplexen oder!?

wenn ich alle seperat ansteuer bruach ich da keine Transisotren, oder?

von Dirk (Gast)


Lesenswert?

Jürgen W. schrieb:
> Wenn dir also die Helligkeit bei 8,5 mA (pro Segment ca.
> 350 Ohm in die Leitung)

Seit wann betreibt man Bauteile am Rande der Spezifikation.

@Patrick

NEIN!

VCC ----> PNP Transistor Emitter (Pfeil zur Basis) --- Collector ----->
Vorwiderstand ------> Ausgang TPIC ------ TPIC gemeinsamer Anschluss 
----> GND


PNP Basis ---> Pullup gegen VCC
PNP Basis ---> Vorwiderstand and AVR Ausgang (Spaltentreiber) und das 3x

Schaue diesen Thread:

Beitrag "Findet ihr meinen Fehler?"

von Dirk (Gast)


Lesenswert?

Wenn du es separat machst, brauchst Du keine PNPs aber 3 TPICS

von Patrick B. (patrick_b)


Lesenswert?

Richtig ok. das habe ich jetzt soweit verstanden. Also ich nehme kein 
HC595 da ich die Schieberegister nicht überfordern will sondern nehme 
ein TPIC.

Dann habe ich die Wahl zwischen 1 TPIC und 3 PNP (Multiplexen) oder 3 
TPIC und keinem PNP


@Dirk was wolltest du mir damit sagen?

VCC ----> PNP Transistor Emitter (Pfeil zur Basis) --- Collector ----->
Vorwiderstand ------> Ausgang TPIC ------ TPIC gemeinsamer Anschluss
----> GND


Wie ein TPIC aufgbaut ist?


Ich denke ich habe heute schon einges gelernt :-)

In dem 7Segement Tutorial werden einige Sicherheitsmaßnahmen bezüglich 
Multiplexen angesprochen, falls mal eine LED ausfällt. Muss ich da dann 
irgendwas spezielles beachten? Oder sagen wir es so, hat es ein Nachteil 
3 mal ein TPIC zu nehmen außer den Kosten, die bei diesem Projekt keine 
Rolle spielen. Wenn ich multiplexe bruache ich auch 3 weiter Pins am MC

von Dirk (Gast)


Lesenswert?

@Dirk was wolltest du mir damit sagen?

Es sollte die Reihenfolge der Bauteilverschaltung darstellen.

Es ist natürlich nicht erforderlich, die gemultiplexte Variante zu 
verwenden.
Bei 3 Digits ist der Aufwand noch relativ gering.

Wäre ein gutes Beispiel zum lernen einer solchen üblichen Verschaltung 
gewesen.

Du kannst natürlich auch Deine HC595 belassen und noch 3 ULN 2803 
dahinter schalten. Wären dann 6 ICs.

Im Multiplexbetrieb gerade mal 1x TPIC und 3 Transistoren.

Nach welchem Prinzip Du letztendlich arbeiten möchtest ist Deine 
Entscheidung.

von Patrick B. (patrick_b)


Lesenswert?

Gibt es für den Multiplexbetrieb noch irgendwelche Sicherheitsmaßnahmen?

"Allerdings gibt es noch ein anderes Problem wenn insgesamt zu viele 
Anzeigen gemultiplext werden. Die Pulsströme durch die LEDs werden 
einfach zu hoch. Die meisten LEDs kann man bis 8:1 multiplexen, manchmal 
auch bis 16:1. Hier fliesst aber schon ein Pulsstrom von 320mA (16 x 
20mA), was nicht mehr ganz ungefährlich ist. Strom lässt sich durch 
Multiplexen nicht sparen, denn die verbrauchte Leistung ändert sich beim 
n-fachen Strom für 1/n der Zeit nicht. Kritisch wird es aber, wenn das 
Multiplexen deaktiviert wird (Ausfall der Ansteuerung durch Hardware- 
oder Softwarefehler) und der n-fache Strom dauerhaft durch eine 
Segment-LED fließt. Bei 320mA werden die meisten LEDs innerhalb von 
Sekunden zerstört. Hier muss sichergestellt werden, dass sowohl Programm 
(Breakpoint im Debugger) als auch Schaltung (Reset, Power-On, [1]) 
diesen Fall verhindern. Prinzipiell sollte man immer den Pulsstrom und 
die Multiplexfrequenz einmal überschlagen, bevor der Lötkolben 
angeworfen wird."

Das sind die Maßnahmen die ich meinte. Was will man mir damit dann 
sagen?

von Dirk (Gast)


Lesenswert?

@Patrick

Du verstehst da gänzlich was falsch.

Du pulst die Anzeigen deswegen nicht mit dem 8 bzw. 16 fachem seines 
nomialem Stromes.

Du hast 3 Digits, die Du mit einem DutyCycle von 1/3 bei ihrem nominalem 
Strom pulst.
Und Du wirst mit Sicherheit fast keine Helligkeitsunterschiede zur 
permanenten Ansteuerung feststellen.

von Dirk (Gast)


Lesenswert?

Bau Dir mal eine Testschaltung auf, in der Du eine LED mit einer 
Einschaltdauer von 1/100 ansteuerst und das bei standard 10 bzw. 20mA
und DU wirst erstaunliches feststellen.

von Patrick B. (patrick_b)


Lesenswert?

ok, das mit dem Multiplexen muss ich mir Softwareseitig nochmal ansehen. 
Da müsste ich was anderst programmieren damit ich auch wirklich mit 
einem DutyCycle von 1/3 bei nominalem Strom pulse.

Dann habe ich noch ne Frage. Ich habe bei meiner Schaltung SCL einfach 
an Vcc angeschlossen.

Jürgen hat hier:

http://www.avr-projekte.de/16seg-pics/display_sch_big.png

noch einen Widerstand eingebaut. Brauch ich den auch oder kann ich SCL 
direkt an Vcc/5V anschließen?

von Sexy (Gast)


Lesenswert?

Patrick B. schrieb:
> Jürgen hat hier:
>
> http://www.avr-projekte.de/16seg-pics/display_sch_big.png

Der Sinn dieser Schaltung ist, daß der Shift Register Clear Eingang nach 
Power Up für eine gewisse Zeit gegen 0 gezogen wird und somit der 
undefinierte Zustand der Schieberegisterinhalte gelöscht wird.

Deine obige Schaltung

Schaltplan.gif

musst Du eh überarbeiten, da hier jegliche passiven Bauteile zur 
Beschaltung fehlen.

von Patrick B. (patrick_b)


Lesenswert?

Ja das werde ich morgen machen. Ich habe SCL auf 5v dauerhaft da ich die 
Schieberegister nicht löschen will. Kann ich die dann einfach auf 5v 
lassen oder muss da auch ein Widerstand rein?

von Dirk (Gast)


Lesenswert?

Mach es so wie in der Schaltung und gewöhne Dir garnicht erst diesen 
Vollkommenunsonstbauteilsparstil an.

Ein kleines Bauteil kann große Wirkung verursachen.

von Patrick B. (patrick_b)


Lesenswert?

Ok wird gemacht :-)

Noch 2 kleine Fragen für heute, dann meld ich mich morgen wieder mit 
meinem neuen Schaltplan.

http://www.avr-projekte.de/16seg-pics/display_sch_big.png

Der Widerstand und der Kondensator der an SCL hängt. Wie bekomme ich bei 
sowas raus welche größe beide Teile haben müssen?

bei den PNP Transistoren, woher weiß ich da welchen Widerstand ich an 
der Basis einbauen muss?

Danke

von Patrick B. (patrick_b)


Angehängte Dateien:

Lesenswert?

Hallo, hat doch ein wenig länger gedauert, da ich recht viel zu tun 
hatte in der letzten Zeit. Ich habe meinen Schaltplan soweit fertig. Ich 
habe ihn anghängt. In der PDF findet man auch meine Berechnung für die 
Bauteile. Wäre nett wenn da mal wer drüber schauen könnte.

Danke

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
Noch kein Account? Hier anmelden.