Go Down

Topic: Daten speichern + 16x16 RGB-LED-Matrix ansteuern (Read 18025 times) previous topic - next topic

sth77


Quote
Anyhow, the turn-off delay for the UDN2981A is something about 5µs, and it was too long for that purpose. The source driver of the R-Duino has a turn-off delay of 1µs, and I haven't seen any ghosting on published images.


http://arduino.cc/forum/index.php/topic,18464.msg134597.html#msg134597


Das hingegen würde ich auf eine ungünstige Programmierung schieben. Nimm mal den Rainbowduino als Gegenbeispiel, der von der Beschaltung her ähnlich ist. Hier heißt es: (Link)
Quote
M54564P is an 8 circuit output-sourcing Darlington transistor arrays, widely used with proven performance. The most critical feature meeting our requirement is its fast turn-off time of 4.3ms which guarantee a vivid rendering.

Das ist immer noch gut Faktor 1000 zu den 5µs. Und zieht der Rainbowduino um den Faktor 1000 die Farben nach? ;)
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Megaionstorm

Quote
Und zieht der Rainbowduino um den Faktor 1000 die Farben nach?


Keine Ahnung, habe noch nie selber mit dem Rainbowduino gearbeitet !
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Nathax

#77
Jul 17, 2012, 02:10 pm Last Edit: Jul 17, 2012, 04:47 pm by Nathax Reason: 1
Vielen Dank, Megaionstorm.
Ich habs jetzt endlich mit der SD.lib hinbekommen.
Geht aber auch einfach mit irgendeinem anderen Pin anstelle von 53.
Hier das abgewandelte Beispiel: (ReadWrite)

[...]
pinMode(53, OUTPUT);
   
  if (!SD.begin(53)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");
[...]

Soll ich jetzt mit Schieberegister oder TLC arbeiten?
Eigentlich dürften die paar Mikrosekunden ja keinen warnehmbaren Einfluss haben.

Megaionstorm

Schieberegister und TLC !

Der TLC5940 steuert die Leds einer Zeile und das Schieberegister schaltet zwischen den Zeilen hin und her.

Vermute mal das die Matrix common Anode ist.
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Nathax

Ja, gemeinsamer Plus.
Ich weiß nicht. Eigentlich würd ich gerne noch die Meinungen
der anderen hören. Ich brauch mit deinen Teilen dann 2 8bit-Schieberegister und wv. der Transistoren?

uwefed

Als Treiber UDN2983. Diese 8 Darlington-Transistor Array kannst Du direkt mit 8 Ausgängen des Arduino ansteuern oder über ein Schieberegister. Ein Schieberegister ist langsamer.
Grüße Uwe

Nathax

Also brauch ich 16 von den Transistoren und 16 freie digitale Pins?

Megaionstorm

Bei meiner Lösung würdest Du 3 Pins für die 74HC595 und 5 für die TLC5940NT benötigen.

http://code.google.com/p/tlc5940arduino/wiki/ArduinoMegaHardwareSetup
http://www.arduino.cc/en/Tutorial/ShiftOut

Zusätzlich noch die 16 Transistoren.
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Nathax

Jo, aber kann man denn die Transistoren nicht auch mit dem TLC ansteuern?
Dann bräuchte ich ja für die 16x16 RGB-Matrix ja lediglich 4 TLCs und 16 Transistoren oder?

Megaionstorm

#84
Jul 17, 2012, 04:57 pm Last Edit: Jul 17, 2012, 05:00 pm by Megaionstorm Reason: 1
Also der TLC kommt an die Kathoden der common Anode RGB-Matrix.
Macht 3X16 Channels = 3 TLC5940
Am besten einer für Rot, einer für Grün und einer für Blau.

Die 74HC595 steuern über die Transistoren die Anoden der Matrix.

Die Transistoren müssen sich zwischen dem 74HC595 und der Matrix befinden weil der 74HC595 alleine nicht den nötigen Current für die Leds aufbringen kann.
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Megaionstorm

Es ist aber auch möglich das Du stärkere Darlington Transistoren benötigst.
Ich selber benutze nur 8X8 RGB-Matrixen.
Z.B. den BDX46 PNP Darlington Transistor.
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Nathax

#86
Jul 17, 2012, 05:19 pm Last Edit: Jul 17, 2012, 05:26 pm by Nathax Reason: 1
Ja, aber gehen auch die TLCs anstelle der Schieberegister?
Außerdem möchte ich eig. nicht die Transistoren verwenden,
weil das ja kaum einen Unterschied zu den TLCs + UDN machen würde.
Und noch ne Frage:
Wie kann ich die in der Schleife ausgelesene Textdatei in einen String schreiben?
Ich wollts den Byte der jeden Durchgang ausgelesen wird an einen String ranhängen, aber wie geht das?

[...]

String Text = "";
  // re-open the file for reading:
  myFile = SD.open("test.txt");
  if (myFile)
  {
    Serial.println("test.txt:");
   
    // read from the file until there's nothing else in it:
    while (myFile.available())
    {
      Text += myFile.read();
    }
   
    // close the file:
    myFile.close();

[...]

Megaionstorm

#87
Jul 17, 2012, 05:40 pm Last Edit: Jul 17, 2012, 05:42 pm by Megaionstorm Reason: 1
Da meinst ob Du statt Schieberegistern oder einem UDN einen TLC an die Anoden der Matrix anschliessen kannst ?

Nein, den die TLC sind Current Sinking und nicht Current Sourcing !

Bei den Anoden gibt es nur zwei Möglichkeiten: Schieberegister + Darlington Transistoren oder UDN2981
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Nathax

Ne ich meine, die Anoden mit den UDNs anzusteuern und die UDNs wiederrum mit den TLCs.
Dann jeweils 2 UDNs mit einem TLC.
Geht das?

Megaionstorm

#89
Jul 17, 2012, 05:51 pm Last Edit: Jul 17, 2012, 05:54 pm by Megaionstorm Reason: 1
Nein das geht nicht.
Du brauchst 8 Arduino Pins für einen UDN2981, in deinem Fall also 16.
Du kann zwei UDN2981 allerdings auch durch zwei 74HC595 steuern und brauchst dafür nur 3 Pins !
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Go Up