Stap 6: Activeert het brein
In plaats daarvan gebruikte ik de voorbeeldcode beschikbaar vanuit de TLC5940 bibliotheek (CircularLightBuffer.ino).
Ik heb aan aangepast de code door toegevoegde van de constante waarde in de code, NUM_TLCS, voeg deze regel toe door
#define TLC_TOTAL 3
dan NUM_TLCS in de code met TLC_TOTAL te vervangen. Deze constante is het aantal TCL5940 IC we daadwerkelijk worden toegepast. (NUM_TLCS is gedefinieerd als 1) En het was gelegen in een van de headerbestand. Ik vond het veel handiger om de waarde in de voorbeeldcode vervangen dan ging naar de oorspronkelijke code en wijzig de waarde er.
/*
Een circulaire licht buffer. Als u erin slaagt om te bouwen van een cirkel van LEDs,
zeker in foto's verzenden. Wat deze schets doet is neemt een analoog
lezing off van analoge pin van 0 en toe te voegen aan de huidige waarde van de laatste LED.
Als de resulterende bedrag groter dan 4095 is, wordt dat de LED uitgeschakeld,
anders stelt LED 0 tot de waarde van de som.
Als u grond pin 12, zal het LED 0 op nul ingesteld.
Dan verschuift dus alle LED waarden één (zo leidde 0 wordt LED 1) en stelt
LED 0 tot de waarde verschoven uit de laatste leidde (dus als één LED brandt, is het zal
in een cirkel voor altijd gaan).
Zie het voorbeeld van de BasicUse voor de installatie van de hardware.
Alex Leone < acleone ~ op ~ gmail.com >, 2009-02-04 * /
#include "Tlc5940.h"
#include "tlc_shifts.h"
#define TLC_TOTAL 3
welke analoge pin te gebruiken
#define ANALOG_PIN 0
welke pin om de LEDs met
#define CLEAR_PIN 12
Hoeveel millis voor een volledige omwenteling over alle de 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, INPUT);
digitalWrite (CLEAR_PIN, hoge); pull-up inschakelen
TLC.init();
}
void loop
{
shiftUp retourneert de waarde verschoven uit de laatste pin
uint16_t som = tlc_shiftUp() + analogRead(ANALOG_PIN) * 4;
Als (digitalRead(CLEAR_PIN) == lage || som > 4095)
som = 0;
TLC.set (0, som);
TLC.update();
delay(LED_PERIOD);
}