Arduino & Led Driver

Ciao a tutti, ho un problema nell'utilizzo di un led driver con l'arduino. Il led driver in questione è il TLC 5916IN. Leggendo il datasheet l'ho così collegato:
PIN 1(GND): collegato a massa dell'arduino
PIN 2(SDI): collegato al pin 7 dell'arduino
PIN 3(CLK): collegato al pin 5 dell'arduino
PIN 4(LE): collegato al pin 6 dell'arduino
PIN 5-12(OUT): collegati anodi dei led
PIN 13(OEnegato): collegato al pin 8 dell'arduino
PIN 14(SDO):
PIN 15(R-EXT): una resistenza da 2.2 Kohm collegata a massa
PIN 16(Vdd): collegato ai 5V dell'arduino

Da quanto ho letto nel datasheet il led driver ad ogni fronte di salita del segnale di clock legge il segnale in ingresso in SDI e lo memorizza nei registri. Poi quando viene abilitato LE questi dati sono passati in parello in output, se OE è abilitato ( ovvero se è OEnegato è basso).

Questo è il codice, spero qualcuno mi illumini su dove sbaglio, grazie in anticipo!

Michele

/
int data = 7;
int strob = 6;
int clock = 5;
int oe = 8;
int count = 0;
int dato = 0;

void setup()
{
  
  pinMode(data, OUTPUT);
  pinMode(clock, OUTPUT);
  pinMode(strob, OUTPUT);
  pinMode(oe, OUTPUT);
}

void PulseClock(void) {
    digitalWrite(clock, LOW);
    delayMicroseconds(20);
    digitalWrite(clock, HIGH);
    delayMicroseconds(50);
    digitalWrite(clock, LOW);
}

void loop()
{
   
   for (count = 0; count < 8; count++) {
    digitalWrite(data, HIGH);
    
    
    PulseClock();
    
 }

  digitalWrite(strob, HIGH);
  delayMicroseconds(20);
  digitalWrite(strob, LOW);
  delayMicroseconds(20);
  digitalWrite(oe,LOW);
  delay(100);
  digitalWrite(oe,HIGH);

 delay(100);                  // waits for a moment
}

Ciao Mich
Se ho capito bene devi collegare i Led col catodo all'uscita del TLC e coll'anodo a una tensione positiva che puó andare fino a 17V.

non ho controllato il codice.

Ciao Uwe

Grazie mille uwe! bastava invertire i led e tutto funziona, grazie ancora! :slight_smile: