Hallo, in einem Studenten Projekt wollen wir über einen STM32F4 eine LED Matrix angesteuert bekommen. Die Leds haben folgende Spezifikation: UBetrieb = 3,3V I = 30mA Die Versorgungsspannung kann entweder 3,3V oder 5V betragen. Das der Mikrokontroller nicht genug Strom liefert und die Ausgänge eine hohe Spannungstolleranz haben, müssen wir die einzelnen Seiten der Matrix über "Transistoren" schalten. Wenn wir das ganze jedoch so aufbauen: 1.Transistor(für Reihe) Basis = STM32 Ausgang = ~ca 2,8V C = Vcc(3,3V) E = LED(+) 1.Transistor(für Spalte) LED(-) geht auf den C Basis ist hier auch ein STM32-Out Emitter geht gegen Masse Wenn wir jetzt beide Ausgänge Schalten, war unser Gedanke das dann die Spannung von 3,3V von der Versorgung über die LED gegen Masse läuft. Es kommen jedoch nur die 2,8V vom STM32 - dem BE Strom von 0,7V an und somit läuchtet die LED nur ganz ganz schwach... Wenn wir direkt die Versorgungsspannung auch nutzen um den Transistor zu schalten, dann funktioniert unser Aufbau perfekt, auch die Matrixform -> es lässt sich jede LED individuell schalten... Wir haben jetzt noch überlegt ob man das ganze nicht auch über einen Baustein wie diesen realsieren könnte: http://de.rs-online.com/web/p/products/7965311/?cm_mmc=DE-PPC-0914-_-google-_-3_MPN_Exact-_-Toshiba%7CPSF_430854%7CTransistoren+Darlington_TD62783APG_E&gclid=Cj0KEQiA6dGmBRC_3Mi-x_XywKsBEiQA1lcFP4uHmLK7GowFXcZP0XM1id_xb2BNV8rgc14wJn5KlGkaAgOl8P8HAQ Nachtrag wir haben es genau so wie hier aufgebaut: http://www.mikrocontroller.net/wikifiles/thumb/6/64/LED_Matrix_8x5.png/500px-LED_Matrix_8x5.png Jedoch haben wir an die Transistoren direkt die STM32 Ausgängen angeschlossen, und keine Widerstände in den "Reihen" da wir mit 3,3V Versorgungsspannung arbeiten die unteren Widerstände haben wir bei uns mit 1,5KOhm dimensioniert.
:
Bearbeitet durch User
3.3V reichen wohl kaum, um eine LED, die 3.0-3.6V benötigt, mit einem definierten Strom zu versorgen, es wäre nicht mal Spannung für einen Vorwiderstand da. Es gibt noch viel zu lernen: http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8.1
Johannes Jaeger schrieb: > Die Versorgungsspannung kann entweder 3,3V oder 5V betragen. Dann betreibt das Ganze doch bei 5V und scheltet einen Vorwiderstand vor die LED, das sollte man immer so machen, die Kennlinie ohne Vorwiderstand ist so steil, dass kleinste Spannungsänderungen große Stromänderungen nach sich ziehen und die LED dann entweder stirbt oder aber extrem ungleichmäßig hell ist... Eine LED mit 3,3V Vorwärtsspannung kann nicht mit 3,3V betrieben werden, am Schalttransistor fällt auch noch Spannung ab...
:
Bearbeitet durch User
Ok dann würde es also funktionieren, wenn wir die Versorgungsspannung auf 5V erhöhen, und einen Vorwiederstand einsetzen. Würde es dann mit dem Ausgang vom Stm32 mit 2,8V schalten? und an den LEDs würden dann 3,3V anliegen? 5V Versorgung 3,3V LED --> 3*30mA maximal pro Spalte R = 1,7V / 90mA = 18 Ohm Brauchen wir einen Vorwiderstand > 18 Ohm ist das soweit richtig?
Statt der Spaltentransistoren könnte man auch einen TLC5916 nehmen, dann spart man sich auch die Widerstände.
Gregor Ottmann schrieb: > Statt der Spaltentransistoren könnte man auch einen TLC5916 nehmen, dann > spart man sich auch die Widerstände. Danke für diesen Tipp, jedoch wollen wir es vorerst einmal ohne so ein Bauteil realisieren... Den von mir berechneten Widerstand von 18 Ohm ist das so richtig? Muss man den in jeder Zeile nehmen oder reicht einer direkt hinter VCC und dann das jeweils an die Cs von den Transistoren
So einfach ist das nicht, du musst mit dem Vorwiderstand vor der Diode verhindern, dass mehr als 30mA fließen können. Dazu musst Du Dir Gedanken machen, wie viel Spannung an den Zeilen und Spaltentreibern abfällt. Diese Spannungen ziehst Du von der Versorgungsspannung ab und was dann über 3,3V (Vorwärtsspannung der LED) liegt, muss mit einem Widerstand verbraten werden. Vermutlich fallen an den Zeilen und Spaltentreibern doch 1-1,5V ab, nehmen wir mal 1V, dann sind noch 4V übrig, am Vorwiderstand müssen wir also 0,7V "vernichten", bei 30mA: R=U/I --> R = 0,7 / 0,03 Ohm = 23 Ohm... 22 oder 27 sind normaler Weise verfügbar...
18 Gehen sicher auch, so genau muss das nicht sein, aber Du solltest hat wissen, warum du welchen Wert brauchst...
Sie sagen jetzt, dass der Strom nicht über 30mA gehen soll. Aber die LEDs sind ja parallel angeordnet also müsste der Strom ja wenn alle LEDs angehen soll min 90mA haben oder?
Aber die gehen doch nicht alle gleichzeitig an! Die Spalten werden doch gemultiplext! Du weisst doch nicht, wie viele LEDs an sind, kann doch auch nur eine einzige sein... Je nach "Bild"
Ok stimmt das ist richtig. Habe vergessen das die Spalten nacheinander durchgeschalten werden. Also löte ich jetzt bei unserem Aufbau mal noch zwischen den Emitter und die erste Led in der Reihe einen 22 Ohm Widerstand und stelle die Versorgungsspannung auf 5V und schaue dann ob es mit dem STM32 funktioniert Danke :)
Nur zum Verständnis eines Matrixbetriebes: die Spaltentreiber gehen hintereinander einer nach dem anderen an, dann schalten die Zeilentreiber die einzelnen LEDs in der Zeile zu, jeder nur eine LED, dann kommt die nächste Spalte dran. Man kann natürlich Zeilen und Spalten auch austauschen... Damit spart man sich die Ansteuerung aller LEDs einzeln, jede LED leuchtet aber auch nur einen Bruchteil der Zeit. Dafür kannst Du eigentlich auch den Strom der LED auf den n-fachen Wert erhöhen, je nach Spaltenzahl... Über die Zeit gemittelt, hat sie dann doch ihren Nennstrom...
Johannes J. schrieb: > Ok stimmt das ist richtig. > Habe vergessen das die Spalten nacheinander durchgeschalten werden. > Also löte ich jetzt bei unserem Aufbau mal noch zwischen den Emitter und > die erste Led in der Reihe einen 22 Ohm Widerstand und stelle die > Versorgungsspannung auf 5V und schaue dann ob es mit dem STM32 > funktioniert > > Danke :) So versuche ich das jetzt mal oder? Ach ja als Transistor haben wir einen BC557
Johannes J. schrieb: > und stelle die > Versorgungsspannung auf 5V und schaue dann ob es mit dem STM32 > funktioniert Wird nicht funktionieren! Wenn der STM32 2,8V ausgibt, hast Du am Emitter der NPN Treibertransistoren nie ausreichend Spannung, selbst wenn Du die Matrix mit 12 Volt betreibst. Stichworte: Emitterfolger, Pegelwandler
:
Bearbeitet durch User
Ja, der Controller sollte natürlich auf der gleichen Versorgung laufen...
Ja, ein Pegelwandler wäre wohl notwendig. Dann kann man sich aber auch gleich fragen, ob man anstelle der Transistoren nicht gleich ein entsprechendes Treiber-IC für die Zeilen/Spalten nimmt.
Hab mich jetzt nochmal mit dem Transistor Thema beschäftigt... Also ich nehme einen PNP Transistor und da kommt an den Collektor die 5V Vesorgungsspannung und an den Emitter der Widerstand mit LEDs... An die Basis vom PNP kommt dann ein Widerstand und der Collektor von einem NPN und von diesem der Emitter an Ground. Als Basis hier der STM32 Dann sollte ich doch mit den 2.8 vom STM die 5V von der Versorgungsspannung schalten können. --> Über die CE Strecke vom PNP fallen da ja nur ein paar mV ab...
Aber zwischen Basis und Emitter müssen mindestens 0,7V anliegen, damit der Transistor schaltet...
> Dann sollte ich doch mit den 2.8 vom STM die 5V von der > Versorgungsspannung schalten können. Der Transistor würde dann in Emiterschaltung arbeiten und mit 5V gesperrt werden. Mit 2,8V würde er leitend werden.
Achso nur noch mal zum nachdenken: Bei 5V sperrt der Transistor Bei 2,8V leitet der Transistor Bei 0V leitet der Transistor auch http://www.mikrocontroller.net/articles/Transistor
Johannes J. schrieb: > Also ich nehme einen PNP Transistor und da kommt an den Collektor die 5V > Vesorgungsspannung und an den Emitter der Widerstand mit LEDs... Ts ts, was bitte lernt ihr eigentlich an der Uni? Nicht mal die richtigen Anschlüsse von Transistoren ? > und keine Widerstände in den "Reihen" da wir mit 3,3V > Versorgungsspannung arbeiten Daß eine LED einen Vorwiderstand oder eine ähnliche definierte Art braucht um trotz unterschiedlichen Spannungsbedarfs einen halbwegs gleichen Strom zu bekommen, hat euch auch niemand beigebracht. Dabei wurde alles geschrieben, man müsste es bloss mal studieren http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8.1 aber Lesen ist offenbar out bei heutigen Studenten, man kann auch alles in sozialen Netzen erfragen. Welche Uni ist das ?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.