Forum: Mikrocontroller und Digitale Elektronik 7-Segment direkt vom uC Anstuern


von Patrick (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich arbeite an einem Projekt. Ich soll eine Diagital-Anzeige realisieren 
die Impulse von einem Induktivsensor ausgibt. Ich arbeite mit dem 
PIC18F4553. Habe dort einen Interrupt programmiert, der mir bei jeder 
steigenden Flanke des Sensorsignals einen Zähler um 1 erhöht. Der 
Zählerstand soll nun an den 3 7-Segment anzeigen ausgegeben werden.

Ich arbeite mit einer Steuerprint der einen Spannungsregeler 5V drauf 
hat. Nun habe ich einen Print gemacht, den ich auf die Platine 
draufstecke mit den 3 7-Segementen und den Vorwiderständen. Programm 
läuft und die Anzeige auch. Allerdings nur, wenn ich denn Print mit den 
Segmenten etwas später draufstecke. Es scheint als ob der Controller 
einige Zeit braucht um den Strom liefern zu können. Ist das richtig? 
Dann ist es nur noch eine Frage der Zeit, bis das ganze Teil abstürzt. 
Meistens dann, wenn der Zählerstand den Wert 20 überschreitet und somit 
viele Segmente gleichzeitig leuchten. Die Einer- und Zehnerstelle sind 
HDSP 5501 7 Segmente (Common Anode) und die Hunderterstelle ist eine 
HDSP 5503 (Common Cathode). Dies musste ich so machen weil ich nur 2 von 
den 5501 habe und die Zeit drängt.

Anbei eine Zeichnung wie das ganze angeschlossen ist und wie ich die 
Widerstände dimensioniert habe. 200mA dürfen in den uC fließen und 200mA 
kann er fließen lassen für alle I/O Pins. Darum dachte ich, ich lass 
10mA pro Segment fließen, d.h. 140mA (CA Segemente) fließen in den 
Controller und 70mA (CC Segment) liefert der Controller.  Aus dem 
Datenblatt der Segmente habe ich bei einem Strom von 10mA eine 
Vorwärstspannung von 1,75V entnommen.

Wo ist der Fehler? Sind meine Annahmen falsch? Wäre sehr froh wenn ihr 
mir helfen könntet!

Gruß
Patrick

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ein Controller ist kein Treiberbaustein für LEDs.

von Falk B. (falk)


Lesenswert?

@Patrick (Gast)

>Ich arbeite mit einer Steuerprint der einen Spannungsregeler 5V drauf
>hat. Nun habe ich einen Print gemacht, den ich auf die Platine
>draufstecke mit den 3 7-Segementen und den Vorwiderständen. Programm
>läuft und die Anzeige auch. Allerdings nur, wenn ich denn Print mit den
>Segmenten etwas später draufstecke.

Das sollte man nicht tun, Bauteile unter Spannung stecken.

> Es scheint als ob der Controller
>einige Zeit braucht um den Strom liefern zu können. Ist das richtig?

Nein.

>Dann ist es nur noch eine Frage der Zeit, bis das ganze Teil abstürzt.

Dann ist wohl dein Spannungsregler zu schwach. Wahrscheinlich ein 
Linearregler ala 7805 ohne Kühlkörper an 12V oder so. Der überhitzt 
und schaltet dann ab.

>Meistens dann, wenn der Zählerstand den Wert 20 überschreitet und somit
>viele Segmente gleichzeitig leuchten.

Was umso mehr für eine zu schwache Stromversorgung spricht.

>Anbei eine Zeichnung wie das ganze angeschlossen ist und wie ich die
>Widerstände dimensioniert habe.

Das passt in etwa. Wobei mir etwas unwohl ist, diese Grenzen derartig 
auszureizen.

MFG
Falk

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Warum nimmst du nicht irgendeinen X-beliebigen Treiberbaustein zwischen 
µC und Anzeige. Dann brätst du wenigstens nicht den µC, wenn die 
Wiederstände auf lange Sicht doch zu klein sind. Und außerdem musst du 
den maximalen Strom durch VCC und GND des µC beachten! Wie wärs mit 
einem 74HC4066? Den gibts auch schön klein!
Mit freundlichen Grüßen,
Valentin Buck

von Patrick (Gast)


Lesenswert?

danke für die antworten,

ist mein erstes uC Projekt und habe deshalb noch wenig Erfahrung wo die 
Grenzen sind etc. Aber ich glaube ich werde um einen Treiberbaustein 
nicht herum kommen. Werde mich da mal einlesen wie das funktioniert.

Danke, Gruß
Patrick

von MaWin (Gast)


Lesenswert?

> Wo ist der Fehler?

Nicht in diese Schaltungteil.

> Sind meine Annahmen falsch?

Nein. Es ist sogar klug, den Strom teilweise von den Ausgängen nach GND 
und teilweise von +5V in die Ausgänge fliessen zu lassen, damit der 
maximale Strom über die Versorgungsspannungsanschlüsse des uC klein 
bleibt.
Dein Bauteildurcheinander ist also kein Nachteil.

> Wäre sehr froh wenn ihr mir helfen könntet!

Vermutlich ist dein Programm fehlerhaft. Ich weiss, alle Leute glauben, 
Sie könnten programmieren, und dann gibt es wildlaufende Timer, ständige 
Inetrruptreturns, ...

Die andere Möglichkeit wäre ein hundmieserabler Aufbau der Schaltung mit 
schlechter Leiterbahnführung, fehlenden Abblockkondensatoren, 
unzuverlässiger Takterzeugung. Aber die muss dann schon sehr mies sein, 
denn so anspruchsvoll sind deine Anzeigen nicht, nicht mal Multiplex.

von Andreas K. (derandi)


Lesenswert?

Ich tippe auf zusammenbrechende Stromversorgung.
Haben diese Controller auch sowas wie eine Brownout-Detection?

von Patrick (Gast)


Lesenswert?

ja haben sie.. was passiert, wenn ich die aktiviere?
lg

von Thorsten S. (whitejack)


Lesenswert?

statt Treiberbausteine zu verwenden kannst du auch einfach Low Current 7 
Segmentanzeigen nehmen. Bei ebay haben sie die HDSP F101 momentan ganz 
häufig für 10€ (25Stück). Damit kannst du alle Betriebsmöglichkeiten:

-direkt
-multiplext
-charlieplext

verwirklichen, das einzige was du benötigst ist dann der passende 
Vorwiderstand. Die Sache hat dazu noch einen Vorteil, auch bei 
Batterieanwendungen oder Schaltungen die über ein Kondensatornetzteil 
versorgt werden, hast du länger etwas davon. Ich nutze nur noch diese 
Dinger und würde es nie wieder anders machen.

Gruß,
Thorsten

von Thorsten S. (whitejack)


Lesenswert?


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.