Go Down

Topic: tlc 5940 e leds (Read 404 times) previous topic - next topic

imho

Ciao a tutti,
utilizzando un TLC5040 sto tentando di far scorrere su 16 led una sequenza circolare con 3 led sempre accesi, ho fatto un piccolo filmato che spiega meglio:
http://youtu.be/t_ePDOPOhhE

Dal filmato avrete subito notato che c'è qualcosa che non va, infatti la sequenza circolare viene "rovinata" nel finale, per poi  iniziare nuovamente un altro giro.
Vi posto il codice nel caso qualche buon'anima mi volesse aiutare spiegandomi dove sbaglio!

Code: [Select]

#include "Tlc5940.h"
void setup()
{

  Tlc.init();
}

void loop()
{

  for (int channel = 0; channel < NUM_TLCS * 16; channel ++) {

    Tlc.clear();

    Tlc.set(channel, 50);
    Tlc.set(channel +1, 50);
    Tlc.set(channel +2, 50);

    Tlc.update();

    delay(500);
  }

}

zoomx

#1
May 19, 2013, 12:59 pm Last Edit: May 19, 2013, 01:19 pm by UweFederer Reason: 1
Nel tuo ciclo il problema credo succeda appena channel arriva a 15, poiché channel+2 fa 17 e invece dovrebbe essere il primo led cioè1.

Credo dovresti cambiare il channel+1 con (channel+1)%16, e channel+2 con (channel+2)%16

imho

Ciao Zoomx
come dici tu funziona.
Code: [Select]


#include "Tlc5940.h"

void setup()
{

  Tlc.init();
}

void loop()
{

  for (int channel = 0; channel < NUM_TLCS * 16; channel ++) {


    Tlc.clear();


    Tlc.set(channel, 50);
    Tlc.set((channel +1)%16, 50);
    Tlc.set((channel +2)%16, 50);



    Tlc.update();

    delay(100);
  }

}




Grazie!

uwefed

Visto che piloti i LED con un valore molto basso ( 50 contro i 4096 possibili) é meglio che abbassi la corrnete dei LED.
Ciao Uwe

imho

Ok, grazie del consiglio.

Go Up