TLC5940 Problem

Hallo Leute!

Ich beschäftige mich seit gestern mit meinem TLC5940. Ich möchte 4 RGB-LEDs ansteuern. Jetzt hab die 4 LEDs und den TLC auf eine Platine gelötet um mir die lästige Verkabelung auf dem Breadboard zu ersparen. Ich hab gleich mit einem Programm alle LEDs ausprobiert und sie funktionieren alle wunderbar. Dann hab ich das Programm so modifiziert, dass nur alle roten LEDs gemeinsam leuchten nur dann bekomm ich einen Fehler mit dem ich nichts anfangen kann.

#include "Tlc5940.h"

int rPIN [4] = {3,6,11,14};
int gPIN [4] = {2,5,10,13};
int bPIN [4] = {1,4,9,12};

void setup()
{
  Tlc.init();
}

void loop()
{
  Tlc.set(rPIN,4095);
  delay(100);
  
  Tlc.set(rPIN,0);
  delay(100);
  Tlc.update();
}

Und die Fehlermeldungen:

LED_Test.ino: In function 'void loop()':
LED_Test:14: error: invalid conversion from 'int*' to 'uint8_t'
LED_Test:14: error: initializing argument 1 of 'void Tlc5940::set(uint8_t, uint16_t)'
LED_Test:17: error: invalid conversion from 'int*' to 'uint8_t'
LED_Test:17: error: initializing argument 1 of 'void Tlc5940::set(uint8_t, uint16_t)'

Ich hoffe mir kann wer helfen!

Mfg Tom

rPin ist ein array, keine Variable. Wenn du alle werte in dem Array schalten möchtest musst du das über eine schleife lösen:

for (int i=0; i<sizeof(rPIN)-1; i++)
{
  Tlc.set(rPIN[i],4095);
  delay(100);

  Tlc.set(rPIN[i],0);
  delay(100);

  Tlc.update();
}

Vielen Dank für die schnelle Antwort!

Hab deinen Teil jetzt in meinen Code eingefügt. Jetzt leuchtet nur die Farbe Blau von einer einzigen LED. Was muss ich bei dem sizeof(rPIN)-1 beachten.

ich denke, wir beide haben da jeweils ein tlc.update() zwischen dem ersten und dem zweiten Delay vergessen...
Wieso allerdings nur blau leuchtet, kann ich ohne einen Schaltplan nicht ergründen...

versuch mal folgendes:

for (int i=0; i<sizeof(rPIN)-1; i++)
{
  Tlc.set(rPIN[i],4095);
  Tlc.update();
  delay(1000);

  Tlc.set(rPIN[i],0);  
  Tlc.update();
  delay(1000);
}

dann müssten nacheinander alle roten einmal eine sekunde lang an und dann eine sekunde lang aus gehen.

So jetzt leuchten alle hintereinander. Ich hätte aber gerne, dass alle 4 gleichzeitig leuchten. Dazu habe ich noch keine Lösung gefunden.

for (int i=0; i<sizeof(rPIN)-1; i++)
{
  Tlc.set(rPIN[i],4095);
  Tlc.update();
}

So jetzt passts. Vielen Dank.