PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Matrixsteuerung



Superfreak
01.04.2008, 14:19
hallo liebe leute,

hat jemand von euch eine idee wie man eine Matrixsteuerung bauen kann, am besten ganz simpel und es soll mit einem atmega 32 o.ä. programmiert werden.

die matrix sollte ungefähr 20 x 20 groß sein.

ich hoffe einer von euch hat eine Idee wie man das aufbauen kann.

Man sollte ja auch beachten das die Leds viel strom brauchen.

wenn jemand einen schaltplan hat, wär es noc hbesser

Michael 123
01.04.2008, 16:44
Hallo,

20x20 Leds sind 400! Leds.
Naja ich bin auch auf der Suche nach einer ansteuerung für 400Leds. Aber bin irgendwie weg von Matrix bzw. einer so großen. Lieber eine 40*10 Matrix. Da bekommen die LEds nicht so viel Kawum ab.
Wenn du weiter kommst sag mir dann bitte bescheid.
Wenn ich weiter komm sag ich nicht natrülich auch bescheid.

mfg
Michael

Besserwessi
01.04.2008, 21:05
Eine Matrix 20x20 ist schon ziehmlich an der Grenze, da wird man nicht mehr die volle Helligkeit der LEDs erziehlen. Da ist die 40x10 schon besser. Wenn man mit wenig Helligkeit auskommt, wäre 20x20 aber möglich.
Wegen der vielen Ausgänge, wird man am besten wohl eine Porterweiterung mit Schieberegistern (z.B. 74HC595) nehmen. Die richtung mit den 10 kann man wohl direkt ansteuern.
Bei normalen 20 mA LEDs wird man bis etwa 200 mA gepulstem Strom gehen können. Je nach nötiger Helligkeit eventuell auch weniger.
Da wären als Treiber für die Kathoden ULN2003 möglich. Für die Anoden wären wohl etwas stärker Treiber nötig, denn da wird man bis zu 40 LEDs zu je 200 mA also 8 A vorsehen müssen. Das ist dann was für Fets oder PNP Transistoren.
Bei den Strombegrenzungswiderständen wird man auch etwas auf die Leistung schauen müssen. Bei 1 V Spannungsabfall sind das immerhin 200 mW. Das klingt wenig, aber die Widerstände liegen tendenzmäßig dicht zusammen und behindern sich so gegenseitig bei der Wärmeabgabe.
Wenn man alles eine LED Farbe hat, sollte man mit 0,5 V Spannung am Widerstand und einer passend eingestellten Spannung auskommen.

tholan
01.04.2008, 23:32
Hi,
ich hatte mal die Idee, LEDs für sowas mit 'ner Konstanten Spannung zu betreiben.
Halt die Flusspannung für sagen wir 20 mA fürs Stück.
Ist halt nur die Frage, ob alle LEDs bei dieser Spannung gleich hell sind, bzw. den gleichen
Strom nehmen.
Zudem braucht man schnelle,einstellbare Spannungsregler, die bei plötzlicher Laständerung nicht rumeiern.
Die Ansteuerung wäre jedenfalls einfacher, wenn man ohne PWM auskäme.

radbruch
02.04.2008, 00:01
Hallo

Das geht ja wohl in diese Richtung:

https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=38515

Möglichst viele LEDs ansteuern. Eine Lösung wäre vielleicht das charlieplexing (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=355705#355705):

http://www.mikrocontroller.net/topic/94598

mic

Superfreak
02.04.2008, 10:13
joa.. aber weiß nciht wie das mit den schieberegistern geht.. muss man einfach vom µC ein Bitmuster ausgeben z.b 00111001 und später wird dann die LED leiste xy angesprochen?

aber danke schon mal für eure hilfe...

wie gesagt die matrix kann auch kleiner sein

Besserwessi
02.04.2008, 17:23
Leds mit konstanter Spannung Anzusteuern geht praktisch nicht. Die Spannung ist Temperaturabhängig und sinkt bei Erwärmung. Eine Stromsteurung ist möglich, die auch von einer externen Steuerspannung abhängen kann. Man braucht dann aber eine ganze Menge DA Wandler. Da ist PWM eher einfacher, braucht nur recht viel Rechenzeit bei so vielen LEDs.

Das Charliepixelung ist eigentlich nur dann möglich wenn höchstens 3 bis maximal 10 LEDs gleichzeitig hell sein sollen. Viel mehr als 3 LEDs kann man nicht über die Kontrollerpins steuern und auch mit Treiben werden die LEDs ab etwa 10 dunkler.

Die Schieberegister schließt man am einfachsten an die SPI schnittstelle an. Die Daten werden dann einfach in das SPI-out Register geschrieben und erscheinen mit relativ wenig (ab 16 Takte je Byte) Verzögerung im Schieberegister. Man muß dann nur noch das Latch von Hand bedienen. So ein Schieberegister wird auch als Porterweiterung bezeichnet und kann auch z.B. 40 Bits lang werden um die eine Richtung der Matrix zu steuern.

tholan
03.04.2008, 11:20
Leds mit konstanter Spannung Anzusteuern geht praktisch nicht. Die Spannung ist Temperaturabhängig und sinkt bei Erwärmung.
Heißt das jetzt, das der Spannungsfall der LEDs größer wird mit Erwärmung, oder das der Spannungsregler eiert?
Ich hab hier jedenfalls ein paar einstellbare Regler (low drop, fast response) aus alten 4- und 586ger Boards gerettet,
die seinerzeit aus 5V 3,3V fabrizierten. Die sollten doch wohl schön akkurat und schnell auf Laständerungen
reagieren. Die Ausgangsspannung beim MIC29302BT z.B. soll lt. Datenblatt um nur 20mV variieren im Bereich 0-120 Grad C.
Der "output voltage temperature coefficient" soll typisch 20ppm pro Grad Celsius betragen.
Die Spannungsschwankungen bei Laständerung (Transienten) sehen nicht so gut aus und sind im Datenblatt auch nur mit 'ner
Stromdifferenz von 10mA dokumentiert, wenn ich das richtig entziffere. Da müßten dann wohl noch fette Kondensatoren hinter,
was wieder den Regler gefährtet.
Ich hab noch ein paar LED-Matrixsegmente von Pollin rumliegen. Soll ichs mal testen, oder meint Ihr,
ich kanns gleich knicken?

Superfreak
03.04.2008, 16:22
also macht man dasaeinfach mit einem µC und dann einem schieberegister

das war es???

welches schieberegister empfehlt ihr mir,,.. solte am besten nciht all zu teuer sein, da ich ja mehrere schieberegister brauche

tholan
03.04.2008, 18:10
ja
74595
tschüß

Besserwessi
03.04.2008, 21:50
Die Spannung an den LEDs sinkt mit steigender Temperatur. Oder bei konstanter Spannung steigt der Strom mit steigender Temperatur. Daher geht die reine Spannungssteuerung definitiv nicht. Man kann den Mindestwert für den Serienwiderstand so abschätzen:
Durch den Strom erwärmt sich die LED und dadurch sinkt die Spannung gegenüber dem kalten zustand. Die Spannungsänderung auf Grund der Erwärmung muß deutlich kleiner sein als die Spannung am Widerstand. Für etwa -2-5 mV/K und eine Temperaturerhöhung von etwa 50 K also 100-250 mV. Man sollte also mindestens 0,5 V für den Vorwiederstand einplanen.
Die mögliche Alternative zu einem Vorwiderstand wären Stromquellen als Treiber. Man hat dann halt die Wärmefreisetzung an den Treibern, statt an den Widerständen.

tholan
04.04.2008, 08:46
Danke Dir,
ich dachte, es liegt an den Spannungsreglern.
Dann läßt sich das alles wohl doch am besten mit PWM regeln.

@Superfreak:
Am gebräuchlichsten sind übrigens die HCT-Typen, also 74HCT595
die sind ein bischen langsamer, als die TTL Typen "LS".
Die "LS" scheinen wohl ausgestorben zu sein.
Bei Segor werden die als obsolet und nicht mehr lieferbar bezeichnet.
Den Ausgangsstrom für Zeilen und Reihen mußt Du natürlich noch verstärken.
Entweder mit Transistoren, oder, wie's wohl die meisten machen ist mit den
Darlington- Transisorarrays ULN200/2/3/4. Bei 40Stck in einer Zeile wirds allerdings heftig.
Notfalls FETS, wie Besserwessi es oben auch schon gesagt hat.
Ich würde an Deiner Stelle auch mal probieren, wie hell die LEDs scheinen müssen.
Wenn Du eine eher "schummrige" Umgebung hast, kommen die mit recht wenig Strom aus, um
deutlich sichtbar zu leuchten. Leistung und Helligkeit verhalten sich nach meinem Empfinden
nicht linear. (bin da mal vorsichtig, bevor ich mich wieder aufs Glatteis bewege.)
Segor bietet alternativ zum 74LS595 den TIPC6B595N als "=Power-74LS595" an
Der soll bis 500mA treiben können. Da könnte man sich evtl. ,
je nach Anzahl und Helligkeit der LEDs, die Stromverstärkung sparen.
Der soll bei 'ner Menge unter 10 1,20 pro Stück kosten, darüber 96ct.
Die 74HCT595 kosten 70ct.
Insgesamt würde ich die "Peripherie" nicht als teuer bezeichnen.
Das Teuerste werden wohl die LEDs oder Anzeigemodule.

Superfreak
11.04.2008, 13:38
ja es gibt ja auch leds die brauchen nur 1 ma strom oder so.. und die kostet pro stück aber 50 cent

aber danke für die information, wenn ich wa saufgebaut habe kann ich das ja hier reinposten, wer will kann mich ja dann was fragen^^

Besserwessi
11.04.2008, 15:15
Die Helligkeit nimmt ziehmlich linear mit den Strom zu. Das gilt zumindest gepulst, sonst steigt bei hohen Strömen die Temperatur und die Helligkeit wird dadurch etwas weniger. Bei sehr kleinen Strömen (oft unter 1 uA) nimmt die Helligkeit von der Tendenz her etwas schneller ab, aber der Effect ist bei den modernen LEDs meistens sehr klein, war mal wichtig bei den ersten LEDs.

Die 74HC595 sind bei Reichelt für 20 C zu bekommen, als SMD sogar noch günstiger.

Wegen der Matrixansteuerung wird man nicht nicht 1-2 mA auskommen, sondern eher mit 50-200 mA arbeiten müssen, denn jede LED ist höchstens ein zehntel der Zeit an. Da sind die Treiber also gar nicht so falsch. Auch bei PWM Reglung braucht man Vorwiderstände. Die einzige alternative zu den Widerständen wären Stromquellen oder Inductivitäten. Aber mit Induktivitäten wird das mit dem schnellen Umschalten für die Matrix schwer. So schlimm sind die Vorwiderstände doch auch nicht.