Hallo, Ich bin neu im Forum und hoffe, dass ich alles richtig mache... :) Im Anhang ist ein Schaltplan (ebenfalls erster Schaltplan, also auch nicht unbedingt so hübsch / korrekt), der für eine mit Zeitmultiplexing betriebene Led-Matrix gedacht ist. Das Hauptproblem ist, dass ich nicht weiß, wie ich die Kondensatoren richtig einsetzten muss, da ich elektrotechnisch eher unbegabt bin (noch). Verzichten möchte ich auf die Kondensatoren allerdings auch nicht, da ich starke Spannungsschwankungen befürchte, je nach dem was auf der Matrix angezeigt wird. Außerdem weiß ich nur so halb, wie der UDN (oder auch jeder andere) Treiber funktioniert und ob ich auch noch als Gegenstück einen Sink-Driver (ULN) benötige. Ich hoffe ihr könnt mir mit meinen Plänen ein wenig helfen und nehmt einen Anfänger in eure Community auf :) Lg, Janik
Genau falsch. Der UDN schaltet mehr Strom, schaltet also die Direktverbindung, der AVR schaltet weniger Strom, schaltet also einzelne LEDs mit Vorwiderstand. Der Strom des AVR reicht eh bloss für durchschnittlich 4mA pro LED, ob dir das hell genug ist, musst du entscheiden. Ausserdem verbracuht der UDN 1.5V, da bleiben für ÖED und Vorwiderstand nicht ehr viel übrig, man sollte ihn nicht mit 5V sondern mit 9V verbinden. Was heisst 9V, ein 9V Blockbatterie hat nur beim Verkauf 9V, die Spannung lässt dann während der Entladung bis 5.6V nach. Wenn als Spannungsregler ein 7805 statt einem LM2940 verwendet wird, regelt der unter 7.5V schon nicht mehr die 5V. C0 bis C4 sind falsch und bremsen dort nur die Multiplexgeschwindigkeit. Die sollen zwischen VCC und GND von AVR und UDN und an Ausgang und Eingang des Spannungsreglers nach Masse. Irgendwie fragt man sich, warum hier jeder das Rad falsch neu erfinden will http://www.mikrocontroller.net/attachment/44489/ledmatrix5x5.png
> Der UDN schaltet mehr Strom, schaltet also die Direktverbindung, der AVR > schaltet weniger Strom, schaltet also einzelne LEDs mit Vorwiderstand. > Der Strom des AVR reicht eh bloss für durchschnittlich 4mA pro LED, ob > dir das hell genug ist, musst du entscheiden. Und wie wäre das zu beheben? Ich dachte der UDN kümmert sich dann um die Versorgung der LEDs? Das der AVR nicht reicht war mir klar nur bin ich eben davon ausgegangen, dass ich das ganze mit dem UDN umgehe... > C0 bis C4 sind falsch und bremsen dort nur die Multiplexgeschwindigkeit. > Die sollen zwischen VCC und GND von AVR und UDN und an Ausgang und > Eingang des Spannungsreglers nach Masse. Okay, ich werde mal versuchen das zu korrigieren :) Mal gucken obs mir gelingt, kenne mich nicht gut aus :/ > Irgendwie fragt man sich, warum hier jeder das Rad falsch neu erfinden > will Sorry, wenn ich mich nicht auskenne. Aber der verlinkte Thread benutzt z.B Transistoren und ich weiß damit noch weniger anzufangen als mit dem Kram hier ;)
> C0 bis C4 sind falsch und bremsen dort nur die Multiplexgeschwindigkeit. > Die sollen zwischen VCC und GND von AVR und UDN und an Ausgang und > Eingang des Spannungsreglers nach Masse. So besser? Ich fürchte nicht, aber anders habe ich es nicht verstanden :/ Zur MaWin schrieb: > Was heisst 9V, ein 9V Blockbatterie hat nur beim Verkauf 9V, die > Spannung lässt dann während der Entladung bis 5.6V nach. Wenn als > Spannungsregler ein 7805 statt einem LM2940 verwendet wird, regelt der > unter 7.5V schon nicht mehr die 5V. Ich sollte also besser einen LM2940 verwenden, um eine Konstante Spannung von 5V zu erhalten? Und wie ist das Problem mit der Stromversorgung für die LEDs zu beheben, wenn der Treiber scheinbar nichts bringt?
Noch ein Hinweis: Die Widerstände gehören nicht auf die Seite des UDN, sondern zwischen LEDs und ATmega. Janik Sch schrieb: > Und wie wäre das zu beheben? Ich dachte der UDN kümmert sich dann um die > Versorgung der LEDs? Das der AVR nicht reicht war mir klar nur bin ich > eben davon ausgegangen, dass ich das ganze mit dem UDN umgehe... Ja, das ist schon richtig. Der UDN muss ja auch den 5-fachen Strom treiben können (wenn alle LEDs einer Spalte leuchten sollen). Wenn die LEDs mit 20mA betrieben werden (s.u.) sind das 100mA. Aber MaWin meinte, ob der Strom der Zeilen für den ATmega nicht zu groß ist: Der Augang kann max. 20mA treiben, das gibt beim Muliplexen von 1:5 einen Mittelwert von 4mA. Ob das reicht hängt ab von den LEDs und der gewünschter Helligkeit. Wenn das nicht reicht, brauchst auf der Seite auch Treibertransistoren. Gruß Dietrich
Janik Sch schrieb: > So besser? Ich fürchte nicht, aber anders habe ich es nicht verstanden > :/ Das hast Du richtig vorhergesehen ... Die Kondensatoren sind dort noch falscher als beim 1. Versuch. Janik schrieb: > Verzichten möchte ich auf die Kondensatoren allerdings auch nicht, da > ich starke Spannungsschwankungen befürchte Um Spannungsschwankungen auszugleichen musst Du die Versorgungsspannung abblocken. Das heißt dann "Stützkondenstor" und der gehört zwischen Vs und GND. Und dann einer am UDN, 2 am ATmega und je nach Regler einer am Regler-Ausgang (Datenblatt!). Noch was: die verschiedenen GNDs müssen alle miteinander verbunden werden, d.h. zusammen gehört: - "-" der 9V - GND des UDN - GND des Spannungsreglers - alle GNDs des ATmega Gruß Dietrich
Janik Sch schrieb: > So besser? Nein, völliger Unsinn. Du rätselst frei rum. Was heisst C0 zwischen VCC und GND des AVR ? Was heisst C1 zwischen VCC und GND des UDN ? Was heisst C3 zwischen Ausgang des Spannungsreglers und Masse ? Was heisst C3 zwischen Eingang des Spannungsreglers und Masse ? Was heisst UDN direkt mit den LEDs verbinde ? Was heisst AVR über Widerstände mit den LEDs verbinden ? Das war doch eigentlich alles nicht zu schwer um es verstehen zu können. Janik Sch schrieb: > Ich sollte also besser einen LM2940 verwenden, um eine Konstante > Spannung von 5V zu erhalten? Wenn du eine 9V Blockbatterie und kein 9V Netzteil als Versorgung hast ja, aber woher wollen wir wissen was du hast, du hast dir nie die Mühe gemacht es hinzuschreiben. Janik Sch schrieb: > Aber der verlinkte Thread benutzt z.B Transistoren Woran man vielleicht erkennt, daß sie sinnvoll sind. Zwar kann man ein paar davon durch den UDN2981 ersetzen, aber der ist pro LED auch nicht anders: Ein Anschluss an plus, ein Anschluss rein, ein Anschluss raus. Wenn man sowieso nicht versteht, wie es funktioniert, ist von aussen alles dasselbe. Ja, ich weiß, auch im Netz grassieren falsche Schaltpläne zu hauf, man kann nicht einfach einen nehmen und glauben daß der schon richtig ist, weil vor allem Laien so was zeichnen bevor es das erste mal funktioniert. Auch der von mir verlinkte hat Defizite aber ich fand auf die Schnelle keinen mit UDN2981.
MaWin schrieb: > Was heisst C0 zwischen VCC und GND des AVR ? > Was heisst C1 zwischen VCC und GND des UDN ? Aber VCC und GND ist beim AVR und beim UDN doch dasselbe, oder?! Also jedenfalls laut meinem Schaltplan, aber das heißt ja nix :D > Das war doch eigentlich alles nicht zu schwer um es verstehen zu können. Ne, eigentlich nicht, aber ich brauch noch ein wenig Übung um alles auf Anhieb zu verstehen... > Wenn du eine 9V Blockbatterie und kein 9V Netzteil als Versorgung hast > ja, aber woher wollen wir wissen was du hast, du hast dir nie die Mühe > gemacht es hinzuschreiben. Erstmal wird das ganze über eine 9V Blockbatterie laufen. > Woran man vielleicht erkennt, daß sie sinnvoll sind. Zwar kann man ein > paar davon durch den UDN2981 ersetzen, aber der ist pro LED auch nicht > anders: Ein Anschluss an plus, ein Anschluss rein, ein Anschluss raus. > Wenn man sowieso nicht versteht, wie es funktioniert, ist von aussen > alles dasselbe. Okay, aber es geht theoretisch auch ohne Transistoren, oder? Gehen wir mal von beiden Fällen aus: Fall 1: Ich möchte Keinen Treiber, sondern nur Transistoren (wie in deinem Schaltplan) benutzen. Worauf muss ich beim Kauf achten? Fall 2: Ich möchte keine Transistoren benutzen (Wenn es überhaupt geht, es ist mir relativ egal ob das unnütz ist oder so, Hauptsache es hat keine negativen Auswirkungen auf das Ergebnis) Würde es prinzipiell jetzt so wie im Schaltplan funktionieren? > Auch der von mir verlinkte hat Defizite aber ich fand auf > die Schnelle keinen mit UDN2981. Welche Defizite hat dieser denn? (Nur aus Neugierde) Dietrich L. schrieb: > Noch was: die verschiedenen GNDs müssen alle miteinander verbunden Bis auf die zwei Pins an dem avr waren auch glaube ich schon alle verbunden... Dietrich L. schrieb: > Die Widerstände gehören nicht auf die Seite des UDN, sondern zwischen > LEDs und ATmega. Behoben :) Nur habe ich immer noch das Problem, dass die LEDs ja (wie ihr sagt) nur 4mA abbekommen und da bin ich immer noch auf eure Hilfe angewiesen das zu lösen. Was ich mich gerade noch frage: Wenn in der Matrix jeder Spalte 100mA zur Verfügung stehen, aber gerade nur eine LED leuchten soll..... bekommt diese denn dann nicht zu viel Strom ab, oder ist das egal, da es sich ja sowieso nur um Impulsströme handelt? Vielen Dank für eure Hilfe!
Janik Sch schrieb: > Was ich mich gerade noch frage: Wenn in der Matrix jeder Spalte 100mA > zur Verfügung stehen, Hast du aber nicht, pro Spalte max. 40mA, das sind schon Maximum-Ratings der I/O des µC.
Hubert G. schrieb: > Hast du aber nicht, pro Spalte max. 40mA, das sind schon Maximum-Ratings > der I/O des µC. Aber dafür möchte ich ja den Treiber verwenden... Damit ich eben mehr Ampere zur Verfügung habe...
Du kannst mit deinem UDN die fünf Leds in der Reihe leuchten lassen, aber in den µC gehen nur max. 40mA je I/O.
Hubert G. schrieb: > Du kannst mit deinem UDN die fünf Leds in der Reihe leuchten lassen, > aber in den µC gehen nur max. 40mA je I/O. Achso! Ist das die Geschichte mit dem ULN Treiber? Also im Grunde das Gegenstück zum UDN?
Genau so ist es. Allerdings, wenn du ULN und UDN verwendest, kannst du mit 5V keine Leds verwenden deren Flussspannung höher als 2V ist. Da ist es besser du verwendest die 9V, belastet auch den Spannungsregler nicht. Fünf Transistoren wären einfacher.
Hubert G. schrieb: > Fünf Transistoren wären einfacher. Tja :D Ich war zu ungeduldig und hab schon bestellt ;) Nächstes mal: erst planen, dann kaufen :/ :D Die LEDs haben eine Betriebsspannung von 2,2-2,5V Dann werd ich da nochmal schauen, aber ich schätze daran scheitert es nicht... Vielen Dank für deine Hilfe!
Janik Sch schrieb: > Aber VCC und GND ist beim AVR und beim UDN doch dasselbe Derzeit ja, aber wenn der ULN mit 9V statt 5V versorgt wird wäre das nicht mehr der Fall, meine Beschreibung deckt beide Fälle ab. Janik Sch schrieb: > Welche Defizite hat dieser denn? (Nur aus Neugierde) Na er verwendet keinen UDN. Ausserdem schalten die stärker verstärkenden Transistoren den kleineren Strom, das ist ungeschickt, geht aber trotzdem. Janik Sch schrieb: > Fall 1: Ich möchte Keinen Treiber, sondern nur Transistoren (wie in > deinem Schaltplan) benutzen. Worauf muss ich beim Kauf achten? Nicht viel, der Transistor am Widerstand schaltet 100mA, es reicht ein BC548, der Transistor direkt an den LEDs schaltet 500mA, man braucht einen BC338-40, aber man kann auch einfach für alle BC338-40 kaufen (und es gibt Dutzende andere Typen die auch gehen würden) und nimmt 10 Ohm Widerstände vor den LEDs für 100mA Spitzenstrom also 20mA Durchschnittsstrom und 180 Ohm Widerstände vor den Transistoren. > Fall 2: Ich möchte keine Transistoren benutzen (Wenn es überhaupt geht, > es ist mir relativ egal ob das unnütz ist oder so, Hauptsache es hat > keine negativen Auswirkungen auf das Ergebnis) Würde es prinzipiell > jetzt so wie im Schaltplan funktionieren? Jein. Angenommen du verwendest rote/grüne LEDs mit 2.1V Spannungsbedarf, und bleibst bei 20mA aus dem ATmega, also 4mA Durchschnittsstrom pro LED, dann liefert der UDN2981 von den 5V nur 3.2V, davon gehen 2.1V für die LED ab und 0.9V am ATMega8, bleiben 0.2V für den stromstabilisierenden Vorwiderstand von 10 Ohm. Das ist zu wenig für eine ordentliche Stromstabilisierung, und reicht erst recht nicht für blaue oder weisse LEDs. Daher sollte der UDN2981 an 9V, bleiben 4.1V für 220 Ohm als Vorwiderstand, leider wird das Display dunkler je stärker die Batterie nachlässt. Daher taugt die Schaltung wenig und die mit den Transistoren wäre besser und dramatisch heller, natürlich hält dann die Batterie noch weniger lang.
Hmm, blöderweise geht der UDN an 9V doch nicht, die LEDs gehen nie ganz aus weil Strom über die ATmega Schutzdioden fliesst, ausser es wären blaue/weisse LEDs. Die Lösung mit UDN hat also noch mehr Nachteile.
Janik schrieb: > Im Anhang ist ein Schaltplan Die Pin-Nummerierung bei den ICs ist falsch. Bei allen zweireihigen ICs werden die Pins so gezählt: 1 v 14 2 13 3 12 4 11 5 10 6 9 7 8 mfg.
:
Bearbeitet durch User
Thomas Eckmann schrieb: > Die Pin-Nummerierung bei den ICs ist falsch. Ja, ist mir eben auch aufgefallen. Habe ich bei mir schon korrigiert :) Danke für den Hinweis MaWin schrieb: > Hmm, blöderweise geht der UDN an 9V doch nicht, die LEDs gehen nie ganz > aus weil Strom über die ATmega Schutzdioden fliesst Okay... Kannst du mir das nochmal genauer erklären? Und kann man das nicht unterbinden?
:
Bearbeitet durch User
So. Nach einiger Zeit stehe ich wieder auf der Stelle ;) Ich habe mir den ganzen Kram jetzt wie im Schaltplan zusammen gebastelt, aber es funktioniert immer noch nicht. Ich habe verschiedene Sachen versucht und auch wiedermal viel gegoogelt, aber ich konnte noch keine funktionierende Lösung finden. Das Problem: Der ganze Mikrocontroller (Atmega3238P-PU) springt (scheinbar) gar nicht an... Ich habe den Mikrocontroller dann nochmal auf das Steckbrett gesteckt und dann nur die entsprechenden PINs mit GND und VCC verbunden und ein Messgerät angeschlossen... Das Programm habe ich auf ein einfaches "Port 2 an -> warten -> port 2 aus -> warten" reduziert (Und ja, das Programm an sich funktioniert, wenn man den Atmega in das Arduino Board steckt). Nur, wenn man ihn "Standalone" verbinden möchte, weigert er sich irgendetwas zu machen. Ich habe folg: Vcc (+5V) mit VCC vom AVR & AVCC vom AVR & AREF vom AVR & Reset vom AVR GND mit beiden GND pins vom AVR Und GND & PIN2 mit dem Messgerät um zu schauen ob's klappt... Vielleicht fehlt da ja noch was? Wäre cool, wenn ihr mir helfen könnt ;) Lg Janik
Janik Sch schrieb: > auf das Steckbrett gesteckt > und dann nur die entsprechenden PINs mit GND und VCC > Vielleicht fehlt da ja noch was? Nicht schon wieder. Erst vor 5 Minuten war das Thema hier...
Janik Sch schrieb: > Ich habe folg: Ein Schaltplan wäre besser als Prosa. > Vielleicht fehlt da ja noch was? Ja, die Entkoppelkondensatoren für Spannungsregler und µC
:
Bearbeitet durch User
Max H. schrieb: > Ja, die Entkoppelkondensatoren für Spannungsregler und µC Okay, die habe ich in der Matrix eingebaut, aber da klappt es ja auch nicht...
Janik Sch schrieb: > (Und ja, das Programm > an sich funktioniert, wenn man den Atmega in das Arduino Board steckt). Hast du den µC auf internen Oszillator als Taktquelle eingestellt oder verwendet er einen externen Quarz?
Max H. schrieb: > Hast du den µC auf internen Oszillator als Taktquelle eingestellt oder > verwendet er einen externen Quarz? Nein, ich verwende keinen externen Quartz, aber ich weiß leider auch nicht, wie ich die Taktfrequenz einstellen kann... Ich verwende ja den Arduino Programmer.....
Janik Sch schrieb: > ich verwende keinen externen Quartz Du nicht, die Frage war aber ob sich der µC einen erwartet. > wie ich die Taktfrequenz einstellen kann Programmierst du den µC über den original Arduino Bootloader? Damit kannst du die Fuses nicht ändern. Der µC erwarte sich einen externen Quarz als Taktquelle und den musst du ihm dann auch geben. BTW: Quarz ohne 't'
:
Bearbeitet durch User
Max H. schrieb: > Programmist du den µC über den Arduino Bootloader? Damit kannst du > die Fuses nicht ändern, der µC erwarte sich einen externen Quarz als > Taktquelle und den musst du ihm dann auch geben. Ok, aber es geht ja auch irgendwie ohne, oder? Ich könnte ja auch einfach einen anderen Bootloader verwenden, oder? :) und wenn ich das mache wie stelle ich dann die Taktfrequenz ein? :)
Janik Sch schrieb: > Ok, aber es geht ja auch irgendwie ohne, oder? Ja, wenn du die Fuses entsprechen setzt. > Ich könnte ja auch einfach einen anderen Bootloader verwenden, oder? :) Ein Bootloader kann prinzipiell keine Fuses ändern.
Max H. schrieb: > Ein Bootloader kann prinzipiell keine Fuses ändern. Ok, ich weiß leider gar nicht was Fuses sind, aber das werd ich gleich mal googeln. Wie kann man Fuses denn sonst ändern...
Janik Sch schrieb: > ich weiß leider gar nicht was Fuses sind Siehe: AVR Fuses > Wie kann man Fuses denn sonst ändern... Mit einem Programmer
Max H. schrieb: > Janik Sch schrieb: > ich weiß leider gar nicht was Fuses sind > > Siehe: AVR Fuses > Wie kann man Fuses denn sonst ändern... > > Mit einem Programmer Okay, vielen Dank!! Ich werd mich jetzt mal weiter durchlesen :)
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.