LED im Emitterkreis

Gast #1376040
Guten Morgen,

ich möchte LEDs mit einem NPN-Transistor steuern. Ich verwende 
verschiedene Basiswiderstände um die Helligkeit zu varieren. Alle drei 
LED-Stromkreise sollen von je einem Transistor gesteuert werden. Daher 
habe ich die Masse aller LEDs gebrückt und im Emitterkreis eingebaut. Am 
Kollektor habe ich nur meine Spannungsversorgung.

Leider geht das so nicht, da mein Emitterpotential höher ist als das 
Basispotential (rund 5V). Wie bekomme ich das hin, das ich trotzdem den 
Transistor durchschalten kann? Fall das Problem nicht genügend 
beschrieben ist, kann ich den Schaltplan noch in den Anhang packen.

Fall alle Stricke reißen, muss ich zu jeder LED eine Masseleitung 
führen, un die LED dann mit in den Kollektorkreis packen.
(Firma: TravelRec.) Persönliche Seite #1376054
Die LED-Helligkeit über Basiswiderstände zu variieren ist nicht optimal, 
da jede Transistor eine andere Stromverstärkung hat und das Ganze auch 
temperaturabhängig ist. Womit steuerst Du die Transistoren denn an? Es 
ist recht einfach und noch dazu reproduzierbar, die LEDs mittels 
Pulsweitenmodulation in der Helligkeit zu steuern.
Gast #1376059
Ich steuere die Transistoren mit nem Atmega8 an. PWM ist das einfachste, 
aber ich habe keine Timer mehr übrig. Deswegen der Ausweg über die 
Basiswiderstände. Die Streuung der Bauteiltoleranzen ist nicht ganz so 
wichtig.
(Firma: TravelRec.) Persönliche Seite #1376086
Mach eine Software-PWM, die Du in den Timer-Interrupt eines bereits 
laufenden Timers einbaust. Ist echt kein Ding: Zählvariable in der ISR 
hochzählen, für jeden Ausgangspin eine eigene PWM-Variable anlegen. Die 
Jeweilige PWM-Variable mit der Zählvariable vergleichen, wenn kleiner, 
dann LED-Ausgang an, wenn größer/gleich dann LED-Ausgang an.
Gast #1376087
du brauchst doch für PWM nicht unbedingt weitere Timer nutze doch 
einfach einen vorhandenen timer und lasse über dessen interrupt ein 
register inkrementieren über 2werte kannst du nun den einschalt- und den 
auschaltmoment festlegen z.b.

timer0_overflow:
out    portb,    output
inc    counter
cp    counter,  tcounter
breq  setbit
cpi    counter,  0xE0
breq  clrbit

setbit:
cbr    output,    0x01
reti

clrbit:
sbr    output,    0x01
reti

tcounter - variable für die einschaltzeit

ich bin auch nur anfänger desshalb nicht schlagen wenn ich vermeidbare 
fehler gemacht habe ;)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.