PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Superhelle LED an Atmega16 anschließen



robotfreak
12.11.2005, 15:58
Hallo,

ich habe ein paar ganz einfache Fragen:
1. Kann ich die LED "LED 5-4500 RT" von Reichelt an einen Atmega16 anschließen? Im Datenblatt steht dass die Forward Voltage maximal 2,5 Volt sein darf und der AVR gibt ja an einem Pin 5V aus. Bei maximum Ratings steht aber wieder Reverse Voltage 5V. Geht es jetzt oder nicht?
2. Welchen Vorwiderstand muss ich nehmen? DC Forward Current darf maximal 30mA sein. Der AVR verträgt an einem Port maximal 40mA, richtig?
Oder brauche ich doch einen Transistor? Die LED soll per PWM dimmbar sein. Daher wird sie in hohen Frequenzen blinken, hält der Atmega16 das aus?

Vielleicht lerne ich ja mal irgendwann die Datenblätter richtig zu verstehen. :D

SprinterSB
12.11.2005, 16:06
Ein AVR liefert nur 20mA. Er kann auch mehr, aber garantiert wird das nicht mehr.

Bei I_F=30mA und V_F=2.5V wäre das ein Vorwiderstand von ca 83 Ohm.
Du nimmst dir zwei Ports und an beide 160 Ohm Vorwiderstand, dann an die LED. Oder 150 Ohm und 180 Ohm.

robotfreak
12.11.2005, 16:32
Ich will noch mehrere LEDs anschließen, daher kann ich nicht für jede 2 Ports nehmen.
Hibt es keine andere Möglichkeit? :-k

RHS
12.11.2005, 16:40
Du könntest einen Transitor nehmen (für eine LED) oder ein ULN2803 um mehrere LED's anzusteuern. Dann hast Du auch keine Probleme mit den AVR-Ports.

Gruß: - Reinhard -

Ratber
12.11.2005, 16:41
Hallo,

ich habe ein paar ganz einfache Fragen:
1. Kann ich die LED "LED 5-4500 RT" von Reichelt an einen Atmega16 anschließen? Im Datenblatt steht dass die Forward Voltage maximal 2,5 Volt sein darf und der AVR gibt ja an einem Pin 5V aus. Bei maximum Ratings steht aber wieder Reverse Voltage 5V. Geht es jetzt oder nicht?
2. Welchen Vorwiderstand muss ich nehmen? DC Forward Current darf maximal 30mA sein. Der AVR verträgt an einem Port maximal 40mA, richtig?
Oder brauche ich doch einen Transistor? Die LED soll per PWM dimmbar sein. Daher wird sie in hohen Frequenzen blinken, hält der Atmega16 das aus?

Vielleicht lerne ich ja mal irgendwann die Datenblätter richtig zu verstehen. :D


Also Schritt für Schritt:


Die Maximum Ratings gelten nur als absolutes Maximum mit verminderter Lebensdauer.

Nebenbei gesagt steigt zwischen 20 und 30mA die Leuchtstärke nur noch wenig an aber die LED verbrät die Leistung stark steigend in form von wärme.Lohnt also nicht.
Nominal sind 20mA und daran solltest du dich auch halten.


Dann die "Reverse Voltage" ist die Maximale Spannung die du an die LED in Sperrichtung (Anders gepolt) anlegen darfst ohne das sie durchbricht.
Hat mit der Brennspannung nix zu tun.


Der Strom ist maßgeblich und die Spannungsangaben nur in etwa angegeben (Minimum bis Maximum) also nimm den angegebenen Normalwert.
Also 1.85V
Der Vorwiderstand würde also 157.5 Ohm (Nächster Normwert 160 Ohm) mit mindestwns 0.125W (Nimm Standardwert 0.25W)

Die meisten neueren AVR liefern max 40mA pro Port aber nur Maximal 200mA für den gesammten Controller.
Also bei maximal 9 LED's a 20mA ist Ende (die Restlichen 20mA reservieren wir bitteschön für den Controller selbst)

Wenn du mehr schalten willst dann biteschön über Treiber (Einselne Transistoren oder Chip zb. ULN2803)


Zu PWM:

Denk drann das der M16 maximal 4 PWM Ausgänge in Hardware hat.
für mehr mußte das in Software-PWM realisieren.



Edit: Yo,zulange getippert.

Luke17
12.11.2005, 16:43
Eine einfache möglichkeit wäre: Du schaltest einfach eine Treiberstufe (z.B ULN2803A) zwischen deinem AVR und den LED's.
Die Treiberstufe besteht aus Darlington-Transistoren die den Strom ggf. verstärkt.

mfg Lukas

Ratber
12.11.2005, 16:47
Ja,Viermal ULN2803 hintereinander kann nicht verkehrt sein '-)

SprinterSB
12.11.2005, 16:47
Belastbar sind die AVR-Ports bis 40mA, ohne bleibende Schäden zu verursachen. Garantiert geliefert werden aber wie gesagt nur 20mA (bei 5V). Also mal 100 oder 91 Ohm ran und gucken was passiert ;-)

Zusätzlich gibt es zahlreiche Einschränkungen an die Maximalströme am AVR insgesamt und für die einzelnen Ports.

Alternativ die LED bei 20mA betreiben, da sind die auch schon mächtig hell.
Oder nen Transi. Wenn es mehr werden sollen, ist evtl ein ULN2803 oder so platzsparender, und man muss sich keine Gedanken um die Maximalströme am AVR machen.

robotfreak
12.11.2005, 17:00
Von den LEDs leuchtet immer nur eine, daher komme ich mit 20mA hin (in einer Matrix).

Aber wie komme ich an 1,85V ? Brauche ich noch einen Spannungsregler von der uA78er Serie den ich dann per Transistor mit den Ports verbinde?

Ratber
12.11.2005, 17:10
Offensichtlich war mein Post dann doch zu klein ](*,) :shock: :cheesy:


Also nochmal langsam:


5V kommen vom Port
1.85V ist die Typische Brennspanung für die LED.
20mA der Nennstrom der LED.
Folglich muß die Differenz von 5V-1.85V=3.15V irgendwo bleiben.

Gängig ist ein Widerstand.
Da bei einer Reihenschaltung der Strom überall gleich ist so ist er es auch im Vorwiderstand.
wir haben Spannung und Strom also können wir nach dem Ohmschen Gesetz den Widerstand ausrechnen.
R=U/I also 3.15V/0.02A=157.5 Ohm. (Nächster Normwert 160 Ohm)
Leistung: P=U*I also 3.15V*0.02A=0.063W oder 63mW
Ein Widerstand der 0.125W Reihe wäre ausreichend.
Einer mit 0.25W ist gängiger (Gibt es überall).

Also 160 Ohm 1/4W vor die LED und schon klappts mit dem Port.


Besser ?

robotfreak
12.11.2005, 17:25
Achso, jetzt versteh ichs. Danke!!!!!!!!!! #-o

robotfreak
12.11.2005, 18:05
Ach nochwas:

Was für ein Transistor wäre bei einer 8x8 LED-Matrix empfehlenswert?
Ich will die Zeilen an die 8 Pins eines Ports anschließen, die Spalten sollen mit Transistoren gesteuert werden. Hinter dem gemeinsamen Emitter sollen noch 4 weitere Transistoren parallel geschaltet sein, um über 4 Potis verschiedene Grundhelligkeiten zu realisieren (zusätzlich zur PWM). Hinter derem gemeinsamen Emitter will ich dann den Grundwiderstand von 160 Ohm 1/4W anschließen. Der Kollektor-Emitter-Widerstand soll möglichst gering sein.

Ratber
12.11.2005, 20:19
Hmmm,warum nicht gleich die komplette Helligkeit über die Ansteuerung erledigen ?


Zum Transistor.:

Steuerst du Punktweise oder Spalten/Zeilenweise ?

In ersterem Fall reicht irgendein Kleinsignaltyp der schnell genug ist.
In Letzterem einer der max 8 LED's am Stück verkraften kann.

Da hats du fast freie Wahl.

robotfreak
12.11.2005, 21:12
Ich steuere sie Punktweise an.

Kann mir vielleicht jemand einen Transistor empfehlen?
Ich kenne nur den BS 250. Aber ich denke ich komme mit irgendeinem kleinern, billigeren hin. Nur welcher?

Ratber
12.11.2005, 21:44
Ja wie gesagt ,haste da fast freie Auswahl.

Klassiker wie zb. BC107/108,237/238+ Komplementäre oder auch Modernere.

Schau dich doch einfach mal zb. bei Reichelt oder deinem bevorzugten Lieferanten um was die haben und such dir einen passenden heraus.
Schließlich muß das Teil auch erhältlich sein.

robotfreak
12.11.2005, 22:08
Würde auch der BC 547 A,B oder C gehen? Wie hoch muss der Verstärkungsfaktor sein oder ist das egal?
0,5W Grenzwert der Verlustleistung
110-220 Verstärkungsfaktor
300 MHz Grenzfrequenz

Der braucht dann keinen Basiswiderstand, richtig?

Ratber
12.11.2005, 22:53
Ja den kannste nehmen.

Und "Nein" ohne Basiswiderstand geht es nicht.
Der Sollte auch dem Verstärkungsfktor (A,B,C) angepasst sein damit die Transe auch voll durchschaltet.
Andernfalls würde er zuviel Leistung verheizen.

robotfreak
13.11.2005, 09:26
Ist das denn kein Feldeffekttransistor? Da brauch man doch keinen Basiswiderstand, da ein Feld ausreicht, oder?

SprinterSB
13.11.2005, 09:39
Da ist ein npn Kleinsignaltransistor, mithin bipolar.

Ratber
13.11.2005, 12:06
Ist das denn kein Feldeffekttransistor? Da brauch man doch keinen Basiswiderstand, da ein Feld ausreicht, oder?


Ja wie Sprinter schon sagte,is Bipolar.
Wenn de nen FET willst dann mußte es auch sagen.

Wie du sagst niederohmig also nidriger DS-Widerstand.
Da kannste sämtliche einfachen FET's wie BSN10/20 vergessen denn die kommen mit ca. 15-20 Ohm daher.

Also Mosfet.

robotfreak
13.11.2005, 18:41
Welchen Basiswiderstand muss ich denn beim BC547 A/B/C nehmen?
Oder ich nehme den 2N3904, aber welchen Basiswiderstand muss ich da nehmen?
Oder sagt mir einfach wie man das ausrechnet.

Ratber
13.11.2005, 19:57
Das geht schnell.

den 2N3904 ziehe ich mir mal eben aus der Vergleichtabelle.

NPN
60V
0,2A
ß=100-400
To-92 Gehäuse (oder ähnlich)

Im Ernsfall sind alle 8 LED's der spalte an also 8x20mA=160mA
Damit ich am ausgang sicher in die Sättigung komme muß ich also den Basisstrom so groß wählen das er sicher durchschaltet.
Die Verstärkung liegt zwischen 100-400 (Meist 200).
Da ich auf Nr. Sicher gehen will nehme ich den schlechtesten Fall an also 100.
160mA/100=1.6mA an der Basis.
Die Basis liegt Theoretisch max 0.7V über dem Colector also habe ich mit 5V an der Basis max 5-0.7=4.3V anliegen.
Dh. durch den Widerstand müssen bei 4.3V 1.6mA fließen.
Nach Ohm sind das dann R=U/I also 4.3V/1.6mA=ca. 2.67 KOhm.

Da aber vom Controller weniger kommt,die Sättigungsspannung an der Transe auch höher sein kann und eh etwas Reserve haben angeraten ist nehme ich 4.5V vom Controller und 1V an der Basis an.

Dann komme ich auf 4.5V-1V=3.5V
3.5V/1.6mA=2.19 KOhm.

soviel zur Rechnung.

Aus der Praxis für den Einsatz kannste mit 1KOhm Arbeiten.





Edit:

So,nun bin ich vor lauter Beispielen weit von dem abgekommen was ich eigentlich zur Matrix noch sagen wollte.

Da steht noch der schon x-mal angesprochenen ULN2803 im Raum.
Da haste 8 Stufen drinne (Passt ja) die reichlich schalten können (Max 50V/0.5A pro Kanal)
Um Basiswiderstände mußt du dir keinen Kopp machen und Kompakter wirds auch noch.
Die Schaltzeiten liegen bei jeweils max 1µs.
Plus Raum für PWM und can kannste also mit einigen khz Scannen wenn nötig.
Bei 8 Spalten kommste mit lächerlichen 200 Hz hin um 25fps zu bekommen
Da haste reichlich Zeit für ne komplette Helligkeitssteuerung der Spalten.

Ja und Preislich dürfte er mit unter 50 Cent das Stück auch billiger kommen.