und noch ne Frage zum TLC5490

Möchte den gerne in der Setup initialisieren, in etwa so:

void setup()
{
  Serial.begin(9600);
  Tlc.init();
  for (int r=0; r<16; r++) {
  Tlc.clear();
 Tlc.set(r, 1500);
     Tlc.update();
  }
}

Was passiert ist (nachgemessen) dass er ganz kurz die Spannung am Ausgang bzw den PWM Wert auf 1500 setzt, und dann wieder sofort zurück auf 0, und das für jeden Channel. Was muss ich ändern dass er den Wert zunächst behält?
Oder muss beim TLC durchgängig der jeweils aktuelle Wert in der Hauptprogrammschleife geupdated werden?
Hoffe auf Aufklärung

in den Examples steht dazu leider nix ausser

void setup()
{
/* Call Tlc.init() to setup the tlc.
You can optionally pass an initial PWM value (0 - 4095) for all channels.*/
Tlc.init();
}

Gruß und Danke

Hallo,
probier mal:

void setup()
{
  Serial.begin(9600);
  Tlc.init();

  Tlc.clear();

  for (int r=0; r<16; r++) {
   Tlc.set(r, 1500);
   Tlc.update();
  }
}

So endlich Zeit gehabt und getestet.
Fazit: geht immer noch nicht, auch nicht in der Main loop, da fängts einfach nur an zu flimmern.
Hoffe hier ist jemand, der sich gut auskennt mit dem TLC und mich mal aufklären kann.
Gruß

Hallo currymuetze
Ich hab etwas Erfahrung mit dem TLC5490; Ich kann Dir aber nicht weiterhelfen da ich ihn zusammen mit einem A2983 im Multiplexbetrieb mit 6 x 5 RGB LEDs erfolgreich betreibe. Genau gesagt eine TIX-Uhr inspirierte Uhr http://www.tixledclock.com/ mit den Monome inspirierten Silikontasten von Sparkfun Button Pad 4x4 - LED Compatible - COM-07835 - SparkFun Electronics .
Näheres und Bibiothek unter Mini Monome und http://www.thebox.myzen.co.uk/Hardware/Mini_Monome_files/Arduino_Firmware.zip . Ich habe die Bibiothek auf meine Bedürfnisse umgeschrieben.
Meine Uhr ist noch im Projektstadium. Die Anzeige funktioniert, der Sketch hat noch nicht alle Funktionen die ich möchte, muß noch eine Möglichkeit finden einen Buzzer anzuschließen (die Ausgänge des Arduino sind bereits alle verbraucht) und das Gehäuße muß noch gemacht werden.

Der TLC5490 braucht, wenn wir die Datenübertragung außer acht lassen, 2 Takte für die PWM Funktion:
4096 Takte an GSCLK und dann einen Impuls an BLANK um den Zyklus wieder zu starten.
Die Daten für die PWM bzw wenn vorgesehen die DOT CORRECTION brauchen nur einmal übertragen werden und werden bei jedem PWM-Zyklus verwendet.

Dies alles sollte die Bibiothek übernehmen.

Wie versorgst Du die LEDs mit Strom? Welchen LED-Strom hast Du eingestellt (Widerstand an IREF)? Über die 5V des Arduinos? Hat Du eine externe Stromversorgung der LED versucht? Hast Du eine andere Bibiothek versucht?

Viel Grüße Uwe

Unten 2 Fotos: Uhr von vorne mit allen LED eingeschaltet und Platine mit Arduino NANO, TLC5490, A2983 und RTC-DS1307-Modul. Die roten Platinen sind die der Silikontasten.

Orologio con tutti i LED accesi.jpg

Nochmal Deinen Kode angeschaut:

void setup()
{
  Serial.begin(9600);
  Tlc.init();                               //initialisiert die Bibiothek
  for (int r=0; r<16; r++) {          // Schleife von 0 bis 15
    Tlc.clear();                          // Löscht die Daten des Buffers
    Tlc.set(r, 1500);                   // setzt PWM Wert
    Tlc.update();                       // überträgt Buffer auf TLC
  }
}

Das Ergebnis ist, daß die Ausgänge 0 bis 14 einen bis wenige PWM -Zyklen machen und Ausgang 15 dauernd den PWM ausgibt.

Um alle Ausgänge auf 1500 zu setzen:

void setup()
{
  Tlc.init();                               //initialisiert die Bibiothek
  Tlc.clear();                            // Löscht die Daten des Buffers
  for (int r=0; r<16; r++) {         // Schleife von 0 bis 15     
    Tlc.set(r, 1500);                   // setzt PWM Wert
  }
  Tlc.update();                         // überträgt Buffer auf TLC
}

Aber das ist sehr ähnlich dem was Spaceball vorgeschlagen hat.

lies mal:
http://alex.kathack.com/codes/tlc5940arduino/html_r014/index.html
http://alex.kathack.com/codes/tlc5940arduino/html_r014/group__CoreFunctions.html#g5e5acd62f0c91579694ed4cffd88bd76

danach müßte auch ein:

void setup()
{
  Tlc.init(1500);   //initialisiert die Bibiothek und setzt alle Kanäle auf 1500
  Tlc.update();     // überträgt Buffer auf TLC
}

genügen.

Grüße Uwe

Hi Uwe,

ich habe die schaltung ein wenig modifiziert um damit meine KSQs für die HP LEDs zu steuern.
Siehe auch hier:

Gruß
Thorsten

uwefed:
danach müßte auch ein:

void setup()

{
 Tlc.init(1500);   //initialisiert die Bibiothek und setzt alle Kanäle auf 1500
 Tlc.update();     // überträgt Buffer auf TLC
}



genügen.

Grüße Uwe

das funktioniert,vielen dank!

Gut; gratuliere

Hi,
eine Frage hierzu habe ich noch:
Wenn ich hochdimme funktioniert das sehr gut, wenn ich bei jedem Dimmschritt nur
Tlc.set(x, y);
Tlc.update();
ausführe und den
Tlc.clear()
weglasse.
Ist das ok so?`Wann sollte man den Buffer des TLC komplett löschen?
Hintergrund ist der, dass mit clear lösche ich ja alle 16 KAnäle, bei jedem einzelnen Dimmschritt ändere ich aber nur einen Kanal. Funktionieren tut es so gut, mich interessiert nur wann und wofürman letztendlich wirklich den Buffer löschen muss.
Gruß

Du löscht den Buffer wenn Du alle Kanäle auf null stellen willst. Wenn Du alle LEd löschen willst und 1 neues setzen willst ist löschen schneller als die eingeschaltenen Kanäle auf null zu stellen.
Grüße Uwe

Zum Thema TLC5490 hätte ich auch noch eine Frage. Wo bekommt man die Teile "günstig" in Deutschland oder wenigstens Europa gekauft? Ich hab bisher nur Ami-Shops gefunden die zwischen 8 und 9 Dollar pro Chip haben wollen plus mehr oder weniger saftiges Proto. Dazu kommen ja nochmal 19% Einfuhrsteuer.
Bei seeedstudio.com gibts das komplette RGB-Shield mit 3 TLC5490 und 16 RGB LEDs für 35 Dollar
http://www.seeedstudio.com/depot/rgb-led-shield-v14-kit-p-430.html?cPath=132_134
Was bei der Summe der Teile aus meiner Sicht wieder recht preiswert wäre.

Guten Rutsch ...
Mario.

Nennt ihn einfach TLC 5940, dann findet er sich leichter bei den gängigen händlern. :wink: Segor hat das gute Stück für 6,60€ im Sortiment.

Bei mouser gibt es den 5940 als DIP fuer 2.78€ + steuer (ab 25 stueck). Als einzelstueck immernoch unter 4€. Lieferung ist ab 75€ bestellwert kostenlos und per bote. Bestellung als privatmensch geht problemlos.

Elektronikteile kosten sehr unterschiedlich ob Du 1 oder 2 Stück im nächsten Laden oder beim Versebnder kaufst oder ob Du 1000 oder 10000 beim Produzenten nimmst.
Daher der Preis des Seeedstudio Shields.
Grüße Uwe