Fehler in Schaltung

Gast #2504322
Lesenswert?

Hallo,
ich habe mir eine Schaltung aufgebaut, die einen mir nicht ganz 
nachvollziehbaren Fehler aufweist.

Schaltung:
Über drei Ausgänge eines ICs wird jeweils ein Transistor geschaltet.
Über diese werden jeweils 5V geschaltet. Am Kollektor hängen LEDs mit 
Vorwiderständen in Parallelschaltung.
Über den einen Ausgang werden so rote, über den zweiten blaue und über 
den dritten grüne LEDs geschaltet.

Resultat:
Schalte ich den Ausgang 3 an, leuchten die grünen LEDs.
Schalte ich den Ausgang 2 an, leuchten die blauen LEDs.
Schalte ich den Ausgang 1 an, leuchten die roten UND die grünen LEDs.

Wäre eine Leitung Kurzgeschlossen, würde ja auch bei Ausgang 3 beide 
Farben leuchten.
Also wo kann dieser Fehler herkommen?

Mfg, Mark
Gast #2504423
Lesenswert?

Basiswiderstände gibt es natürlich.
Der IC ist ein Atmega 644PU20.
Alle LEDs laufen über die gleiche Versorgungsspannung.
Wären Rot und Grün versehentlich in Reihe geschaltet, würden sich die 
roten ja kurzschließen, oder nicht?

Ich hab hier leider keine Möglichkeit, Programme zu installieren.
Gibt es einen Online Schaltplanzeichner?

Mfg
#2504430
Lesenswert?

Es gibt die schönen ASCII Zeichnungen, die du hier häufig siehst;-)
(Es gibt von sehr vielen Programmen die -Portable Version, LibreOffice, 
GIMP, selbst KiCAD gibt es wohl=) 
http://sourceforge.net/projects/kicad-portable/files/)

Ich versuche kurz zu zeichnen was ich meine...
1
A -------|>(rot)---+--|>(grün)----- GND
2
                   |
3
                   B

Wenn du A anschaltest leuchten rot und grün, wenn du B anschaltest 
leuchtet nur grün, hast du ggf. diese Schaltung vor dir, also ganz 
einfach einen Fehler in deiner Schaltung?



mfg Andreas
Gast #2504607
Lesenswert?

Ich hab mal eine grobe Skizze mit Paint angefertigt.
Sie ist leicht vereinfacht, es hängen mehrere LEDs mit jeweils einem 
Vorwiderstand am Transistor.
Werte hab ich gerade keine im Kopf, kann ich aber nachreichen, wenn 
welche erforderlich sein sollten.

Ich muss wohl alle Anschlüsse nochmal überprüfen.
Übrigens: Bei "Rot" liegen annährend 5V an der roten LED plus 
Vorwiderstand an. An der grünen LED mit Vorwiderstand liegen lediglich 
2,x V an.

An dem Programm sollte es also auch nicht liegen.
Es ist auf das aller wesentlichste beschränkt, also Pins als Ausgang 
definieren und Pins auf logisch 1 setzen, sonst nichts.

Mfg
Angehängte Dateien:
Moderator #2504649
Lesenswert?

Mark schrieb:
> An dem Programm sollte es also auch nicht liegen.
> Es ist auf das aller wesentlichste beschränkt, also Pins als Ausgang
> definieren und Pins auf logisch 1 setzen, sonst nichts.

Die meisten Fehler macht man bei Dingen, die einem leicht vorkommen :)

Vielleicht setzt du die Pins der LEDs, die nicht leuchten sollen, nicht
im PORT-, sondern im DDR-Register auf 0. Dann ist der Ausgang deakti-
viert, und der interne Pullup ist aktiviert, was die über Transistoren
angesteuerte LEDs ebenfalls zum Leuchten bringt. Das war aber nur ein
Beispiel, was man in der Eile alles falsch machen kann.

Ansonsten: Miss mal im Problemfall (Rot und Grün leuchtet, obwohl nur
Rot leuchten soll) die Spannung an allen roten Punkten gegen GND. Da
wird dir (oder jemand anderem hier) sicher so etwas wie Schuppen von
den Augen fallen.
Angehängte Dateien:
Gast #2504908
Lesenswert?

Ich werde die Schaltung heute Abend noch einmal durchtesten und den Code 
mit anfügen.
Vielen Dank für die vielen Ratschläge und Lösungsansätze!
Ich denke auch, dass es einfach ein kleiner Fehler in der Verkabelung 
sein könnte, da diese bei vielen LEDs doch recht unübersichtlich ist.

Was mir gerade einfällt:
Könnt es auch sein, dass der Transistor bei den grünen LEDs kaputt ist 
und daher eine dauerhafte Spannung von 2,x V an den LEDs anliegen lässt?
Ich weiß, dass dies dann auch der Fall wäre, wenn nur die blauen LEDs 
leuchten, aber vielleicht ist das ja so und ich hab es aufgrund der 
Intensität des blauen Lichts nicht gesehen (Rot, Grün und Blau liegen 
sehr dicht zusammen).
Ich werde dies heute Abend ebenfalls mal überprüfen!

Mfg
#2504930
Lesenswert?

Yalu X. schrieb:

> Ansonsten: Miss mal im Problemfall (Rot und Grün leuchtet, obwohl nur
> Rot leuchten soll) die Spannung an allen roten Punkten gegen GND. Da
> wird dir (oder jemand anderem hier) sicher so etwas wie Schuppen von
> den Augen fallen.

Ich würde noch drei rote Punkte hinzufügen, nämlich unmittelbar an den 
Emittern der Transistoren, insbesondere während die LEDs leuchten.
Da sollte zwar Massepotential liegen, aber vielleicht ist dazwischen
doch eine Unterbrechung.  :-)
Gruss
Harald
Gast #2505041
Lesenswert?

Warum so kompliziert? Löte die Basiswiderstände am Prozessor ab und lege 
sie testweise an +5V. Danach ist es klar, ob es ein Soft- oder 
Hardwarefehler ist.
Ein Pegelprüfstift sollte auch nicht fehlen.
Gast #2509099
Lesenswert?

So, ich meld mich mal wieder.

Ich hab festgestellt, dass es grundsätzlich noch ein Problem in der 
Schaltung gibt.
Ich habe mal alle LEDs über den IC eingeschaltet.
Während an Rot und Blau (inklusive Widerstand) an nährend 5V anliegen, 
liegt an Grün nur etwa 2,5V an. Der Rest liegt direkt am Transistor an.
Vom Ausgang des IC zur Masse liegen bei allen fast 5V, bei den "grünen" 
Ausgängen aber nur ca. 0,72V.

Kann man anhand dessen schon sagen, ob der Transistor defekt ist, oder, 
ob es am IC liegt?
Kann es vielleicht sein, dass der Basiswiderstand überbrückt wurde und 
dadurch der Transistor zerstört wurde?

(Falls wichtige Daten fehlen, sagt bitte Bescheid. Ich habe habe erstmal 
keine weiteren Werte aufgeschrieben, da sich die Situation ja sehr 
verändert hat.)

Mfg
Gast #2509155
Lesenswert?

Hier nochmal das Programm:
1
#include <avr/io.h>
2

3
int main( void )
4
{
5

6
DDRA = 0x1F;
7
DDRB = 0x1F;
8
DDRC = 0x1F;
9

10
PORTA = 0x1f;
11
PORTB = 0x1f;
12
PORTC = 0x1f;
13

14
while(1)
15
return 0;
16

17
}

Mfg
Gast #2509214
Lesenswert?

Hallo,

Rb = 1/4W, 5%, 220 Ohm

Transistor = BC 337-40

Rvrot = 150 Ohm
Rvblau = 100 Ohm
Rvgrün = 100 Ohm

Angeschlossen sind die Basiswiderstände an PA0, PB0 und PC0.
PA1-PA4, PB1-PB4 und Pc1-PC4 sollen nachher genauso angeschlossen 
werden.
Daher Ist alles auf 0x1F geöffnet und geschaltet.

Falls das Datenblatt des IC weiterhilft:
http://www.atmel.com/dyn/resources/prod_documents/doc2593.pdf

Es soll ja keiner seine kostbare Zeit mit suchen verbringen, wenn ihr 
mir schon so gut zur Seite steht. :)
Gast #2509226
Lesenswert?

Michael Roek schrieb:
> Warum so kompliziert? Löte die Basiswiderstände am Prozessor ab und lege
> sie testweise an +5V. Danach ist es klar, ob es ein Soft- oder
> Hardwarefehler ist.

Da alles ein wenig verbaut ist (ich weiß, es ist kein gutes 
Schaltungsdesign, welches ich gewählt habe) würde ich nach Möglichkeit 
darauf verzichten, die Widerstände auszulöten.

Aber, da das Programm ja hier zu sehen ist, kann man einen 
Softwarefehler auch so erkennen, oder nicht?
Vielleicht liege ich ja falsch, aber mir wäre in diesem Programm kein 
Fehler bekannt, der dieses Resultat erzeugen würde.

Natürlich könnte ich ein Bauteil nach dem anderen testen, aber besser 
wäre es, wenn man so vielleicht schon sehen könnte, woran es liegt.

Wenn keiner was dazu sagen kann, bleibt mir natürlich nichts anderes 
übrig, aber ich hoffe noch, auf Erfahrungswerte. :)

Mfg
Gast #2509247
Lesenswert?

kann es sein das du die widerstände falsch ausgerechnet hast?
für die leds würde ich bei 5volt Netzspannung 100ohm als widerstand 
nehmen,
als basis widerstand würde ich lass mich nicht lügen zwischen 1k und 
1.5k nehmen das kommt aber auf deinen transistor an.
Gast #2509286
Lesenswert?

jan schrieb:
> kann es sein das du die widerstände falsch ausgerechnet hast?
> für die leds würde ich bei 5volt Netzspannung 100ohm als widerstand
> nehmen,
> als basis widerstand würde ich lass mich nicht lügen zwischen 1k und
> 1.5k nehmen das kommt aber auf deinen transistor an.

Die Vorwiderstände waren bei den LEDs dabei.
Für Blau und Grün sind sie ja zumindest 100 Ohm groß.

Beim Basiswiderstand habe ich mich hier im Forum informiert, wo mir nach 
letztendlich 220 Ohm nahgelegt wurden.

Bei Blau und Rot funktioniert es ja auch ohne Probleme.

Könnte es denn sein, dass der Basiswiderstand versehentlich 
kurzgeschlossen wurde und es den Transistor zerschossen hat, der jetzt 
nur noch als Widerstand fungiert?
Oder hätte das andere Auswirkungen?

Mfg
Moderator #2509287
Lesenswert?

Da fällt mir gerade etwas ein, was häufig vergessen wird: Hast du den
JTAG gedisabelt? Der beeinflusst zwar nur PC2-PC5, stört aber spätestens
dann, wenn du dort weitere Dinge anschließt, was du ja vor hast.

Mark schrieb:
> Vom Ausgang des IC zur Masse liegen bei allen fast 5V, bei den "grünen"
> Ausgängen aber nur ca. 0,72V.

Bist du sicher, dass der Basiswiderstand für grün 220Ω und nicht z.B.
2,2Ω hat? Welches ist der "grüne" Ausgang? Ist das PC0? Ist der
vielleicht defekt? Hast du einen zweiten Controller, den du testen
könntest? Oder kannst du eine LED (mit dem ganzen Transistorgedöns) mal
an PC1 testen?

Und wie Jan schon schrieb: 220Ω ist recht wenig für die Basiswiderstän-
de. Da fließt ein Basisstrom von 20mA, der LED-Strom ist auch nicht
höher. Du könntest die LEDs also genauso gut direkt am µC betreiben.
Lass die Transistoren auch etwas tun und mach die Basiswiderstände
mindestens um den Faktor 10 größer. Trotzdem erklärt das aber nicht die
Fehlfunktion.
Gast #2509353
Lesenswert?

Yalu X. schrieb:
> Da fällt mir gerade etwas ein, was häufig vergessen wird: Hast du den
> JTAG gedisabelt? Der beeinflusst zwar nur PC2-PC5, stört aber spätestens
> dann, wenn du dort weitere Dinge anschließt, was du ja vor hast.

Bei den Fuses hab ich nur den CKDIV8 verändert.
JTAG werd ich dann auch noch disablen.

> Bist du sicher, dass der Basiswiderstand für grün 220Ω und nicht z.B.
> 2,2Ω hat?

Es sind überall die gleichen Basiswiderstände verbaut, außer, Reichelt 
hätte derbst Mist gebaut. ;)

>Welches ist der "grüne" Ausgang? Ist das PC0?

Ja, das müsste PC0 sein.

> Ist der vielleicht defekt? Hast du einen zweiten Controller,
> den du testen könntest?

Möglich, dass dieser defekt ist. Ich habe aber leider keinen Ersatz IC 
zur Hand.

>  Oder kannst du eine LED (mit dem ganzen Transistorgedöns) mal
> an PC1 testen?

Werde ich das nächste mal einmal testen.

Wie sieht es denn mit meiner Theorie aus?
Unsinn oder könnte es eine Erklärung sein?

Mfg
Gast #2509433
Lesenswert?

so wie ich das sehe braucht dein transistor wirklich 1A reichelt gibt 
800mA conrad 1A wobei ich jetzt das 16er model genommen habe,
nimm doch einfach einen BC547B und dann einen 1,5k basis widerstand, das 
ist zufällig auch der wie es hier im tutorial beschrieben wird, der 
benötigt nur 20 mA, zudem ist dieser transistor billiger ;)
Gast #2509447
Lesenswert?

jan schrieb:
> so wie ich das sehe braucht dein transistor wirklich 1A reichelt gibt
> 800mA conrad 1A wobei ich jetzt das 16er model genommen habe,
> nimm doch einfach einen BC547B und dann einen 1,5k basis widerstand, das
> ist zufällig auch der wie es hier im tutorial beschrieben wird, der
> benötigt nur 20 mA, zudem ist dieser transistor billiger ;)

Das nächste mal werde ich mich vielleicht für diesen entscheiden.
Doch jetzt habe ich mir ja einige dieser Transistoren besorgt, ich würde 
mich ärgern, wenn ich sie dann nicht benutzen könnte. ;)
Gast #2509493
Lesenswert?

^|^ schrieb:
> Die paar Zeilen nennst du Programm?
> Glaube kaum daß das so funzt.

Was ist es den sonst?
Es ist, wie ich sagte, nur zum testen und kein Programm, welches später 
im Einsatz ist.
Warum sollte es denn nicht funktionieren?
Ich lasse mich natürlich gerne belehren, wenn etwas fehlen sollte!

Mfg
Moderator #2509635
Lesenswert?

jan schrieb:
> nimm doch einfach einen BC547B

Wieso denn das? Mark hat einen BC337-40. Der hat sogar eine höhere
Stromverstärkung als der BC547B (da hättest du schon einen BC547C
vorschlagen müssen). Für die 20mA LED-Strom reicht das locker. Auch wenn
Mark auf hellere LEDs mit 100mA oder 200mA umstellen möchte, ist der
BC337-40 noch ausreichend, während der BC547 schon deutlich in die Knie
geht.

> zudem ist dieser transistor billiger ;)

Nicht einmal das. Bei Reichelt kosten beide 4 Cent :)
Gast #2509637
Lesenswert?

Mark schrieb:

> Es ist, wie ich sagte, nur zum testen und kein Programm, welches später
> im Einsatz ist.
> Warum sollte es denn nicht funktionieren?
> Ich lasse mich natürlich gerne belehren, wenn etwas fehlen sollte!

Das Programm sollte am Ende in einer Endlosschleife laufen. bei dir wird 
die Main aber sofort mit return 0 verlassen. Wie wärs mit einem ; hinter 
dem while (1) ?
Gast #2509671
Lesenswert?

Bei 220 Ohm Basisvorwiderstand hast du etwa 20 mA und das ist etwa die 
Größe der Last. Das ist für deinen Prozessor zu viel.
Wer hat dir denn diesen Käse erzählt?
Und laß dich nicht von der zig-fachen Übersteuerung der Basis verrückt 
machen. Die braucht man nur in der Digitaltechnik, um steile Flanken zu 
bekommen.
Die Transis haben heute meist eine h21e von >300. Versuche es mal mit 
4,7K und du wirst sehen, das deine LED bei 20 mA schön leuchten.
Gast #2509727
Lesenswert?

Yalu X. schrieb:

> Nicht einmal das. Bei Reichelt kosten beide 4 Cent :)

dann werde ich mich im datenblatt verguckt haben schon alleine weil den 
ich egsehen ahbe 50cent gekostet hat :/
habe auch den obrigen Beitrag nicht gesehen.
Sorry das wird dann wohl mein fehler gewesen sein.

ist den kein Elektroladen bei dir um die Ecke? o

Naja und nochmal zum code, ich habe dir mal ein delay eingefügt, 
eventuel klappt es ja besser wenn die anderen Ports ausgeschaltet sind 
mein code geht jetzt jeden Port einmal seperat durch.

#include <avr/io.h>
#include <util/delay.h>

int main()
{
DDRA = 0x1F;
DDRB = 0x1F;
DDRC = 0x1F;

while(1)
{
PORTC = 0x00;
PORTA = 0x1f;
_delay_ms(100);
PORTA = 0x00;
PORTB = 0x1f;
_delay_ms(100);
PORTB = 0x00;
PORTC = 0x1f;
_delay_ms(100);
}


return 0;

}
Persönliche Seite #2509733
Lesenswert?

Muss ich mich wiederholen:

>
Warum so kompliziert? Löte die Basiswiderstände am Prozessor ab und lege
sie testweise an +5V. Danach ist es klar, ob es ein Soft- oder
Hardwarefehler ist.
<


Tus doch einfach...... wenn es keine SMD Widerstaende sind, knipst Du 
ein Ende durch und machst den Test....anschliessend einen Loetpunkt 
drauf.

Oder ziehst den uC aus der Fassung!

Warum faengst Du nicht mit dem einfachsten an?

Und BC337 ist super....den benutze ich fuer (fast) alles!


Gruss

Michael
Gast #2511080
Lesenswert?

mit einem Logik-Tester oder Pfüfstift mit LEDs drin (ähnlich Duspol) 
hätte ich das schon vor zig Tagen herausbekommen,
wie man daraus so einen Elefanten > Aufwand machen kann?
aber Übung macht bekanntlich den Meister !

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren