Sfoglia il codice sorgente

pixels groups working

need to set real pixels groups values
Etienne Landon 6 anni fa
parent
commit
da05d4e4d7
1 ha cambiato i file con 25 aggiunte e 16 eliminazioni
  1. 25 16
      DMX2leds.ino

+ 25 - 16
DMX2leds.ino

@@ -12,19 +12,19 @@ const int PWMchannels[PWMnumChannels] = {3, 4, 5, 6, 9, 10, 20, 21, 22, 23} ;
 
 
 #include <FastLED.h>
-const int NUM_LEDS_1 = 90;
-const int LEDS_GROUP_1 = 8 ;
-const int LEDS_OFF_1 = 3 ;
+//const int NUM_LEDS_1 = 90;
+const int LEDS_GROUP_1 = 6 ;
+const int LEDS_OFF_1 = 2 ;
 const int NUM_GROUPS_1 = 10 ;
-#define DATA_PIN_1 8
-CRGB leds_1[NUM_LEDS_1];
+#define DATA_PIN_1 7
+CRGB leds_1[NUM_GROUPS_1*(LEDS_GROUP_1+LEDS_OFF_1)];
 
 //const int NUM_LEDS_2 = 50;
-//const int LEDS_GROUP_2 = 6 ;
-//const int LEDS_OFF_2 = 2 ;
-//const int NUM_GROUPS_2 = 18 ;
-//#define DATA_PIN_2 8
-//CRGB leds_2[NUM_LEDS_2];
+const int LEDS_GROUP_2 = 6 ;
+const int LEDS_OFF_2 = 2 ;
+const int NUM_GROUPS_2 = 5 ;
+#define DATA_PIN_2 8
+CRGB leds_2[NUM_GROUPS_2*(LEDS_GROUP_2+LEDS_OFF_2)];
 
 void dmxTimerISR(void)
 {
@@ -38,8 +38,8 @@ void setup() {
   delay(2000);  // Instead of while (!Serial), doesn't seem to work on Teensy
   
   Serial.println("Starting.");
-  FastLED.addLeds<WS2812B, DATA_PIN_1, RGB>(leds_1, NUM_LEDS_1);
-//  FastLED.addLeds<WS2812B, DATA_PIN_2, RGB>(leds_2, NUM_LEDS_2);
+  FastLED.addLeds<SK6812, DATA_PIN_1, RGB>(leds_1, NUM_GROUPS_1*(LEDS_GROUP_1+LEDS_OFF_1));
+  FastLED.addLeds<SK6812, DATA_PIN_2, RGB>(leds_2, NUM_GROUPS_2*(LEDS_GROUP_2+LEDS_OFF_2));
   FastLED.show();
 
   dmx.begin();
@@ -71,16 +71,25 @@ void loop() {
       analogWrite(PWMchannels[i], dmx.getDimmer(DMXstartChannel+i) );
     }
 
-    for (int groupLed = 0 ; groupLed< 10 ; groupLed++) {
+    for (int groupLed = 0 ; groupLed< NUM_GROUPS_1 ; groupLed++) {
       int R = dmx.getDimmer(DMXstartChannel + PWMnumChannels + 3*groupLed);
       int G = dmx.getDimmer(DMXstartChannel + PWMnumChannels  + 3*groupLed + 1);
       int B = dmx.getDimmer(DMXstartChannel + PWMnumChannels  + 3*groupLed + 2);
 //      Serial.println(R);
-      for (int pixel = 0 ; pixel<6; pixel++){
-        leds_1[groupLed * LEDS_GROUP_1  + pixel ].setRGB( R, G, B);
+      for (int pixel = 0 ; pixel<LEDS_GROUP_1; pixel++){
+        leds_1[groupLed * (LEDS_GROUP_1 + LEDS_OFF_1)  + pixel ].setRGB( R, G, B);
       }    
     }
-    leds_1[0].setRGB(dmx.getDimmer(DMXstartChannel + PWMnumChannels), dmx.getDimmer(DMXstartChannel + PWMnumChannels + 1), dmx.getDimmer(DMXstartChannel + PWMnumChannels + 2) );
+    for (int groupLed = 0 ; groupLed< NUM_GROUPS_2 ; groupLed++) {
+      int R = dmx.getDimmer(DMXstartChannel + PWMnumChannels + 3 * NUM_GROUPS_1 + 3*groupLed);
+      int G = dmx.getDimmer(DMXstartChannel + PWMnumChannels  + 3 * NUM_GROUPS_1 + 3*groupLed + 1);
+      int B = dmx.getDimmer(DMXstartChannel + PWMnumChannels  + 3 * NUM_GROUPS_1 + 3*groupLed + 2);
+//      Serial.println(R);
+      for (int pixel = 0 ; pixel<LEDS_GROUP_2; pixel++){
+        leds_2[groupLed * (LEDS_GROUP_2 + LEDS_OFF_2)  + pixel ].setRGB( R, G, B);
+      }    
+    }
+//    leds_1[0].setRGB(dmx.getDimmer(DMXstartChannel + PWMnumChannels), dmx.getDimmer(DMXstartChannel + PWMnumChannels + 1), dmx.getDimmer(DMXstartChannel + PWMnumChannels + 2) );
     FastLED.show();