RGBpixel
Jump to navigation
Jump to search
Addressable RGB LED "pixels" from Cool Neon
Wiring
- RED - +5v
- GREEN - Data
- YELLOW - Clock
- BLUE - Ground
Code
#include <SPI.h> int offset = 0; void setup() { // put your setup code here, to run once: // Set the SPI parameters SPI.begin(); SPI.setBitOrder(MSBFIRST); SPI.setDataMode(SPI_MODE0); SPI.setClockDivider(SPI_CLOCK_DIV2); sendEmptyFrame(); } void loop() { byte power = 0xff; // put your main code here, to run repeatedly: for (int o = 0; o < offset; o++) sendColor(power, power, power); offset++; if (offset > 2) offset = 0; for (int i = 0; i < 9; i++) { sendColor(power,0x00,0x00); sendColor(0x00,power,0x00); sendColor(0x00,0x00,power); } sendEmptyFrame(); delay(100); } // Extrapolated functions from TCL Library void sendFrame(byte flag, byte red, byte green, byte blue) { SPI.transfer(flag); SPI.transfer(blue); SPI.transfer(green); SPI.transfer(red); } void sendColor(byte red, byte green, byte blue) { byte flag; flag = makeFlag(red,green,blue); sendFrame(flag,red,green,blue); } void sendEmptyFrame() { sendFrame(0x00, 0x00, 0x00, 0x00); } byte makeFlag(byte red, byte green, byte blue) { byte flag = 0; flag = (red&0xC0)>>6; flag |= ((green&0xC0)>>4); flag |= ((blue&0xC0)>>2); return ~flag; }