Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <FastLED.h>
- #define LED_PIN1 10
- #define LED_PIN2 11
- #define LED_PIN3 12
- #define NUM_LEDS 50
- #define LED_TYPE WS2811
- #define COLOR_ORDER GRB
- CRGB leds1[NUM_LEDS];
- CRGB leds2[NUM_LEDS];
- CRGB leds3[NUM_LEDS];
- void setup(){
- Serial.begin(115200);
- FastLED.addLeds<LED_TYPE, LED_PIN1, COLOR_ORDER>(leds1, NUM_LEDS);
- FastLED.addLeds<LED_TYPE, LED_PIN2, COLOR_ORDER>(leds2, NUM_LEDS);
- FastLED.addLeds<LED_TYPE, LED_PIN3, COLOR_ORDER>(leds3, NUM_LEDS);
- }
- void loop(){
- int i= 0;
- while(1){
- // sync with header
- // first character
- while(!Serial.available());
- if(Serial.read() != '>') {
- continue;
- }
- //second character
- while(!Serial.available());
- if(Serial.read() != '>') {
- continue;
- }
- // get data for each led
- while(i<NUM_LEDS){
- //read data in batches of 3 (1 led at a time)
- if (Serial.available() >= 3){
- leds1[i].g = Serial.read();
- leds1[i].r = Serial.read();
- leds1[i].b = Serial.read();
- i++; // increment only if data has been read
- }
- }
- i=0;
- while(i<NUM_LEDS){
- //read data in batches of 3 (1 led at a time)
- if (Serial.available() >= 3){
- leds2[i].g = Serial.read();
- leds2[i].r = Serial.read();
- leds2[i].b = Serial.read();
- i++; // increment only if data has been read
- }
- }
- i=0;
- while(i<NUM_LEDS){
- //read data in batches of 3 (1 led at a time)
- if (Serial.available() >= 3){
- leds3[i].g = Serial.read();
- leds3[i].r = Serial.read();
- leds3[i].b = Serial.read();
- i++; // increment only if data has been read
- }
- }
- FastLED.show();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment