Daten speichern + 16x16 RGB-LED-Matrix ansteuern

Hallo,
ich werde in naher Zukunft versuchen ein 16x16RGB-LED-Display an meinen Arduino Mega anzuschließen und anzusteuern.
Dafür werde ich sehrwahrscheinlich 8 Schieberegister benutzen, welche dann mit einem Binärstring beschrieben werden.
Nun habe ich die Befürchtung, dass, wenn ich längere/größere Animationen anzeigen lassen möchte,
der Speicherplatz des Arduinos nicht ausreichen wird. Deshalb würde ich gerne eine/mehrere Text-Datei/n o. Ä.
auf einer SD beschreiben, um die Strings für die jeweiligen Bilder abzuspeichern und später dann auszulesen.
Gibt es mittlerweile gute u. günstige Möglichkeiten, eine z.B. 4 GB große SD-Karte zum Speichern von Strings zu benutzen?
Danke schonmal im Vorraus!
Mfg. Nathax

Hi,
also ich hab ein Ethernet Shield auf meinem Arduino.
Auf dem ist auch ein SD-Karten-Slot
Kostet im fernen Osten so 15-20Euro.

Gruß/hk007

Hallo,

ich benutze ein
http://www.watterott.com/de/Arduino-mSD-Shield.

Hat einen SD Steckplatz. Zusätzlich noch ein

http://www.watterott.com/de/Real-Time-Clock-Module-RTC.

Damit zeichne ich dann Datum, Uhrzeit und mehrere Temparaturwerte auf eine 4GB SD-Karte auf.
Läßt sich sehr gut mit Excel weiterverarbeiten.

Gruss Kalli

Danke, ich würde aber am liebsten kein Shield benutzen, weil dann gleich alle Pins belegt werden
und man dann daran gebunden ist, ihn an den passenden Arduino draufzustecken bzw. umzulöten.
Dann kann man lieber gleich etwas passendes nehmen, was darauf ausgelegt ist, verkabelt zu werden.

also erstens belegt ein shield nicht alle pins, die unbenutzten werden einfach duch das shield durchgeschliffen, jedoch finde ich das SD-shield nicht gerade günstig. Ist dir eine SD-karte plus ein paar kabel und lötzinn günstig genug? wir hatten hier kürzlich ein thema wo gezeigt wurde wie man die SD-Karte direkt an den arduino bringen kann, das macht am ende das gleiche wie das Shield und die Library sollte man auch verwenden können. Man sollte nur darauf achten das die Arduino pins 5V haben und auf 3,3V runter gebracht werden müssen, damit die SD-karte nicht anfängt eine Lampe zu werden.

hier der thread: http://arduino.cc/forum/index.php/topic,106728.0.html

edit: wenn du ein altes (und/ oder defektes) gerät mit nem SD-schlitz hast ist es sicher ratsam diesen auszubauen und mit zu verwenden, eine direkt angelötete SD-karte wird nämlich sicher sehr unpraktikabel, wenn man sie danach nochmal anderswo nutzen will.

Ich mag das Durchschleifen halt nicht. Ich habe mich ja schon vorher informiert und bin bereits auf diese DIY-Variante gestoßen, habe aber gedacht, dass es heutzutage bessere Lösungen gibt.
Kann man dann richtige Text-Datein anlegen, oder nur Bits auslesen?
Ich schätze mal die Lib macht die Bits zu Text, oder?

Ich verstehe nicht, wieso Du eine RGB Matrix mit Schieberegistern ansteuern willst; so erhälst Du nur 8 verschiedene Farben.
Grüße Uwe

Es reicht doch locker wenn man 16x16x3 hat.
Ich wollte halt ein Mini-Display bauen, auf dem man später dann kleine Animation/Spiele anzeigen kann.
Warum meinst du 8 wären zu wenig?

hi, nathax,

es wär' nicht komplizierter, die dinger mit PWM zu befeuern, und Du hättest jede farbe, die Du willst. ich denke, das wollte uwe sagen...

gruß stefan

Ja, aber wie soll ich so viele Pins verwalten?

Schieberegister haben lediglich digitale Ausgänge. Entsprechend gibt es mit den 3 RGB-Anschlüssen auch nur 2 hoch 3 Farben:

RGB
111 - weiß
110 - gelb
101 - magenta
100 - rot
011 - cyan
010 - grün
001 - blau
000 - schwarz

Ich weiß, aber mit PWM bräuchte ich ganz schön viele PWM Pins.

Es gibt Lösungen:

  1. Rainbowduino
  2. TLC5940 multiplexen (dazu bräuchtest Du aber sehr viele TLCs, 1,5 pro 8x8 Matrix und darum mindestens 6 Stück und die Matrix muß RGB mit gemeinsamer Anode haben.
    Grüße Uwe

Ich habe mich bereits vor meiner Entscheidung für die Schieberegister
über Alternativen informiert und mir schien diese am besten, da
a. 4xRainbowduino = 100€ | 8xSchieberegister = 1€
b. 8 Farben sind für meinen Anwendungsbereich mehr als genug
c. 8 Farben + Schieberegister halten das Projekt für mich simpler,
unkomplizierter und übersichtlicher, ohne dabei mehr Nachteile,
sondern sogar ganz im Gegenteil, mehr Vorteile(siehe: a und b),
zu bekommen.

Nur funktionieren 8 Schieberegister alleine nicht.
Du brauchst zuerstmal nicht 8 sondern 16.

Du brauchst noch zusätzlich Treiber wie den ULN2803 (bei RGB LED mit gemeinsamer Kathode) bzw A2983 (bei RGB LED mit gemeinsamer Anode) die genügend Strom verkraften um alle LED einer Reihe ansteuern zu können ( das sind bei 8x8 Matrix und RGB LED der 24 fache LED-Strom.

Grüße Uwe

Warum meinst du ich bräuchte 16?
Ich orientiere mich an diesem Video:

Und brauche ja für die 16x3 Reihen 6 SR und für die Spalten 2.
Für die Stromstärke verwende ich folgende ICs: UDN2981A
Sollte doch alles so klappen.

Das Schieberegister ist 8Bit groß.

Deine 16x16 Matrix ist aufgebaut aus 4 Stück 8x8 Matrixen.

Je 8x8 Matrix brauchst Du 3 Schieberegister für die 3x8 RGB-Kathoden und 1Schieberegister nebst 1 UDN2983 für die 8 Anoden also im ganzen 4 Schieberegister das mal 4 sind 16 Schieberegister.

Du könntest je 2 8x8 Matrix zu einer 8x16 Matrix zusammenfassen (je 2 Anoden 2er Matrixen zusammenschließen) und so 2 Schieberegister und 2 UDN2983 zu sparen. Das mußt Du aber mit dem max Strom auf dem UDN2983 kontrollieren ob die den Strom von 16 Anoden verkraften ansonten kannst Du an die 2 Schieberegister 4 UDN2983 anschließen damit jeder UDN2983 weniger Strom bekommt.

Grüße Uwe

Ok, also brauche ich Minimum wv SR und ICs?
Edit: Und wie bekomme ich das mit dem Strom raus?

hi,

ich will Dir wirklich nichts einreden, aber mit 16 TLC5940 (ohne multiplexen) um je 1,50 hättest Du alles, was Du brauchst (ok, 12 widerstände für praktisch nix müssen auch noch her), und eben alle farben. und einfachste programmierung.
mit multiplex brauchst weniger ics, etwas mehr programmierung...
uwe, wie ist es eigentlich mit der helligkeit beim multiplexen? muß ja irgendwie weniger werden, oder hat es damit zu tun, daß zwischen pwm 1000 und 4000 kaum ein unterschied zu sehen ist?

gruß stefan

Die Programmierung der TLC ist nicht so einfach.

Die Helligkeit ist weniger da beim Multiplexen die Einschaltzeit ja durch die Anzahl der multigeplexten Reihen / Zeilen zu diividieren ist. Eine 8x8 Matrix ist jede LED nur 1/8 der Zeit an. Mann kann den LED-Strom erhöhen da die Verlustleistung ja auch nur 1/8 der Zeit produziert wird und 7/8 der Zeit die LED sich abkühlen kann.

Bei einem LED-Matrix ist die Helligkeit oft nicht so wichtig da man direkt draufschaut. Meist ist der volle mögliche Strom sowieso zu hell.

@Nathax

Der Strom ist die Summe der Ströme der maximal eingeschalteten LEd die Zusammengeschaltet sind und von einem treiber angesteuert werden.

Grüße Uwe