LED toggle per Transistor

OP #2902621
Lesenswert?

Hab folgende Schaltung:

     |-----|   Transistor
5V --|__R__|--LED--- C   E------ GND
                       B
                       |
                       |
                       µC PinA0

mit diesem Code:

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

int main(void)
{
    DDRA = 0xff;

    while(1)
    {
      PORTA ^= (1<<PA0);
      _delay_ms(500);
    }
}

Der Transistor ist ein BCR135. Und die LED ist auch richtig gepolt. 
Anode an R und Kathode an C vom Transi.
Jetzt versteh ich nicht warum die LEd nicht leuchtet?
Hab sie auch schon ausgebaut und schau sie leuchtet also funktioniert 
diese. Den Transi hab ich auch gewechselt, also nehm ich an diese funkt 
auch.
Also kanns doch nur an dem code liegen, aber dieser ist meiner meinung 
nach richtig, oder....?

Gruß Rafi

P.S.: sorry aber anders krieg ich das kunstwerk oben nicht hin, hoffe 
das es trotzdem verständlich ist.
Gast #2902638
Lesenswert?

Woher weiß dein Code _delay_ms(500), wie schnell dr Prozessor ist ?

Der BCR135 ist ein Digitaltransistor mit eingebautem 
Basisvorwiderständen von 10k Ohm. In dieser anwendung (eine 20mA LED, 
IC/IB=20) hätte er aber maximal 3k3 haben sollen.
#2902720
Lesenswert?

Rafi Dafi schrieb:

> Hab folgende Schaltung:

<schnipp>

Wie groß ist R?

Leuchtet die LED wenn du C und E am Transitor kurzschließt? Leuchtet die 
LED, wenn du die Basis des Transistors auf 5V legst? (dazu den 
Controller aus der Fassung ziehen oder anderweitig die Verbindung nach 
PA0 unterbrechen)

> [C Code gesnipt]

Sollte funktionieren. Du hast auch den richtigen Controller eingestellt?

Was ist da noch an deinem Controller angeschlossen? Läuft der überhaupt? 
Taktversorgung? Fehlt vielleicht der 10K Widerstand von Reset nach +5V?


XL
OP #2902721
Lesenswert?

Helmut56 schrieb:
> Und wenn du PA0 einfach mal auf HIGH setzt, ohne ihn dann in deiner
> Schleife zu verändern?

Dann passiert auch nichts.
Hat den keienr schon mal diesen Fehler gesehen, ich hab das dumpfe 
Gefühl das es daran liegt.
Unexpected signature 0x00000102 (expected 0x001e9801)., ModuleName: TCF
(TCF command: Device:startSession failed.)

Tauchte bis jetzt auch nur 2 mal auf.
OP #2902772
Lesenswert?

Axel Schwenke schrieb:
> Wie groß ist R?

820ohm.

Axel Schwenke schrieb:
> Leuchtet die LED wenn du C und E am Transitor kurzschließt? Leuchtet die
> LED, wenn du die Basis des Transistors auf 5V legst? (dazu den
> Controller aus der Fassung ziehen oder anderweitig die Verbindung nach
> PA0 unterbrechen)
>
>> [C Code gesnipt]
>
> Sollte funktionieren. Du hast auch den richtigen Controller eingestellt?
>
> Was ist da noch an deinem Controller angeschlossen? Läuft der überhaupt?
> Taktversorgung? Fehlt vielleicht der 10K Widerstand von Reset nach +5V?

Ist alles in Ordnung. Bis auf die 10k am Reset.
Hab den Reset Pin vom µC auf einen Max811 mit 4k7 in Reihe ausgeführt. 
Dann hab ich noch einen 1k Widerstand vom ISP Reset Pin an dieselbige 
LEitung gelegt.

Max811--|---|----|--- RST Pin ISP
        |   |_1k_|
        |
        |---|----|--- RST Pin µC
            |_4k7|

Sollte zusätzlich noch ein 10k Pull-up an die REset Leitung?
#2902860
Lesenswert?

Rafi Dafi schrieb:
> Axel Schwenke schrieb:
>> Leuchtet die LED wenn du C und E am Transitor kurzschließt? Leuchtet die
>> LED, wenn du die Basis des Transistors auf 5V legst? (dazu den
>> Controller aus der Fassung ziehen oder anderweitig die Verbindung nach
>> PA0 unterbrechen)

Dazu schreibst du nix?

>> Was ist da noch an deinem Controller angeschlossen? Läuft der überhaupt?
>> Taktversorgung? Fehlt vielleicht der 10K Widerstand von Reset nach +5V?
>
> Ist alles in Ordnung.

Und das weißt du woher? Nur weil der µC sich programmieren läßt, muß er 
noch lange nicht laufen.

> Bis auf die 10k am Reset.
> Hab den Reset Pin vom µC auf einen Max811 mit 4k7 in Reihe ausgeführt.
> Dann hab ich noch einen 1k Widerstand vom ISP Reset Pin an dieselbige
> LEitung gelegt.
>
> Max811--|---|----|--- RST Pin ISP
>         |   |_1k_|
>         |
>         |---|----|--- RST Pin µC
>             |_4k7|
>
> Sollte zusätzlich noch ein 10k Pull-up an die REset Leitung?

Nein. Da der MAX811 einen Push-Pull Ausgang hat, zieht er Reset auch 
ohne Pullup auf H. Die Verbindung von ISP sollte allerdings direkt an 
den µC gehen. Den 1K Widerling braucht es dort nicht unbedingt.

Als Test solltest du mal ein Programm probieren, das PA0 einfach auf H 
setzt und dann nix mehr tut (Endlosschleife). Wenn dann die LED immer 
noch aus bleibt, würde ich sagen dein Controller läuft nicht an. Kann 
fehlender Takt sein. Oder irgendwas hält ihn im Reset.


XL

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