mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega8 PWM Leds


Autor: platine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

eins vorweg: Achtung Anfänger :)
Ich möchte mit einem Atmega8 einige (21 LEDs) per PWM langsam heller/ 
dunkler werden lassen, aufblinken usw (Stichwort Sternenhimmel).

Meine Rechnerche hat ergeben, dass der Atmega8 insgesamt 3 PWM Kanäle 
hat, einer davon wohl mit einer geringeren Auflösung. Daher die Zahl der 
LEDs - 21, so sollen an jedem PWM Kanal je 7 LEDs hängen, die sich dann 
analog verhalten.

Ich weiß ebenfalls, dass ich die LEDs nicht direkt an den PortPin hängen 
kann, sondern Transistoren (?) brauche.

Jetzt kommen die Fragen:
Welchen Transistor für die LEDs muss ich nehmen? Wie muss die Schaltung 
dafür aussehen?

Vielen Dank!

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
www.mikrocontroller.net/articles/Relais_mit_Logik_ansteuern
Schaltstufe für kleine Lasten, anstelle des Relais deine Leds.
Wie viele Leds du in Serie schalten kannst hängt von deiner Spannung ab.

Autor: platine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antwort.

Also verwende ich den BC337 als Q2, statt des Relais meine x Leds. R2 
hängt dann an dem PWM-Pin vom Atmega?

Welchen Widerstand müsste ich bei weißen LEDs nehmen, wenn 7 in Reihe 
geschaltet werden und mit 5v betrieben werden?

Alex

Autor: Eulerich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>  wenn 7 in Reihe geschaltet werden und mit 5v betrieben werden?

Wird nicht funktionieren. Oder haben die LEDs ne Vorwärtsspannung < 714 
mV?

Autor: platine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und bei 12v?

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es kommt, wie schon geschrieben, auf die Flußspannung der Leds an. Wenn 
du 2V je Led rechnest, dann gehen bei 5V maximal 2 davon.
Ich würde sie aber nicht an die 5V-Versorgung des Kontroller hängen. 
Eine geregelte Spannung ist da sicher nicht notwendig, wenn das Netzteil 
nicht gerade sehr mikrig ist.

Autor: platine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, dann würde ich für die LEDs einfach die 12v vom Netzteil abzweigen. 
Ich bräuchte dann "nur" noch die Widerstandswerte für den LED 
Vorwiderstand und den Wert für R2 am BC337

Viele Grüße
Alex

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
R2 hat 470 Ohm bis 1k, für die Vorwiderstände der Led muss ich wissen 
welche du nimmst, blaue haben eine höhere Flußspannung als rote oder 
grüne.
Wie willst du die Leds aufteilen, bei 12V gehen max. 5 in Serie. Wie 
groß soll der Ledstrom maximal sein.

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum hängst du dich nicht einfach an
Beitrag "Machbarkeit - LED-Sternenhimmel mit AVR?"
dran?

Es ist ja nun nicht so, als ob du der erste bist,
der so was bauen will.

Autor: platine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Hubert,

ich will weiße LEDs benutzen - habe auf die Schnelle bei Reichelt 
geguckt, es scheint keine low current in weiß zu geben. In dem Fall 
würde ich dann blaue nehmen.

Wenn auch mit low current nicht mehr als 5 gehen, dann sollen´s 5 pro 
Strang, also insgesamt 15 sein.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
platine schrieb:

> Wenn auch mit low current nicht mehr als 5 gehen, dann sollen´s 5 pro
> Strang, also insgesamt 15 sein.

Du scheinst da ein Missverständnis zu haben.
Interessant ist in erster Linie nicht der Strom, der durch die LED geht.
Interessant ist in erster Linie die Flussspannung.
Eine rote LED braucht zb mindestens 1.7V (so ungefähr)
Wenn du also 5V hast, kannst du maximal 2 davon in Serie schalten, weil 
2*1.7 = 3.4 und das liegt noch unter den 5V. Bei 3 hättest du schon 
3*1.7 = 5.1 und bist damit über den zur Verfügung stehenden 5V.

Aus der Differenz von 3.4V (bei 2 roten LED) und den 5V dimensioniert 
man dann den Widerstand, so dass durch die LED ein bestimmter Strom 
fliesst. Der ist dann bei Low-Current LED natürlich geringer als bei 
normalen.

Aber grundsätzlich ändert Low-Current nichts daran, wieviele LED du mit 
einer bestimmten Spannung versorgen kannst. Diese Anzahl ist 
technologieabhängig und ist bei LED gleicher Farbe in etwa immer gleich, 
egal wieviel Strom sie brauchen um hell zu leuchten. Alle roten LED 
wollen ca. 1.7V, egal ob Low-Current oder nicht.

Grüne LED liegen auch bei ca. 1.7V. Blaue sind aber signifikant höher. 
Und auch weiße haben eine andere Flusspannung.


> dann sollen´s 5 pro
> Strang, also insgesamt 15 sein

Mann kann ja zb auch 2 5-Led Stränge parallel an einen PWM Kanal 
schalten und hatt dann 10 LED die von einer PWM gesteuert werden.
Das ist also nicht der limitierende Faktor. Wenn du 21 LED willst, dann 
geht das auch. Schlimmstenfalls muss man eben 3 Stück 2-LED-Stränge 
parallel schalten (jeder Strang mit seinem eigenen Widerstand) und den 
Schalttransistor entsprechend auslegen.

Autor: platine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok jetzt fange ich an zu verstehen :)

Bleiben wir bei roten LEDs:
Spannungsversorgung 12v, Flußspannung 1.7v.
6*1.7V = 10.2 V

Also können an einem Strang 6 rote LEDs in serie hängen. Aber wie 
berechne ich nun den Vorwiderstand?

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
12V - 10,2V = 1,8V


R = U/I  = 1,8V / 20mA = 90 Ohm


R = U/I  = 1,8V / 2mA = 900 Ohm

usw...


Axel

Autor: platine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke!

Wie berechnet man R2 für den Transistor?

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für diesen Transistor nimmt man 2mA Basisstrom, das sind 5V / 2mA ergibt 
2500 Ohm.
Du kannst das natürlich auch genau rechnen.
Max. Kollektorstrom durch Stromverstärkung des Transistor, ergibt den 
notwendigen Basisstrom.
Steuerspannung minus Spannungsabfall an der Basis/Emitterdiode durch den 
Basisstrom ergibt den Basiswiderstand. Für Schaltzwecke nimmt man dann 
die Hälfte des Widerstandes.

Autor: platine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok!

Also wenn die LEDs in meinem Fall mit 12v versorgt werden, nehme ich 12 
V / 2mA = 6kOhm als R2 am Transistor?

Autor: Michael M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
platine schrieb:
> Wie berechnet man R2 für den Transistor?
Basiswiderstand

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
platine schrieb:
> Ok!
>
> Also wenn die LEDs in meinem Fall mit 12v versorgt werden, nehme ich 12
> V / 2mA = 6kOhm als R2 am Transistor?

Nein.
Die Basis hat ja nichts mit den 12V zu tun.
Die Basis hängt am µC Pin und der liefert 5V.
Wenn du also bei 5V einen Stromfluss von 2mA haben willst, dann brauchst 
du

  R = U / I  = 5 / 0.002 = 2500 Ohm

Das ist jetzt zwar stark vereinfacht, aber als Modell geht es schon:

Du hast 2 Stromkreise!
Der eine ist der Stromkreis, der aus µC-Pin - Basiswiderstand - 
Transistor und Masse besteht
Und der andere ist der Stromkreis der aus 12V - Vorwiderstand - LED - 
Transistor und Masse besteht.
Der eine steuert den anderen (wie bei einem Relais)

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee,
aus den Controller kommen 5V. Mit dieser Spannung geht es zur Basis des 
Transistors.

Wie schon oben von Hubert geschrieben: 5V / 2mA ergibt 2500 Ohm.



Axel

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Übrigens stimmt die Rechnung nicht ganz, weil ja auch am Transistor 
etwas Spannung 'hängenbleibt'. Die 12V teilen sich also auf in
  Spannung die am Widerstand abfällt
  Spannung die an den LED abfällt
  Spannung die am Transistor abfällt

Die Spannung an den LED ist eine konstante
Die Spannung am Transistor ist auch konstant

Ihre Summe muss unter 12V liegen

Die Differenz der Summe zu 12V fällt am Widerstand ab und der wiederum 
wird so dimensioniert, dass die richtige Menge Strom fliesst.

Autor: platine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok! Kapiert!

Zwar einiges vereinfacht, aber reicht erstmal für nen Laien ;)
Vielen Dank für die kompetente Hilfe!

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann man die drei PWM kanäle überhaupt parallel zueinander nutzen (mit 
verschiedenen PWM signalen)?

den letztlich sind in dem chip doch nur 2 counter und somit sollten auch 
max. zwei unterschiedliche pwm signale möglich sein die durch den 
gleichen interrupt gesteuert werden (overflow, compare usw.)

Autor: platine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm dann nehme ich lieber den Atmega644P-20PU, der hat laut Beschreibung 
6 PWM Kanäle. Kann mann alle parallel nutzen?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank schrieb:
> kann man die drei PWM kanäle überhaupt parallel zueinander nutzen (mit
> verschiedenen PWM signalen)?
>
> den letztlich sind in dem chip doch nur 2 counter und somit sollten auch
> max. zwei unterschiedliche pwm signale möglich sein die durch den
> gleichen interrupt gesteuert werden (overflow, compare usw.)

Kann man.
Du hast
 am Timer1  2 PWM-Kanäle
 am Timer2  1 PWM-Kanal

Autor: Vorname Nachname (tys)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
18 Kanal 8 bit PWM mit ATMEGA8, 
Beitrag "PWM- Controller 18- Kanal TWI- Bus Proj."
Lässt sich per i2c ansprechen, ist wundervollst dokumentiert und 
funktioniert auch!

Autor: platine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe noch eine grundsätzliche Frage:

mit den PWM Kanälen kann ich ja dann meine "Säulen" ein und ausblenden. 
Wie könnte man jetzt noch realisieren, dass einzelne LEDs direkt 
aufleuchten können?

Die LEDs kann man ja nicht parallel schalten, dafür reichen die PWM 
Kanäle ja nicht.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann muss man die PWM "zu Fuss" machen
Stichwort: Software-PWM

Autor: platine (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tys:
Ui cool, danke für den Link!

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siehe Soft-PWM

MFG
Falk

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Karl heinz Buchegger

>Kann man.
>Du hast
> am Timer1  2 PWM-Kanäle

ich wusste nicht das es zwei "compare register" gibt..
das sind oc1a und oc1b richtig?

Autor: Daniel R. (Firma: none until further notice) (dg_nemesis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vorsicht auch Anfänger ^^

1. der Atmega8 hat 3 Counter ^^... aber ja zuwenig Hardware PWM- fähige

2. ich bin sicher der bursche "platine" macht des mit "PWM in Software" 
wie hier:
http://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM
erklärt.

Mit Transistoren größere lasten Schalten:
http://www.mikrocontroller.net/articles/AVR-Tutori...
Unter punkt 8. Im Tutorial werden BC 338 Transistoren genommen (NPN) mit 
1kOhm Vorwiderstand im Kapitel 7Segment Anzeigen.

platine muss halt gucken wieviel Leistung über sein Transistor gehen 
muss
wenn er X LEDs dranhängen will BC 338 hat Max 0,625W und max 0,5A.
Dahinter kann platine LEDs auch paralel anklemmen bei 5V wird hier
http://www.mikrocontroller.net/articles/AVR-Tutori...
1kOhm als Vorwiderstand genommen.
Also wenn ich nicht irre kann platine einen größeren Transistor nehmen 
und dann auch 7 LEDs dranhängen weil beim BC338 / 337 wegen der Leistung 
nur 6 gehen dürften...(20mA s.O. * 5V = 0,1W  0,625W / 0,1W = 6) und 
(20mA*6=120mA <0,5A => i.O)





Weiß jemand zufällig wie man mehr üblicherweise größere Leistungen 
stellt ??
Also für sehr viele LEDs oder einen Motor (15 - 50W) natürlich "dimmbar 
mit pwm)
IUch dachte vielleicht gehts das PWM-Signal mit einem RC-Glied zu 
glätten also quasi Analog zu machen und dann mit einem P-Regler (1 
Operationsverstärker mit 2 Widerständen) auf 0-12V zu bringen..
bloß bekomme ich so keine 50W durch den Operationsverstärker ... oder 
wie geht das...????
(ein Relais macht wohl kaum eine PWN mit ^^ auch wenn die Leistung dort 
kein Thema wäre)
oder hilft da nur ein großer Transistor wie dieser:
http://www.reichelt.de/?;ACTION=3;LA=2;GROUP=A127;...

viele Grüße aus Hamburg

Autor: Daniel R. (Firma: none until further notice) (dg_nemesis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
einzelne LEDs aufleuchten lassen
Kannste du dir recht leicht überlegen, kommt natürlich drauf an, wie du 
sie geschaltest hast ... nehmen wir einmal an du hast wie oben 
beschrieben alle in reihe geschaltet an 12V mit einem 9Ohm Vorwiderstand 
R1 vor der Reihe:

Dann könntest du z.B. zwischen alle LED je eine Diode setzen.
Vor jeder LED eine verzweigung setzen mit einem 1kOhm R2 oder wie oben 
genannt(2,2k weil 2,5 kannste gleub ich nicht kaufen)
und hinter der Led noch eine verzweigung an den beiden verzweigungen 
kommen dann 5V geschaltet

   =>  = Diode


 GND ---R1-- => -0-LED-0 => -0-LED-0 => -0-LED-0 => -0-LED-0- 12V+
                 |     |     |     |     |     |     |     |
                 R2    |     R2    |     R2    |     R2    |
                 |     |     |     |     |     |     |     |
                GND   5V+   GND   5V+   GND   5V+   GND   5V+

                       |           |           |           |
 z.B. schalten       BC338       BC338       BC338       BC338

Wenn du mehr Ausgänge brauchst zum schalten kannst du Schieberegister 
nehmen

Autor: Daniel R. (Firma: none until further notice) (dg_nemesis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.mikrocontroller.net/articles/AVR-Tutori...
Punkt 1.5

Achja keine Garantie auf Funktion und keine Haftung was meine Beiträge 
angeht
Der Leser/Benutzer ist selbst zum Denken angehalten und sollte 
vorschläge von meiner Person nur als Anregung verstehen! ^^

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
größere lasten > mosfet mit treiber

pwm glätten ist so einfach nicht möglich

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.