Ich habe die Library von Michael Margolis eingebunden und dieser Code kompiliert.
C
#include <Adafruit_WS2801.h>
#include <SPI.h>
#include <TimeLib.h>
#include <Time.h>
uint8_t dataPinStrip = 10;
uint8_t clckPinStrip = 9;
uint8_t num_LEDs = 6;
// uint8_t hue = 0;
uint32_t c = 0;
Adafruit_WS2801 strip = Adafruit_WS2801(num_LEDs, dataPinStrip, clckPinStrip);
uint32_t Color(uint8_t r, uint8_t g, uint8_t b)
{
return ((((r << 8) | g) << 8) | b);
}
void display_binary(int h, int m, int s=0) {
for (int i = num_LEDs-1; i >= 0; --i)
{
uint8_t r = (((h >> i) & 0x1) == 1) ? 255 : 0;
uint8_t g = (((m >> i) & 0x1) == 1) ? 255 : 0;
uint8_t b = (((s >> i) & 0x1) == 1) ? 255 : 0;
c = Color(r, g, b);
strip.setPixelColor(5-i, c);
}
strip.show();
}
void setup()
{
strip.begin();
}
void loop()
{
time_t t = now();
display_binary(hour(t), minute(t), second(t));
delay(1.0);
}
Alles anzeigen
Solltest Du keine Sekunden wollen, ersetze second(t) mit 0 innerhalb der loop Funktion (bzw rufe ohne second(t) auf).
Edit: strip.show() vergessen und ein Color Object wäre auch schön.
Cheers
Claudia