rgb cube mit tlc5940 und cardreader

Hallo zusammen,

ich habe nun mein Projekt fertig gestellt und einen schönen 4x4x4 rgb cube fertig gestellt.

Dazu habe ich das folgende sketch verwendet: ledcube_v3.zip - Google Drive in dem die Tlc5940.h-ilb verwendet wird.

Zusätzlich habe ich eigene Animation erstellt und stieß relativ schnell an die Grenze des machbaren, da der RAM voll war.

Nun wollte ich die Animationen halt auf einer SD-Karte speichern um den Ram zu entlasten.
Nach ein paar Tagen erhielt ich meinen sd-karten-adapter “TE417” von ebay, welcher an pin 11, 12 und 13 angeschlossen wird.

Diese sind aber bereits durch die tlc5940.h-lib blockiert. Wenn ich nun zusätzlich den Cardreader (per CS) anklemme, läuft der Würfel nicht mehr flüssig bzw. werden die LEDs dunkler.

Nun besteht aus meiner Sicht nur noch die Möglichkeit, entweder die Pins von der Lib oder die des Cardreaders zu ändern. Leider soll beides nicht Möglich sein, wie ich in mehreren Foren gelesen habe.

Wie würdet ihr mein Problem lösen?
Einen zweiten arduino nehmen der die Karte ausliesst und es dem ersten per Serial.print sendet!?

Vorab danke für Eure unterstützung.

hi,

sowas wäre möglich:

http://www.ebay.at/itm/BV518-Serial-Data-Storage-for-Microcontroller-Arduino-RPi-SD-Card-ByPic-/111956824077?hash=item1a1125900d:g:Z58AAOSwgApXASZy

gruß stefan

ihmSelbst:
Nun besteht aus meiner Sicht nur noch die Möglichkeit, entweder die Pins von der Lib oder die des Cardreaders zu ändern. Leider soll beides nicht Möglich sein, wie ich in mehreren Foren gelesen habe.

Wie würdet ihr mein Problem lösen?

Hallo,
habe gerade eine SD-Karte an den Pins 2, 3, 4, 5 erfolgreich betrieben. Verwendet habe ich f:\Arduino\libraries\SdFat\examples\SoftwareSpi\SoftwareSpi.ino als Vorlage und Teile von ReadWrite.ino aus den Beispielen. Bitte beachten:

#if SD_SPI_CONFIGURATION >= 3  // Must be set in SdFat/SdFatConfig.h

Es funktioniert auch nur mit SD.h:

#include <SPI.h>
#include <SD.h>
...
const uint8_t SD_CHIP_SEL_PIN = 2;
const uint8_t SOFT_MOSI_PIN = 3;
const uint8_t SOFT_MISO_PIN = 4;
const uint8_t SOFT_SCK_PIN  = 5;
...
  if (!SD.begin(SD_CHIP_SEL_PIN, SOFT_MOSI_PIN, SOFT_MISO_PIN, SOFT_SCK_PIN)) {
    Serial.println("initialization failed!");
    return;
  }

Ich erlaube mir, “mehreren Foren” zu widersprechen :slight_smile:

Der TLC5940 braucht 2 stabile Signale (den GSCLK (PWM Takt) und ein BLANK signal alle 4096 GSCLK Takte) Diese werden wahrscheinlich von Timern/Countern bereitgestellt und darum können diese beiden Pins nicht getauscht werden. Alle anderen Pins sind austauschbar. Der TLC kann auch über die SPI schnittstelle mit Daten versorgt werden. Dann kann er paralell zur SD Karte betrieben werden (mit 2 verschiedenen Enable signalen) aber er muß die Busübertragung mit den Zugriffen auf die SD Karte teilen.

Auch ein Zugriff auf die SD Karte via serial kann den TLC ausbremsen. Jetzt weiß ich nicht wie du den LED Kube gabaut hast, könntest du den TLC5940 mit dem TLC5947 ersetzen? Dieser hat eine viel einfachere ansteuerung und generiert die PWM ansteuerung automatisch und muß nicht jeder PWM Zyklus gestartet werden.

Grüße Uwe

uwefed:
Jetzt weiß ich nicht wie du den LED Kube gabaut hast, könntest du den TLC5940 mit dem TLC5947 ersetzen? Dieser hat eine viel einfachere ansteuerung und generiert die PWM ansteuerung automatisch und muß nicht jeder PWM Zyklus gestartet werden.

Das würde leider sehr aufwändig werden, da ich praktisch noch einmal (fast) von vorn anfangen müsste…

agmue: ```

if SD_SPI_CONFIGURATION >= 3  // Must be set in SdFat/SdFatConfig.h

.. bekomme dabei leider eine Fehlermeldung, obwohl ich die config zu "#define SD_SPI_CONFIGURATION 3" geändert habe..


SoftwareSpi:57: error: #error SD_SPI_CONFIGURATION must be set to 3 in SdFat/SdFatConfig.h

error SD_SPI_CONFIGURATION must be set to 3 in SdFat/SdFatConfig.h

^

Mehrere Bibliotheken wurden für "SdFat.h" gefunden Benutzt: C:\Users\ihmSelbst\Documents\Arduino\libraries\SdFat Nicht benutzt: C:\Users\ihmSelbst\Documents\Arduino\libraries\src exit status 1

error SD_SPI_CONFIGURATION must be set to 3 in SdFat/SdFatConfig.h


Was mache ich hier noch falsch?

agmue: Ich erlaube mir, "mehreren Foren" zu widersprechen :)

Ich hoffe das Du recht behalten wirst ;-)

ihmSelbst: Ich hoffe das Du recht behalten wirst ;-)

Da der UNO mit SD-Kartenmodul neben mir eine SD-Karte beschreibt und liest, bin ich da ganz entspannt :)

ihmSelbst: Was mache ich hier noch falsch?

Die von Dir gemachte Änderung wird vom Compiler nicht gesehen. Möglicherweise hast Du die falsche Datei verändert. Er sieht ja auch zwei Bibliotheken.

Welchen Arduino hast Du?