Für die BC braucht man um in Sättigung zu Schalten ca. 0,5mA, Vbe = 0,75V
In Fig.1 des DB siehst du, wie die Stromverstärkung bei höheren Strömen, wie sie in Multiplex Anwendungen typisch auftreten, in den Keller geht.
Mehr als 200mA Kollektorctrom sind für diese Transistoren auch nicht zugelassen, und selbst impulsweise dürfen 200mA nicht überschhritten werden.
Deshalb schrieb ich anfangs, dass dieser Transistor für Multiplex Anwendungen keine gute Wahl ist.
Seit langem sind für solche Schalter der BC327 (pnp) und BC337 (npn) Standard, die deutlich höhere Strome schalten können.
BC546 bis 548 gehören übrigens zu einer Familie von Kleinleistungstransistoren, die seit etwa 50 Jahren mit praktisch gleichen elektrischen Daten verkauft wird.
Den Anfang machten BC107 bis BC109 im hermetisch dichten Metallgehäuse, und als man nach einigen Jahren Vertrauen in die preisgünstigeren Kunststoffgehäuse gewonnen hatte, kamen sie als BC237 - BC239 und noch etwas später als BC547 - BC549 auf den Markt. Je höher die letzte Ziffer der Hausnummer ist, umso geringer ist die zulässige Uce.
Dementsprechend kam nach unten hin, also für höhere Spannungen, noch der BC546 hinzu.
Manche Hersteller verkaufen BC..9 nicht, oder sie listen sie separat, evtl. auch noch um einen BC550 ergänzt, weil diese besonders rauscharm sind.
Die beliebtesten und bekanntesten Transistoren der Serie haben aber die Endziffer 7.
Innerhalb der Gruppen werden die Transistoren noch nach Stromverstärkung sortiert und bekommen die Suffixe A bis C, wobei die Gruppe A die Transistoren mit der geringsten und C die Transistoren mit der höchsten Verstärkung (bei Ic=2mA) umfasst.
Nicht für alle Anwendungen ist der Transistor mit der höchsten Verstärkung (C) oder der höchsten Spannungsfestigkeit (BC..6) am besten geignet, aber als Anfänger braucht dich das nicht zu kümmern.
In der aktuellen SMD-Version umfasst die Serie übrigens BC846 bis BC850.
Derartige Transistoren kosten in der Großserie wohl weniger als 1 Cent, aber als Bastler, bei dem der teuerste Posten oft das Porto ist, solltest du ernsthaft über die Verwendung von SMD-MOSFETS z.B.
http://www.produktinfo.conrad.com/daten ... T23_IR.pdf oder
http://www.produktinfo.conrad.com/daten ... T23_IR.pdf nachdenken.
Natürlich gibt es auch entsprechende p-Kanal-Versionen
In Schalteranwendungen kannst du damit die Basis-Vorwiderstände sparen, brauchst nur kapazitiven Steuerstrom, und bei on-Widerständen im Milliohmbereich kannst du dir meist auch die Überlegungen zur VCE_sat schenken.
Für die BC braucht man um in Sättigung zu Schalten ca. 0,5mA, Vbe = 0,75V
Na ja, ich würde um 20mA sicher zu schalten, lieber die 50mA Kennlinie verwenden, also 1mA Basisstrom vorsehen.
Für solche Kennlinien werden "typische" Werten verwendet, die bei Halbleitern oft mit +- 30% Toleranz behaftet sind.
Die Ube hingegen wird immer bei etwa 0,7V liegen, weil sie nur wenig vom Strom abhängt, sondern vorwiegend eine Materialeigenschaft des Siliziums ist.
Vce(BD) = 0,18 - 0,19V
Sollte ich da noch ein wenig Puffer einberechnen? Also z.B. 0,17V und 0,2V ?
Kann man so lassen.
Ohne ins Datenblatt zu schauen, würde ich mit einer UCE_sat von 200mV bei einer Verstärkung von 20..50 rechnen.
Mit DB sieht das nicht viel anders aus.
Für 320mA ist also ein Basisstrom von 16mA und Ube um 0,7V plausibel.
Die Spannung am Output des µC verrngert sich bei diesem Strom um etwa 0,4V.
Forward Voltage: 3.0 - 3.4 V (das ist ziemlich viel, oder?)
Max Continuous Forward Current: 20mA
Für blaue und manche weisse LED sind Flußspannungen um 3V üblich.
Wenn du es genauer wissen willst, kannst du es ja mal messen:
Nimm die 5V vom USB und schließ die LED in Reihe mit einem (selbst gemessenen!) 100 Ohm Widerstand an. Das ergibt einen Strom von ungefähr 20mA.
Dann misst du die Spannung Uf über der LED (ca. 3V) und Ur über dem Widerstand (ca. 2V). Den genauen Strom gibt dir dann das ohmsche Gesetz: I= Ur/R.
Versuche nicht den Strom mit dem Strombereich des DMM zu messen, denn wegen des meist unbekannten Spannungabfall an Instrument & Zuleitungen gibt das fehlerhafte Werte.
Allerdings ist die Uf einer LED, wie auch bei anderen Dioden, nur in geringem Maß vom Strom abängig und eher eine Materialkonstante.
Jetzt aber mal zu Dimensionierung.
Vorwiderstand der LED:
Uc(BD243)=0,2V=Uk(LED),
Ua(LED)=3,2V=Ue(BC546),
Uc(BC546)=3,4V
Uout(1mA)= 5V
--> Rv(LED)= 1,6V/0,02A = 80 Ohm (82 verwenden)
Es lohnt sich, die LED mit vollem Strom zu betreiben, da sie durch die Multiplexerei nur 1/4 der Zeit eingeschaltet ist, der mittlere Strom also nur 5 mA beträgt.
Das kann man auch durch hohe Impulsströme nicht kompensieren, denn viele moderne LED vertragen auch dann nur 30mA. Das lohnt sich also nicht.
(Viele der alten und lichtschwachen 50mA LED hingegen wurden auch schon mal mit 500mA Impulsstrom befeuert und brauchten und vertrugen das auch)
Basiswiderstand des BD243:
Ube =0,7..0,8V, Uout(16mA) = 4,6V
---> Rb(BD643) = (4,6V - 0,8V) / 0,016A = 238 Ohm (220, 240 oder 270 verwenden).
Basiswiderstand des BC547:
Ue=3,2V
Ub=3,95V
Uout(1mA)=5V
---> 1,05V /1mA = 1,05kOhm (1k verwenden)
verwende ich den ATmega328p. Dieser hat im Arduino nur 20 I/O Pins, da ich aber 21 brauche
Du kannst die Anzahl der Pins reduzieren, wenn du die 64 LED als 8x8 Matrix verschaltest. Dann brauchst du nur 16 Pins.
Leider kostet dich das etwas Helligkeit, da eine LED dann nur für 1/8 des Zyklus eingeschaltet ist, während es jetzt 1/4 ist.
Diese Halbierung des Stromes macht sich bei der Hellikeit aber nicht sehr stark bemerkbar.
Du kannst ja mal so eine LED mit 2,5mA betreiben um dir einen visuellen Eindruck zu verschaffen.
Ich habe mir bereits 3 der Atmegas bestellt und auf einen den Arduino Bootloader gespielt.
Soll ich einen Microcontroller ohne verwenden? Also hex-File drauf und fertig?
Diese Frage kann ich dir nicht beantworten. Arduino kenne ich nur vom Namen har.
Wenn ich solche Microcontroller in die Finger bekam, waren sie i.d.R. so neu, dass es dafür allenfalls einen Assembler gab.
Die Low-Level-Programmierung hat durchaus Vorteile, weil man z.B. das Zeitverhalten genau kennt. Interpreter sind gewöhnlich schnarchlangsam, und welche Qualität der von einem Compiler generierte Code hat, weiss man oft nicht.
Hinzu kommt, dass man sich bei der I/O-Programmierung oder bitweisen Operationen in Hochsprachen ganz schön die Finger verknoten kann.