Forum: Mikrocontroller und Digitale Elektronik Findet ihr meinen Fehler?


von Stefan S. (Firma: Student) (1991stefan1991)


Angehängte Dateien:

Lesenswert?

Vielleicht findet ihr meinen Fehler.
Es handelt sich eigentlich um eine sehr simple Schaltung.
Der Controller ist im Moment so programmiert, dass alle Ports auf 0xFF 
sind.
Zur Info: Schaltung1 ist mit Schaltung2 über ein Buskabel verbunden, 
1-1, nur dass die unteren beiden Anschlüsse von Schaltung 1 zu den 
oberen Anschlüssen von Schaltung 2 gehen.

Wenn ich das richtig sehe, müssten nun alle Segmente, außer dem Punkt, 
der 7-Segment Anzeige leuchten, tun sie aber nicht. Der µC macht das was 
er machen soll, nachgemessen mit dem Multimeter liegen an der Ports 5V 
an, oder etwas drunter, wenn sie belastet sind.

Ich hoffe ihr könnt mir helfen und die Frage ist nicht zu blöd.

Danke schonmal

von Tobi W. (todward)


Lesenswert?

Hallo,

Was ist mit der Versorgung des ULN-Treibers?
Schalten die Transitoren auch richtig durch?

Miss mal nach dem ULN die Spannung an den Ports und auch an den 
Transitoren.

Grüße
Tobi

von NPN (Gast)


Lesenswert?

Du hast Common Anode (CA) Displays, die du mit NPN Transitoren versorgen 
willst. Das ist seltsam als die übliche PNP Ansteuerung.

von ingo (Gast)


Lesenswert?

> Was ist mit der Versorgung des ULN-Treibers?

Der Anschluss ist eigentlich nur für die internen Freilaufdioden.
Da hier keine Relais geschaltet werden, sollte hier eigentlich nicht das 
Problem liegen.
mfG ingo

von Karl H. (kbuchegg)


Lesenswert?

Die Ansteurung der beiden Transistoren. Das wird so nicht gehen.

Die NPN sollten PNP sein
Du kannst nicht einen gemeinsamen Vorwiderstand für alle LED eines 
Segments benutzen.

Im Moment wird dir die komplette Versorgungsspannung, die eigentlich für 
die LED gedacht wäre, an deinem 156 Ohm Widerstand abfallen und am 
Emitter vom NPN werden grade mal so um die 0.7V übrig bleiben. Zu wenig, 
als das da irgendwas leuchten wird.

von Timo S. (kaffeetas)


Lesenswert?

Hallo Stefan
1. Ein Abblockkondensator gehört an jedes Versorgungspaar. Wenn du dann 
schon dabei bist kannst auch gleich noch einen für AREF-GND spendieren.

2. Der Vorwiderstand gehört in die Segmentleitungen (für jedes Segment 
einen), nicht an die Gemeinsame Anode da sonst die Segmente 
unterschiedlich stark leuchten je nach dem wieviele gerade angesteuert 
werden. Ausserdem ist die Parallelschaltung von LEDs zu vermeiden.

Grüße
 Timo

von Peter D. (peda)


Lesenswert?

NPN schrieb:
> Du hast Common Anode (CA) Displays, die du mit NPN Transitoren versorgen
> willst. Das ist seltsam als die übliche PNP Ansteuerung.

Die Kollektorschaltung ist durchaus üblich, seitdem CMOS volle 5V 
bringen und nicht nur 2,4V wie die uralten TTL-er.
Man spart den Basiswiderstand und braucht auch keine Totzeiten mehr, da 
sie sauschnell schaltet.

Allerdings der Begrenzerwiderstand in den Anoden wirkt unprofessionell, 
denn dann hat man unterschiedliche Helligkeit, je nach Anzahl der 
leuchtenden Segmente.


Peter

von Stefan S. (Firma: Student) (1991stefan1991)


Angehängte Dateien:

Lesenswert?

> Was ist mit der Versorgung des ULN-Treibers?
Oh das habe ich vergessen zu schreiben, die Pins waren in Eagel nicht 
dran, später aber auf dem Board, die habe ich dann manuell verbunden, 
siehe Bild.
Wenn ich das richtig hab, sollte der ULN die Ausgangspins auf GND 
ziehen, wenn die Einganspinns auf high sind?!

> Schalten die Transitoren auch richtig durch?
Beim Messen ist mir aufgefallen, dass weder an den Transistoren, noch an 
den Vorwiderständen Spannung abfällt. Muss ja eigentlich heißten, dass 
irgentwo entweder nen Kurzschluss ist, oder ne Kontaktstelle nicht 
richtig gelötet ist, in beiden Fällen blöde Arbeit -.-

> Miss mal nach dem ULN die Spannung an den Ports und auch an den
> Transitoren.
Nach dem ULN ist an jedem Ausgangspin low Potential, also genau das, was 
anliegen sollte

von Peter D. (peda)


Lesenswert?

DDRx Register auf Ausgang gesetzt?

Peter

von MaWin (Gast)


Lesenswert?

> Wenn ich das richtig sehe, müssten nun alle Segmente,
> der 7-Segment Anzeige leuchten, tun sie aber nicht.

Ne, sicher nicht.
Es leuchtet das Segment dessen LED die herstellungsbedingt
niedrigste Flusspannung hat.
Eventuelle leuchten noch ein paar andere Segmente dunkler.
Und einige werden gar nicht leuchten.

Es hat schon seinen Grund, warum andere Leute mehr als 1
Vorwiderstand einbauen. Selbst die angeblich ach so geizigen
Chinesen. Die wissen nämlich warum.

Bau einen Widerstand pro Ausgangsleistung des ULN ein
an statt den beiden im Kollektor der Transistoren.

Schau dir einfachz an, wie man es richtig macht:
http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8.1

Die 10k von R3 und R4 sind recht hoch, hier dürfen es 0 Ohm sein :-)


> Zur Info: Schaltung1 ist mit Schaltung2 über ein Buskabel verbunden,
> 1-1, nur dass die unteren beiden Anschlüsse von Schaltung 1 zu den
> oberen Anschlüssen von Schaltung 2 gehen.

Hoffentlich nicht, denn laut Schaltplan passen die 1:1

von HildeK (Gast)


Lesenswert?

Außerdem sind die Segmente, die gleichzeitig ein sind, parallel 
geschaltet. Erstens wird das eine ungleichmäßige Helligkeit zur Folge 
haben und zweitens: je mehr Segmente an sind, desto dunkler wird das 
Display. Drittens sind die 10k-Basiswiderstände schon ev. grenzwertig 
hoch - ich habe leider keine Daten vom 2N706.

Die Serienwiderstände zur Strombegrenzung der Segment-LEDs gehören an 
die Ausgänge des ULN2003.

Wie oben schon gesagt wurde, PNP-Transistoren wären in dem Zusammenhang 
die richtige Wahl, wenngleich es auch so gehen müsste.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Stefan Slooten schrieb:
> Zur Info: Schaltung1 ist mit Schaltung2 über ein Buskabel verbunden,
> 1-1, nur dass die unteren beiden Anschlüsse von Schaltung 1 zu den
> oberen Anschlüssen von Schaltung 2 gehen.

Das ist ja gerade verkehrt herum. Dann sind die CAs gar nicht mit den
beiden Transistoren verbunden. Und wie schone mehrfach geschrieben
wurde, gehören die 165Ω-Widerstände in die Kathodenleitungen.

von Stefan S. (Firma: Student) (1991stefan1991)


Lesenswert?

Danke schonmal für die vielen, schnellen Antworten

Dass die Vorwiderstände an den ULN müssen leuchtet ein

Peinlicherweise muss ich zugeben dass die Transistoren tatsächlich alte 
TTL und NPN sind -.-

>1. Ein Abblockkondensator gehört an jedes Versorgungspaar. Wenn du dann
>schon dabei bist kannst auch gleich noch einen für AREF-GND spendieren.
Wo genau meinst du? Zwischen Vcc und GND hab ich doch einen und das sind 
auch VAdc, nur an Vreff is nix dran

Also fazit:
1: Vorwiderstände hinter den ULN
2: PNP Transistoren (hätt ich auch selber drauf kommen müssen)
3: Mehr Kondensatoren, wo weiß ich allerdings noch nicht, die 
Grundbeschaltung des Atmega hab ich ausem Netz

Ach ja die Vorwiderstände der Transistoren sind falsch beschriftet seh 
ich grad, die sind auch 165Ohm groß!

Danke nochmal für die viele Hilfe, ich verbuche diesen Versuch einfach 
mal als Lehrgeld und setz mich nochmal ans Zeichenbrett.

von Tobi W. (todward)


Lesenswert?

Stefan Slooten schrieb:
> 3: Mehr Kondensatoren, wo weiß ich allerdings noch nicht, die
> Grundbeschaltung des Atmega hab ich ausem Netz

Naja du machst einfach an jedes Vcc/GND paar einen 100nF kerko daran... 
je näher desto besser.

Gruß
Tobi

von Stefan S. (Firma: Student) (1991stefan1991)


Angehängte Dateien:

Lesenswert?

Ist das so besser?
Das einzige was ich noch nicht geändert habe, ist das ich keine PNP 
nutze, sind die NPNs also richtig da, oder wo müsste ich die PNPs hin 
setzten?

von Dirk (Gast)


Lesenswert?

Hast Du Dir schon mal die Innenbeschaltung eines ULN2003 angeschaut.

Normalerweise gehören an Deine Digit Select NPNs noch leichte pulldown 
Widerstände, um Sie im einschaltmoment (hochohmiger Eingang an der MCU) 
fest gegen GND zu ziehen und damit zu deaktivieren!

Hast Du die Schaltung so wie im Bild schon getestet ?

von Dirk (Gast)


Lesenswert?

pulldown an der Basis jeden NPNs wohlgemerkt

von Stefan S. (Firma: Student) (1991stefan1991)


Angehängte Dateien:

Lesenswert?

Also habe ich das richtig verstanden:
Pulldown Widerstand an die Basiseingänge der NPNs, wie jetzt 
eingezeichnet?
Die Schaltung ist noch nicht fertig, weil ich noch auf eure Resonanz 
warten wollte

von karadur (Gast)


Lesenswert?

Hallo

im ULN2003 sind die Widerstände schon drin!!!

von Falk B. (falk)


Lesenswert?

@  Stefan Slooten (1991stefan1991)

>      neueneueSchaltung.png

Man zeichnet keine Leitungen durch Bauteile.
Man zeichnet keine schrägen Luftlinien, immer 90 Grad, in Ausnahmefällen 
45 Grad.
Emitterfolger haben im allgemeinen keinen Basiswiderstand.

MFG
Falk

von Dirk (Gast)


Lesenswert?

karadur schrieb:
> im ULN2003 sind die Widerstände schon drin!!!

@Karadur
ich meinte die Innenschaltung des ULN nur als Refernzbeispiel.


@Stefan

genau so nur wesentlich hochohmiger.
Nimm 47K sonst wird dein erzeugter Spannungsteiler nir durchschalten.

PNP sind hier einfach besser geeignet.

von Stefan S. (Firma: Student) (1991stefan1991)


Angehängte Dateien:

Lesenswert?

So jetzt mal sortiert.
Die Widerstände des Spannungsteilers was größer gemacht.

Nochmal zu den PNP Transistoren:
Wenn ich das richtig hab, schalten die wenn an Be ne negative Spannung 
ist.
Ich steh grad auf dem Schlauch, wie soll ich in die Schaltung PNPs 
einbauen?

von Dirk (Gast)


Lesenswert?

@Stefan:

PNP Transistor Symbol ? (Siehe Wikipedia)

Emitter gegen +VCC
Collector an Deine Last

Basis : pullup Widerstand gegen +VCC und Basiswiderstand an MCU Port

Schaltrichtung: Nach der Initialisierung gleich auf 1 setzen

PORTBx = 1
DDRBx = 1

Um das jeweilige Digit zu aktivieren

PORTBx = 0

von Dirk (Gast)


Lesenswert?

Sorry !!!!

Fehler unterlaufen

gemeint war

PORTDx
DDRDx

von Karl H. (kbuchegg)


Lesenswert?

Stefan Slooten schrieb:
> So jetzt mal sortiert.
> Die Widerstände des Spannungsteilers was größer gemacht.
>
> Nochmal zu den PNP Transistoren:
> Wenn ich das richtig hab, schalten die wenn an Be ne negative Spannung
> ist.

negative Spannung gegenüber dem Emitter (also dem Anschluss mit dem 
Pfeil im Schaltbild).
Aber: Der Emitter liegt ja auf Vcc! Damit ist aber eine etwas kleinere 
Spannung als Vcc schon negativ gegenüber Vcc. Insbesondere ist GND 
eine nagative Spannung gegenüber Vcc.
d.h. wenn die Basis ebenfalls auf Vcc liegt (weil der Ausgansgpin des µC 
auf 1 ist), dann sperrt der Transistor. Ist die Basis auf GND (weil der 
Ausgangspin auf 0 ist) dann leitet der Trsnsistor.

> Ich steh grad auf dem Schlauch, wie soll ich in die Schaltung PNPs
> einbauen?

Einfach den NPN gegen einen PNP austauschen. Der Pfeil im Schaltsymbol 
zeigt dann auf Vcc. Und natürlich bei der Programmierung berücksichtigen 
das Pin auf 1 einen gesperrten Transistor bedeutet.

Der Pulldown Widerstand wird zum Pullupwiderstand mit der gleichen 
Funktion. Wobei: Bei dir passiert ja nichts, wenn der PNP kurzzeitig 
beim Einschalten leitet. Du kannst daher diesen Pullup auch weglassen.

von Dirk (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Der Pulldown Widerstand wird zum Pullupwiderstand mit der gleichen
> Funktion. Wobei: Bei dir passiert ja nichts, wenn der PNP kurzzeitig
> beim Einschalten leitet. Du kannst daher diesen Pullup auch weglassen.
>
>
>
>     Beitrag melden | Bearbeiten | Löschen |

Den Pulldown würde ich sogar aus Prinip nicht weglassen.
Vorallem für zukünftige Projekte bei denen es sogenannte HIz Zustände 
gibt.
HIz = High Impedanz = sehr hochohmiges

Nichts ist schlimmer als "floatende" Ausgänge mit undefinierten 
Zuständen
und das nur, um einen Widerstand zu sparen.

Bestücke den Widerstand!!!

von Falk B. (falk)


Lesenswert?

@  Stefan Slooten (1991stefan1991)

>      schaltung_sortiert.png

Schon beser, aber noch einige Dinge kann man besser machen.

Die Leitung an R2 ist zu nah.
Punkte macht man nur an Leitungsabzweige, nicht an Bauteilanschlüsse.
Das VCC Symbol macht man meist anders herum.
Namen und Werte sollen gut lesbar sein und Bauteile nicht überlappen.
Mit SMASH kann man die Namen und Werte vom Symbol lösen und mit MOVE 
verschieben
Für R2 und R12 nimmt man GND-Symbole, um die Leitung nach GND nicht quer 
durch den Schaltplan legen zu müssen.
An C1 und C2 fehtl der Wert, 100nF
R3, R4, R2 und R12 sind überflüssig.

@ Dirk (Gast)

>Nichts ist schlimmer als "floatende" Ausgänge mit undefinierten
>Zuständen

Im Prinzip ja, hier nein. Durch die Schaltung wird das "Schlimme" 
verhindert. Und bei Bipolartechnik ist das deutlich unkritischer.

MfG
Falk

von Dirk (Gast)


Lesenswert?

Falk Brunner schrieb:
> Im Prinzip ja, hier nein. Durch die Schaltung wird das "Schlimme"
> verhindert. Und bei Bipolartechnik ist das deutlich unkritischer.

Zum Beispiel wenn die MCU gesockelt und evtl. unbelegt ist.

Siehe Beispiel STK500 Board ohne MCU.

Bringt es Ihm von Anfang an lieber auf der sicheren Seite bei.

Irgendwann gibt es Applikationen mit Ventilen oder anderen Lasten, die 
selbst bei undefinierten Zuständen im Einschaltmoment Schäden anrichten 
können.

So könnte man auch schreiben, Motorad fahren ohne Helm ist ungefährlich
Nur im Falle des herunterfallens sollte man einen dabei haben.

Warum hat ein ULN2003/2803 einen pulldown und einen Basiswiderstand 
integriert? Nicht umsonst.

von Stefan S. (Firma: Student) (1991stefan1991)


Angehängte Dateien:

Lesenswert?

So die Transistoren sind nun PNPs. Wenn Basis=0 ist schalten sie, wenn 
Basis=1 ist sperren sie. Pullup Widerstände sind drin wie man sieht.
Ich glaub das müssts gewesen sein. Danke schonmal für die viele schnelle 
Hilfe.
Sieht denn noch jemand etwas, das nicht klappen könnte?!

von Dirk (Gast)


Lesenswert?

Deine PNPs sind verkehrt rum.

Emitter gegen +.

Collector gegen Last (gemeinsamer Anschluss der Digits)

von Stefan S. (Firma: Student) (1991stefan1991)


Angehängte Dateien:

Lesenswert?

so ich hoffe das isses nun:
PNPs richtig herum und ich hab die Widerstände R3 und R2 was kleiner 
gemacht.
Besonderen Dank an Dirk für die umfangreiche Hilfe!

von Falk B. (falk)


Lesenswert?

@  Stefan Slooten (1991stefan1991)

>PNPs richtig herum und ich hab die Widerstände R3 und R2 was kleiner
>gemacht.

Gut, man kann es aber auch übertreiben. Jetzt hast du (5-0,7)/160=27mA 
Basisstrom. Willst du ein Kraftwerk schalten? Ausserdem ist das mehr als 
10mA, was man so landläufig als brauchbar Dauerlast für einen IO angibt. 
Nimm 330 Ohm (=13mA) und alles ist OK.

Deine Beschriftungen sind immer noch nicht OK, C1, C2, Q3, Die Rs am 
ULN.

MFG
Falk

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.