Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <FastSPI_LED.h>
- #define stripLength 64 // Number of LEDs in your strip
- // specified under `rate` in the `[device]` section of /etc/boblight.conf
- #define serialRate 115200
- // boblightd sends a prefix (defined in /etc/boblight.conf) before sending the pixel data
- uint8_t prefix[] = {0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA};
- struct CRGB { unsigned char g; unsigned char r; unsigned char b; };
- struct CRGB *leds;
- #define PIN 8
- void setup()
- {
- FastSPI_LED.setLeds(stripLength);
- FastSPI_LED.setChipset(CFastSPI_LED::SPI_TM1809);
- FastSPI_LED.setPin(PIN);
- FastSPI_LED.init();
- FastSPI_LED.start();
- Serial.begin(serialRate);
- }
- void loop() {
- // wait until we see the prefix
- for(byte i = 0; i < sizeof prefix; ++i) {
- waitLoop: while (!Serial.available()) ;;
- // look for the next byte in the sequence if we see the one we want
- if(prefix[i] == Serial.read()) continue;
- // otherwise, start over
- i = 0;
- goto waitLoop;
- }
- // read the transmitted data
- for (uint8_t i = 0; i < stripLength; i++) {
- byte r, g, b;
- while(!Serial.available());
- r = Serial.read();
- while(!Serial.available());
- g = Serial.read();
- while(!Serial.available());
- b = Serial.read();
- leds[i].r = r;
- leds[i].g = g;
- leds[i].b = b;
- }
- FastSPI_LED.show();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement