Projekt: RGB Matrix 8x8

  • Hallo!
    Ich hab mir mal wieder ein neues Ziel gesetzt: Möchte gerne eine Matrix bauen in RGB, in der Größe 8x8 Pixel. Habe auch schon einige Überlegungen angestellt, die möchte ich euch jetzt vorstellen, weil ich hoffe, dass ihr mir mögliche Fehler oder bessere Varianten der Verwirklichung aufzeigen könnt:) Ziel des Projektes ist das Sammeln von Erfahrung und am Ende eine hoffentlich gelungene Wandverschönerung.


    Die Matrix soll mit ihren Zeilen gemultiplext werden, sprich Spalten für Zeile 1 an den Spaltentransistoren ausgeben, Zeile 1 aktiv, Zeile 1 deaktiviert, Spalten für Zeile 2 ausgeben, Zeile 2 aktiv, usw. Die Farben sollen auch einzeln gemultiplext werden. Also pro Zeile sozusagen 3 Multiplexdurchläufe in echt.
    Für die Ansteuerung soll ein Atmega16 verwendet werden, da das mit den 32 I/Os gerade so hinkommen würde: 8 Zeilen in RGB = 3*8 = 24 + 8 Spalten = 32 benötigte Ports. Als LED möchte ich gerne die RGB Superflux von benkly nehmen, weil die preislich unschlagbar sind und von der Helligkeit denk ich mal ausreichen, soll ja nur eine Effektbeleuchtung werden. Da hab ich allerdings auch schon die erste Frage: Könnte es Probleme geben, wenn ich die Kathoden der 3 Farben zusammenfasse für die Spaltenleitungen?


    Der max. Pulsstrom im Datenblatt ist mit 100mA angegeben, ich hatte deswegen so 85mA veranschlagt pro LED damits noch ausreichend hell ist. Auf dieser Grundlage habe ich mir für die Zeilen den NPN BC Transistor 639 ausgesucht. Der schafft maximal 1A, bei 8*85mA=680mA ist also noch Luft. Die LED sollen in Emitterschaltung vom µC angesteuert werden, dafür habe ich folgenden Basiswiderstand ausgerechnet:


    Ic = 680mA, hFE = 40 (min im Datenblatt)
    Ib = Ic/hFE = 680mA/40 = 0,017A
    ->Rb = (Vcc-0,7V)/Ib = 4,3V/0,017A = 252,95 Ohm, der nächstkleinere Widerstand ist dann 240 Ohm, den ich dann verwenden würde.


    Für die Spalten das gleiche mit dem BC547, der schafft 100mA, bei 85mA pro LED wäre auch noch Platz.
    Ic = 85 mA, hFE = 110 (min im Datenblatt)
    Ib = Ic/hFE = 85mA/110 = 0,7727mA
    ->Rb = (Vcc-0,8V)/0,7727mA = 4,2V/0,007727A = 543,548 Ohm, der nächstkleinere ist dann 510 Ohm, den ich auch hier benutzen würde.
    Mit dem BC547 habe ich das auf genau die selbe Art schon einmal durchgerechnet, für eine 20mA LED, weil ich den hier zum Testen hatte, da hat das auch geklappt, waren glaube ich knapp 22kOhm da.


    Jetzt hab ich mir überlegt, ob der 7805 (habe eine 1A oder auch 1,5A Version) gekühlt werden muss. Es soll ein 12V NT genutzt werden. 12V-5V = 7V, pro Zeile werden max. 680mA verbraucht, großzügig nehme ich mal 700mA für die gesamte Schaltung an: 7V*0,7A = 4,9Watt. Nimmt man für den 7805 99K/W an komme ich so auf 485° über Zimmertemp. Stimmt die Rechnung? Könnt ihr mir einen KK empfehlen? Habe beim großen R leider nichts passendes gefunden, was nat. nicht bedeutet, dass es dort nichts gibt. Alternativ müsste ich dann eben ein anderes NT nehmen.


    Soweit zu meinen Überlegungen. Habe auch mal einen Schaltplan erstellt, so vom Schema her, mit einer LED Zeile und den Transistoren. Die Leitungen die ins leere gehen wären dann die Steuerleitungen vom µC, der Rest sollte sich erklären. Die 4 Anschlüsse der LED anstatt der 6 rühren nur vom Fehlen einer passenden Lib her, wäre aber in der Schaltung ja dann eh so, wenn das geht. Ich hoffe ihr könnt meinen Erläuterungen folgen und ich hab soweit alles nachvollziehbar aufgeschrieben und durchdacht. Über Anregungen und Hinweise wäre ich dankbar:)
    Hier noch der Plan:
    LG, ben:)
    EDIT: Widerstände für die LED in der Grafik eingefügt

  • BC639 ausgesucht. Der schafft maximal 1A, bei 8*85mA=680mA ist also noch Luft....
    Ic = 680mA, hFE = 40 (min im Datenblatt)...

    Im Datenblatt (Infineon) steht hFE=min 25 @ 500mA. Aber: bei 2V Uce und das ist im Fall eines gesättigten Schalters nicht gegeben, hFE ist dann viel kleiner. Das ist auch der Grund dafür, dass im Schaltbetrieb normalerweise mit hFE=10 gerechnet wird. Ausnahmen sind spezielle Schalttransistoren. Allerdings kommt dir in diesem Fall der Umstand zu Hilfe, dass nicht der Kollektor- sondern der Emitterstrom in die LEDs fließt. Trotzdem frage ich mich wie du bei den notwendigen Pegeln die Basisströme aus dem µC holen willst. Auch habe ich keine Strombegrenzungswiderstände für die LEDs gesehen.

  • Danke für deine Antwort:)
    Habe tatsächlich die Widerstände für die LED schon angedacht, aber in der Zeichnung noch nicht mit drin. Für Grün und Blau sollen es 12 Ohm werden, Rot bekommt 22. Werde das oben mal ändern. Für den BC639 werde ich also den Basiswiderstand nochmal neu berechnen. Passt der andere?

    Zitat von Transistor

    Trotzdem frage ich mich wie du bei den notwendigen Pegeln die Basisströme aus dem µC holen willst.

    Kannst du das erklären? Der µC bringt 5V und max. 20 mA, ich dachte das genügt?
    Habe mir das, was ich bereits erarbeitet habe aus Tutorien und anderen Nachschlagewerken zusammengeklaubt und größtenteils denke ich auch verstanden, aber seid bitte nachsichtig, falls ich mich bei einigen Dingen evtl. doch zu naiv anstelle.
    lg:)

  • Kannst du das erklären? Der µC bringt 5V und max. 20 mA, ich dachte das genügt?

    Auf Grund deiner Schaltung musst du die Basis des BC639 so dicht wie irgend möglich an die +5V bringen, weil am Emitter die LEDs, die Strombegrenzungswiderstände und der untere Schalttransistor hängen. Also muss der µC bei praktisch 5V am Ausgang auch noch den maximalen positiven Ausgangsstrom liefern. Das geht sicher nicht. Dazu müsste der Innenwiderstand ja praktisch null sein. Im Datenblatt steht sicher drin, wie weit die Ausgangsspannung bei einem bestimmten Strom absackt.
    Die Schaltung hat noch einen Nachteil: durch die Schaltung der BC639 als Emitterfolger (ja, es ist keine Emitterschaltung) verlierst du auch noch 0,7V Ube. Viel besser wäre es, die BC639 durch den komlementären pnp zu ersetzen. Dann gibts keine Probleme mit dem µC und für die LEDs bleibt auch mehr Spannung übrig.

  • War vorhin etwas in Eile und hab mich vielleicht nicht genau ausgedrückt. Mit Ersetzen durch den Komplementärtyp meinte ich, dass der npn-Emitterfolger durch eine pnp-Emitterschaltung ersetzt werden soll. Dann muss der µc als Stromsenke arbeiten und da liefert der i.A. mehr Strom und deine Rechenformel für den Basiswiderstand ist dann auch anwendbar.


  • Auf Grund deiner Schaltung musst du die Basis des BC639 so dicht wie irgend möglich an die +5V bringen, weil am Emitter die LEDs, die Strombegrenzungswiderstände und der untere Schalttransistor hängen. Also muss der µC bei praktisch 5V am Ausgang auch noch den maximalen positiven Ausgangsstrom liefern. Das geht sicher nicht. Dazu müsste der Innenwiderstand ja praktisch null sein. Im Datenblatt steht sicher drin, wie weit die Ausgangsspannung bei einem bestimmten Strom absackt.

    Okay, das hab ich verstanden. Hab im DB auf die Schnelle jetzt nichts gefunden, aber ich glaub es dir auch so.:)

    Zitat von Transistor


    Die Schaltung hat noch einen Nachteil: durch die Schaltung der BC639 als Emitterfolger (ja, es ist keine Emitterschaltung) verlierst du auch noch 0,7V Ube. Viel besser wäre es, die BC639 durch den komlementären pnp zu ersetzen. Dann gibts keine Probleme mit dem µC und für die LEDs bleibt auch mehr Spannung übrig.


    Okay. Habe mich bisher mehr mit NPN beschäftigt, aber ich will ja was lernen. Ich weiß, dass beim PNP die Polarität bzw die Spannungsverhältnisse an den jew. Anschlüssen genau umgekehrt sein müssen, als beim NPN. Sprich: Wenn der Emitter an Vcc angeschlossen ist, muss die Basis (mit entpr. Widerstand) auf Gnd geschalten werden, damit am Kollektor die LED leuchten. Ist die Basis auf 5V geschaltet, steht der Schalter quasi auf aus. Stimmt das so? Von der Richtigkeit des eben Gesagten ausgehend habe ich folgende Schaltung konstruiert: Genutzt wird der BC640, PNP Transistor, der ist so ziemlich das Gegenstück vom BC639, wie du es vorgeschlagen hast. An der Berechnung des Basiswiderstandes ändert sich nichts, wie ich von microcontroller.net weiß und verstanden hab. Also komme ich auf folgende Rechnung:
    Ic = 680mA, hFE nehme ich, wie ich von dir weiß jetzt mit 10 an, da im DB dasselbe steht, wie beim 639 auch.
    Ib = Ic/hFE = 680/10 = 68mA, die an der Basis ankommen werden.
    Rb = (Vcc-0,7V)/Ib = 63,23 Ohm.
    Noch der Schaltplan:
    Würde es so klappen? Der Widerstand der LED und die LED selbst dienen jetzt nur zur Vervollständigung, ich weiß dass der Widerstand keinen Sinn hat.
    lg und Danke für die schnellen Antworten:)

  • Jawohl. Da haben wir uns kurz verpasst. Also hab ichs mir ja richtig gedacht:) Danke für die Hilfestellung. Kann mir jemand bei der Kühlung des 7805 weiterhelfen? Gibts da Erfahrungen? Stimmt die Rechnung?
    lg,

    Erfahrungsgemäß werden die 78xx logischerweise sehr warm. Und wenn Du 7V bei knapp 700mA verheizen möchtest, wirst Du schon viel KK ansetzen müssen. Hier im Forum gibts aber ein KK Rechner, mit dem man schon ein guten Stück an den zu verwendenden ran kommt: <hier>


    Hier würde sich allerdings auch schon ein DC/DC Wandler anbieten. Die gibts mittlerweile schon für relativ kleine Kohle. Dieser hat leider ein bischen zu wenig Strom, aber so ungefähr sehen die Dinger aus ;)

  • Die Idee mit dem DC/DC Wandler ist gut. Aber mir ist grade eingefallen, dass ich noch ein einstellbares Nt herumliegen habe. Da gibts die Schritte 3, 4.5, 6, 7.5, 9 und 12V wenn mich nicht alles täuscht. Reichen die 7,5 um am 7805 konstante 5V zu bekommen? Dann käme ich (in Anbetracht der Uhrzeit grob gerundet) auf 2,5W, was mit dem von Transistor verlinken KK laut dem oben von CeeCee gelinkten Rechner (ich wusste ich hatte sowas schonmal gesehen, Obacht mit Komma und Punkt, da kommt man auf versch. Ergebnisse, wobei die 1.5 Schreibweise wohl die Richtige ist) auf eine Chiptemp. von ca. 60°C bei Zimmertemperatur, was wohl mehr als unschädlich ist. Danke für die Hilfestellungen und Tips. Die Datenflut ist echt so riesig, dass man zwar alles theoretisch selbst finden kann, aber das Richtige manchmal einfach untergeht. Danke! Dann werde ich morgen alles nochmal so durchdenken, und wenn mir keine Frage mehr einfällt, werd ich dann bestellen
    lg und gute Nacht:)

  • Also ich habe grad mal nachgemessen mit nem alten Gehäuselüfter, der wohl so etwa 100mA nehmen sollte. Bei eingestellten 7,5V kamen 9,1V an, bei eingestellten 6V 7,5. Das muss ich dann eben mal sehen, wie sich das bei der fertigen Schaltung verhält. Da bin ich ja flexibel, nach oben ist ja auch noch Luft. Mit dem KK den Transistor verlinkt hat hab ich da nochmal mehr Spielraum. Würde der 7805 3W verarbeiten müssen, käme ich mit KK so trotzdem nur auf etwa 60°C. Dann werde ich also den BC640, BC547, die entsprechenden Widerstände und den KK mal bestellen. Und natürlich Benklys Suflus, obwohls eigentlich schade um die 2übrigen Beinchen ist, sind aber die günstigsten RGB LED die ich finden konnte. Oder kann mich da jemand eines besseren belehren? Vielen Danke für eure Hilfe und die fachkundigen Anregungen bisher,
    lg:) ben

  • Hallo!
    Ich war in der ins Land gegangenen Zeit keineswegs untätig und möchte mal den Zwischenstand präsentieren. Habe die Steuerplatine inzwischen soweit fertig und die eigentliche Frontplatine heute angefangen, da die LED endlich kamen:) Ich lass einfach mal die (leider unscharfen, da der Autofokus immer noch rumzickt...) Bilder für sich sprechen.

    Hier also die Steuerplatine von oben, ist ein klein wenig chaotisch geworden, zumindest ich sehe grad noch durch. Die Kabel die zu sehen sind und mit Schrumpfschlauch direkt am Transistor weggehen sind die Kollektoranschlüsse der BC547 für die Spalten. Das ging platztechnisch nicht eleganter, weil ich den Aufbau so klein wie möglich halten wollte. Die Anschlüsse für die Zeilen sind noch nicht herausgeführt.

    Hier von unten. ( es ist mir wirklich sehr peinlich, solche unscharfen Bilder zu zeigen :/)


    Für die Frontplatine habe ich 1,5 Europunktraster zusammengeklebt und anschließend ein 8x8 Raster aufgezeichnet, hier schon mit den Eck LED:

    Und komplett:

    Hier müssen auf der Rückseite die LED jetzt noch korrekt verbunden werden, und die Anschlüsse der Steuerplatine herangeführt werden.


    Um die einzelnen Pixel als solche erkennbar werden zu lassen, will ich ein Raster aus dickem Karton auf die Frontplatine aufbringen, darauf dann ein Milchglasplexi o.ä. Habe also entsprechend mit Google skizziert und im Maßstab ausgedruckt, anschließend auf Pappe geklebt und ausgeschnitten.

    Die Einschubkanten der jeweiligen Rasterelemente habe ich aus Ungeduld kurzerhand mit dem Dremel reingemacht, der will ja auch seine Daseinsberechtigung. Mit dem Cutter oder der Schere hätte ich garantiert 3x solang gebraucht.

    Und hier mal testweise zusammengesteckt:

    Werde die einzelnen Pappstreifen vermutlich noch mit Alufolie bekleben, damit die Ausleuchtung homogener wird. So das ist der jetztige Stand, melde mich wieder, wenns was neues gibt. Für Fragen, Kritik und all sowas bin ich sehr dankbar:)
    lg, ben
    p.s.: Der aufmerksame Forenuser bemerkt Unregelmäßigkeiten in den Abständen der LED, das ging aufgrund des Rasters irgendwie nicht anders, ich hoffe inständig dass ich die Pixel dennoch mit genügen Alu und Abstand zur Frontplatte homogen bekomme.

  • Sieht doch schonmal gut aus.


    Die Unregelmäßigkeiten bei den LEDs kommen vermutlich daher, dass Du Dir einfach mal ein Raster aufgezeichnet hast.
    Das passt halt nun nicht zum tatsächlichen Raster auf der Platine...


    Ansonsten: Viel Erfolg beim weiteren Basteln!

  • Super Sache! So weit wie Du bis jetzt gekommen bist, wird das was!
    Ich habe hier schon öfter gesehen, das zwischen LEDs und Platine weisses Papier gelegt worden ist. Leitet Deutlich schlechter als Alufolie, reflektiert aber deutlich besser als Platinen. Ist wohl aber leider zu spät dazu ;)


    Hier also die Steuerplatine von oben, ist ein klein wenig chaotisch geworden, zumindest ich sehe grad noch durch. Die Kabel die zu sehen sind und mit Schrumpfschlauch direkt am Transistor weggehen sind die Kollektoranschlüsse der BC547 für die Spalten. Das ging platztechnisch nicht eleganter, weil ich den Aufbau so klein wie möglich halten wollte. Die Anschlüsse für die Zeilen sind noch nicht herausgeführt.

    Falls Du mit Eagle umgehen kannst, kannst Du damit indirekt auch Lochrasterplatinen routen. Das hilft mir immer ungemein ein Lochrasterlayout zu entflechten.


    Einfach ganz normal den Schaltplan erstellen und dann im Board das Raster auf (ich glaube 2,54) und Puntdarstelleung stellen. Ob Du das richtige Raster erwischt hast, siehst Du dann an dem Abstand eines bedrahteten ICs. diese Abstände müssen gleich zu denen des Rasters sein und im Raster liegen. Dann wie gewohnt routen und optimeren und von dort aus ganz einfach die Lochrasterplatine aufbauen.
    Das hat den unschätzbaren Vorteil das Du mögliche Fehler auf dem Lochraster und direkt im Schaltplan korrigieren kannst. Somit hast Du direkt einen Funktionierenden Schaltplan aus dem man dann bei Bedarf eine professionell hergestellte Platine ableiten kann.

  • ja, das wird doch! :thumbup:


    die Platine ließe sich ja auch nachträglich noch weiß lackieren, LEDs abkleben (Isolierband o.ä.) und dann mit der Spraydose drüber - bringt schon noch ein *bisschen* an Helligkeit.


    ich würde das Raster dann auch weiß lackieren statt mit Alufolie bekleben, das soll ja möglichst diffus streuen - wenn das irgendwo spiegelt, dann bekommst Du auch wieder hellere und dunklere Stellen auf dem Plexiglas...


    und weniger Aufwand ist's auch noch... ;)

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Also um Lochrasterplatinen zu routen kann man auch einfach dieses kostenlose Tool nehmen:
    http://blackboard.serverpool.org/Home/News.html


    Ist echt genial das Ding und wird vorallem weiterentwickelt nach Wünschen von Usern. Ist ein ein Mann Projekt das erst für Privat erstellt wurde.

    Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
    Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum. :D

  • Das Programm hat (genau so wie Lochmaster) aber den entscheidenden Nachteil, dass man eben kein konsistentes Layout aus einem Schaltplan entwickeln kann, sondern selbst auf fehlende Verbindungen achten muss (zumindest hab ich dazu online nichts gesehen); so wie das bei Eagle und natürlich auch bei Target geht. Dafür hat man den Vorteil, dass das Lochraster schon eingeblendet ist. Allerdings könnte man das bei Target beispielsweise auch als Foto passend skaliert hinterlegen.

  • Das Programm hat (genau so wie Lochmaster) aber den entscheidenden Nachteil, dass man eben kein konsistentes Layout aus einem Schaltplan entwickeln kann, sondern selbst auf fehlende Verbindungen achten muss (zumindest hab ich dazu online nichts gesehen); so wie das bei Eagle und natürlich auch bei Target geht. Dafür hat man den Vorteil, dass das Lochraster schon eingeblendet ist. Allerdings könnte man das bei Target beispielsweise auch als Foto passend skaliert hinterlegen.

    Jepp, das sehe ich auch so. Bei Eagle kann man ein "Punktraster" oder ein "Linienraster" einblenden. Mit dem "Punktraster" und ein wenig Phantasie ist dann jeder Punkt halt ein Loch. Weniger elegant als ein Bild einzublenden, aber zumindest funktionierts :D