Question: We're currently working on a little project but we've ran into some problems. We need a 0-10V PWM-signal to control some LEDs. As we need to individually control about 30 LEDs we decided to use two Adafruit 24-ch 12bit LED drivers controlled by an Arduino MINI.

We uploaded the next piece of code onto the Arduino but we have no voltage output on the adafruit board. We suspect the problem lies in the programming and we searched the web for solutions but we couldn't find any. Could someone help us? 

```
#include "Adafruit_TLC5947.h"

#define NUM_TLC5974 1

#define data   4
#define clock   5
#define latch   6
#define oe  -1  // set to -1 to not use the enable pin (its optional)

Adafruit_TLC5947 tlc = Adafruit_TLC5947(NUM_TLC5974, clock, data, latch);

void setup() {

  Serial.begin(9600);

  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);

  tlc.begin();

  tlc.setPWM(0, 2000);
  tlc.write();

  tlc.setPWM(1, 4096);
  tlc.write();

  tlc.setPWM(2, 1000);
  tlc.write();

}

void loop() {
}

```

Answer: 
If you want to get voltage on any channel of TLC5947 you have to add a pull up resistor on each channel. Outputs of TLC5947 are open collector thats why we connect cathode of LED to channels and anode to source.
1. Did you attach resistor of value ~ 1k or 2k across IRef pin and
Ground?
2. Put things in void loop(). Reason- You can't keep shift registers
inside the TLC in floating state.

Since you are doing things in setup(), it will be written on uC pin only once. 
If you see the code of tlc.write(), the latch pin flips and the shift register again becomes empty. When the code reaches void loop(), its basically not doing anything, and your states defined in setup() are already gone with tlc.write() statement.