Paso 6: Se activa el cerebro
En su lugar he utilizado el código de ejemplo disponible de la biblioteca del TLC5940, (CircularLightBuffer.ino).
He a modificado el código de un añadido del valor constante en el código, NUM_TLCS, por añadir esta línea
#define TLC_TOTAL 3
entonces substituido NUM_TLCS en el código con TLC_TOTAL. Esta constante es el número de TCL5940 IC realmente estamos acostumbrados. (NUM_TLCS se definió como 1) Y se encuentra en uno del archivo de encabezado. Pensé que era mucho más conveniente sustituir el valor en el código de ejemplo que fue al código original y cambiar el valor allí.
/*
Un buffer circular de luz. Si te las arreglas para construir un círculo de LEDs,
definitivamente enviar fotos. Lo que hace este sketch es un análogo
lectura de analog pin 0 y agregar al valor actual del último LED.
Si la suma resultante es superior a 4095, se apaga el LED,
de lo contrario establece LED 0 el valor de la suma.
Si usted tierra pin 12, establecerá LED 0 a cero.
Luego cambia todos los valores de LED uno (llevado tan 0 se convierte en LED 1) y establece
LED 0 el valor cambiado apagado el último LED (así que si un LED está encendido,
vaya en un círculo para siempre).
Vea el ejemplo de BasicUse para la configuración de hardware.
Alex Leone < acleone ~ a ~ gmail.com >, 2009-02-04 * /
#include "Tlc5940.h"
#include "tlc_shifts.h"
#define TLC_TOTAL 3
que pin analógico con
#define ANALOG_PIN 0
que pin para despejar los LEDs con
#define CLEAR_PIN 12
Cuántos millis para una vuelta completa sobre todos los LEDs
#define SCOPE_PERIOD (2000 * TLC_TOTAL)
#define SCOPE_PERIOD (2000 * 3)
#define LED_PERIOD SCOPE_PERIOD / (TLC_TOTAL * 16)
#define LED_PERIOD SCOPE_PERIOD / (3 * 16)
void setup()
{
pinMode (CLEAR_PIN, entrada);
digitalWrite (CLEAR_PIN, alto); habilitar pull-up
TLC.init();
}
void loop()
{
shiftUp devuelve el valor cambiado de puesto el último perno
uint16_t suma = tlc_shiftUp() + analogRead(ANALOG_PIN) * 4;
Si (digitalRead(CLEAR_PIN) == baja || suma > 4095)
suma = 0;
TLC.set (0, suma);
TLC.Update();
Delay(LED_PERIOD);
}