CONTROLLING 3 NEOPIXEL RINGS FROM ONE ARDUINO

EL Wire/Tape/Panels, LEDs, pixels and strips, LCDs and TFTs, etc products from Adafruit

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
User avatar
adafruit_support_bill
 
Posts: 88087
Joined: Sat Feb 07, 2009 10:11 am

Re: CONTROLLING 3 NEOPIXEL RINGS FROM ONE ARDUINO

Post by adafruit_support_bill »

Is this possible?
Yes, that is possible. Although the level of effort could be reduced substantially with some more consolidation.

Implementing overall dimming would involve making a change to every single line of code that makes a call to setPixelColor(). The more you can reduce those, the fewer lines you will need to modify and (this is the important part) the fewer opportunities for error.

Look through your code and try to identify code segments that can be reduced to functions as we did before. For example, this bit of code:

Code: Select all

                                //red/green/blue_full
                                strip_2.setPixelColor(0, 255, 0, 0);
                                strip_2.setPixelColor(1, 0, 255, 0);
                                strip_2.setPixelColor(2, 0, 0,255);
                                strip_2.setPixelColor(3, 255, 0, 0);
                                strip_2.setPixelColor(4, 0, 255, 0);
                                strip_2.setPixelColor(5, 0, 0, 255);
                                strip_2.setPixelColor(6, 255, 0, 0);
                                strip_2.setPixelColor(7, 0, 255, 0);
                                strip_2.setPixelColor(8, 0, 0, 255);
                                strip_2.setPixelColor(9, 255, 0, 0);
                                strip_2.setPixelColor(10,0 , 255, 0);
                                strip_2.setPixelColor(11, 0, 0, 255);
                                strip_2.setPixelColor(12, 255, 0, 0);
                                strip_2.setPixelColor(13, 0, 255, 0);
                                strip_2.setPixelColor(14, 0, 0, 255);
                                strip_2.setPixelColor(15, 255, 0, 0);
                                strip_2.setPixelColor(16, 0, 255, 0);
                                strip_2.setPixelColor(17, 255, 0, 0);
                                strip_2.setPixelColor(18, 0, 255, 0);
                                strip_2.setPixelColor(19, 0, 0, 255);
                                strip_2.setPixelColor(20, 255, 0, 0);
                                strip_2.setPixelColor(21, 0, 255, 0);
                                strip_2.setPixelColor(22, 0, 0, 255);
                                strip_2.setPixelColor(23, 255, 0, 0);
can be reduced to:
//red/green/blue_full
for(int i = 0; i < 24; i += 3)
{
strip_2.setPixelColor(i, 255, 0, 0);
strip_2.setPixelColor(i + 1, 0, 255, 0);
strip_2.setPixelColor(i + 2, 0, 0,255);
}

User avatar
slurry bowl
 
Posts: 156
Joined: Sun Nov 11, 2012 6:37 pm

Re: CONTROLLING 3 NEOPIXEL RINGS FROM ONE ARDUINO

Post by slurry bowl »

Ok, thanks Bill.

I consolidated my code and wrote functions for every color combo I'm using.

There are sections of the pot. rotation that are dark, I put them there so I can input color combos in later.

Now that Im tightened up, I'd like to use an additional pot. to change brightness for all rings. Kinda a master DIMMER.

How would I start to build this into my code. Introduce another integer? Im not sure.

Also, I cant seem to add a description to the pot serial prints to distinguish which pot is which when I open up my serial monitor.

Id assume additional descriptions would go here:

Code: Select all

potval_1 = analogRead(potpin_1);
    potval_2 = analogRead(potpin_2);
    potval_3 = analogRead(potpin_3);

    
    Serial.println(potval_1);
    
    Serial.println(potval_2);
   
    Serial.println(potval_3);

Here is my working code for controlling 3 rings with 3 pots. Thanks for any input.

Code: Select all

potval_1 = analogRead(potpin_1);
    potval_2 = analogRead(potpin_2);
    potval_3 = analogRead(potpin_3);

    
    Serial.println(potval_1);
    
    Serial.println(potval_2);
   
    Serial.println(potval_3);

User avatar
adafruit_support_bill
 
Posts: 88087
Joined: Sat Feb 07, 2009 10:11 am

Re: CONTROLLING 3 NEOPIXEL RINGS FROM ONE ARDUINO

Post by adafruit_support_bill »

Adding descriptive text is not difficult:

Code: Select all

    Serial.print(potval_1);
    Serial.println(" text");
    
    Serial.print(potval_2);
    Serial.println(" text");
   
    Serial.print(potval_3);
    Serial.println(" text);
For brightness - see the setBrightness() function here (about 3/4 of the way down the page): https://learn.adafruit.com/adafruit-neo ... no-library

User avatar
slurry bowl
 
Posts: 156
Joined: Sun Nov 11, 2012 6:37 pm

Re: CONTROLLING 3 NEOPIXEL RINGS FROM ONE ARDUINO

Post by slurry bowl »

Thanks.

Im trying to see my POT values and eventually just my color selections for the three pot/rings in the SERIAL MONITOR.

I can add serial print text, but its moving so fast I cant differentiate my values.

Ive tried various formatting attempts to ............POT 1 VALUE
......................................POT 2 VALUE
.....................................................................POT 3 VALUE

Im trying to see what the heck is happening in the monitor without slowing down the code and my selections.

Thanks as always. I noticed a pic of my SHAPE CASTER aka THE PORTAL LAGOON aka PIXEL PORTAL on the adafruit site. That made me feel great.

User avatar
slurry bowl
 
Posts: 156
Joined: Sun Nov 11, 2012 6:37 pm

Re: CONTROLLING 3 NEOPIXEL RINGS FROM ONE ARDUINO

Post by slurry bowl »

I attempted to set the brightness at the top of the void loop but its overloaded. dang it.

As you mentioned I will have to add to every strip.setPixelColor so that they can be dimmed, but I thought Id try this and was
curious why I did not work

Code: Select all

int potpin_1 = 1; 
int potpin_2 = 2; 
int potpin_3 = 3; 
int brightpin = 4;


int potval_1 = 0;
int potval_2 = 0;
int potval_3 = 0;
int brightval = 0;


void setup()
{
  
  Serial.begin(9600);

  strip_1.begin();
  strip_2.begin();
  strip_3.begin();

  strip_1.show(); 
  strip_2.show();
  strip_3.show(); 

}

void loop() 
{
 
    potval_1 = analogRead(potpin_1);
    potval_2 = analogRead(potpin_2);
    potval_3 = analogRead(potpin_3);
    brightval = analogRead(brightpin);
                
    
    Serial.println(potval_1);
    
    Serial.println(potval_2);
    
    Serial.println( potval_3);
   
    int bright;
    bright = map(brightval, 0, 1023, 0, 255);
    strip_1.setBrightness(bright);
    strip_1.show;
    
  
   if ( potval_1 <=40 )
   {
      dark_1();
      
   }
ADAFRUIT = AMAZING

User avatar
adafruit_support_bill
 
Posts: 88087
Joined: Sat Feb 07, 2009 10:11 am

Re: CONTROLLING 3 NEOPIXEL RINGS FROM ONE ARDUINO

Post by adafruit_support_bill »

I believe you need to call setBrightness() after you call setPixelColor(), but before you call show().

User avatar
slurry bowl
 
Posts: 156
Joined: Sun Nov 11, 2012 6:37 pm

Re: CONTROLLING 3 NEOPIXEL RINGS FROM ONE ARDUINO

Post by slurry bowl »

Yup, I called setBrightness() after each and it works great.

I am still getting random glitching (a ring will change color when its pot is not rotated, but a diff. pot is). Only happens at the end of my pot sweeps around 1020. Weird, code is clean, but still glitches, somehow getting noise on occasion from my servo lines. Im running 4 wires to a servo and a neopixel 24 ring. GRND, DATAIN, DATASERVO, 5V . I have each ring's power rails with a cap running in parallel for some isolation as well as a ferrite ring on all my servo wires. It works, but not as well as if separate power was ran to servos.

How can I fix this glitching?

Also.....how can my serial monitor reflect what my pot color selection is? I can decipher the rapidly changing numbers, but a actual color statement would be very helpful.

ALSO...I got a fadecandy. WOW. I love it, lots to learn. I will start another post for that.

thanks so much Bill, here is a photo of T.P.L (The Portal Lagoon) as well as my current code:

Code: Select all

     void red_half_1()
              {
                  for (int i = 0; i < 24; i += 2)
                  {
                     strip_1.setPixelColor(i, 255, 0, 0);//0
                     strip_1.setPixelColor(i+1, 0, 0, 0);//1
                     strip_1.setBrightness(brightval);
                     strip_1.show();
                  }
               }
              
      void red_full_1()
              {
                    
                for (int i = 0; i < 24; i += 2)
                {
                    strip_1.setPixelColor(i, 255, 0, 0);//0
                    strip_1.setPixelColor(i+1, 255, 0, 0);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
                    
       void blue_half_1()
              {
                 for (int i = 0; i < 24; i += 2)
                 {
                    strip_1.setPixelColor(i, 0, 0, 255);//0
                    strip_1.setPixelColor(i+1, 0, 0, 0);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
                    
        void blue_full_1()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 0, 255);//0
                    strip_1.setPixelColor(i+1, 0, 0, 255);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
                    
        void green_half_1()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 255, 0);//0
                    strip_1.setPixelColor(i+1, 0, 0, 0);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
                    
         void green_full_1()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 255, 0);//0
                    strip_1.setPixelColor(i+1, 0, 255, 0);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
                    
           void green_blue_half_1()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 255, 0);//0
                    strip_1.setPixelColor(i+1, 0, 0, 255);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
              
              void magenta_half_1()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 0, 0);//0
                    strip_1.setPixelColor(i+1, 255, 0, 255);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
              
              void magenta_full_1()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 255, 0, 255);//0
                    strip_1.setPixelColor(i+1, 255, 0, 255);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
              
void red_green_blue_full_1()
              {  
                   for(int i = 0; i < 24; i += 3)
                    {
                    strip_1.setPixelColor(i, 255, 0, 0);
                    strip_1.setPixelColor(i + 1, 0, 255, 0);
                    strip_1.setPixelColor(i + 2, 0, 0,255);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
              
 void magenta_blue_half_1()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_1.setPixelColor(i, 255, 0, 255);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 0,255);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
 
 void yellow_blue_half_1()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_1.setPixelColor(i, 0, 255, 255);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 0,255);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
              
void red_green_half_1()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_1.setPixelColor(i, 255, 0, 0);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 255,0);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
void red_magenta_half_1()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_1.setPixelColor(i, 255, 0, 0);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 255, 0,255);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
              
void red_blue_half_1()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_1.setPixelColor(i, 255, 0, 0);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 0,255);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
              
void red_yellow_half_1()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_1.setPixelColor(i, 255, 0, 0);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 255,255);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }


              
void magenta_green_half_1()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_1.setPixelColor(i, 255, 0, 255);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 255,0);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
 void red_green_blue_half_1()
              {  
                   for(int i = 0; i < 24; i += 6)
                    {
                    strip_1.setPixelColor(i, 255, 0, 0);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 255,0);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setPixelColor(i + 4, 0, 0,255);
                    strip_1.setPixelColor(i + 5, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }             
              
  void green_magenta_full_1()
              {  
                   for(int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 255, 0);
                    strip_1.setPixelColor(i + 1, 255, 0, 255);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }           

 void blue_magenta_full_1()
              {  
                   for(int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 0, 255);
                    strip_1.setPixelColor(i + 1, 255, 0, 255);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              } 

 void magenta_red_blue_1()
              {  
                   for(int i = 0; i < 24; i += 3)
                    {
                    strip_1.setPixelColor(i, 255, 0, 255);
                    strip_1.setPixelColor(i + 1, 255, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 0, 255);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }        

void yellow_half_1()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 255, 255);//0
                    strip_1.setPixelColor(i+1, 0, 0, 0);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              } 

void yellow_full_1()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 255, 255);//0
                    strip_1.setPixelColor(i+1, 0, 255, 255);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }  

 void green_red_blue_half_1()
              {  
                   for(int i = 0; i < 24; i += 6)
                    {
                    strip_1.setPixelColor(i, 0, 255, 0);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 255,0);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setPixelColor(i + 4, 0, 0,255);
                    strip_1.setPixelColor(i + 5, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }    

 void dark_1()
              {
                 for (int i = 0; i < 24; i += 2)
                 {
                    strip_1.setPixelColor(i, 0, 0, 0);//0
                    strip_1.setPixelColor(i+1, 0, 0, 0);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }      
              
Attachments
IMG_3804.JPG
IMG_3804.JPG (573.12 KiB) Viewed 775 times

User avatar
adafruit_support_bill
 
Posts: 88087
Joined: Sat Feb 07, 2009 10:11 am

Re: CONTROLLING 3 NEOPIXEL RINGS FROM ONE ARDUINO

Post by adafruit_support_bill »

That's a nice effect!

The code you posted doesn't include the part where you read the pots. Can you post the whole thing?

User avatar
slurry bowl
 
Posts: 156
Joined: Sun Nov 11, 2012 6:37 pm

Re: CONTROLLING 3 NEOPIXEL RINGS FROM ONE ARDUINO

Post by slurry bowl »

Thanks, sorry here is the full code:

Code: Select all

#include <Adafruit_NeoPixel.h>

#define PIN_1 2 //pin 1 DEAD on my arduino
#define PIN_2 3
#define PIN_3 4

Adafruit_NeoPixel strip_1 = Adafruit_NeoPixel(24, PIN_1, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip_2 = Adafruit_NeoPixel(24, PIN_2, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip_3 = Adafruit_NeoPixel(24, PIN_3, NEO_GRB + NEO_KHZ800);

int potpin_1 = 1; 
int potpin_2 = 2; 
int potpin_3 = 3; 
int brightpin = 4;


int potval_1 = 0;
int potval_2 = 0;
int potval_3 = 0;
int brightval = 0;


void setup()
{
  
  Serial.begin(9600);

  strip_1.begin();
  strip_2.begin();
  strip_3.begin();

  strip_1.show(); 
  strip_2.show();
  strip_3.show(); 

}

void loop() 
{
 
    potval_1 = analogRead(potpin_1);
    potval_2 = analogRead(potpin_2);
    potval_3 = analogRead(potpin_3);
    brightval = analogRead(brightpin);
                
    
    Serial.println("..................");  
    
    Serial.println(potval_1);
    
    Serial.println(potval_2);
    
    Serial.println( potval_3);
   
  
    brightval = map(brightval, 0, 1023, 0, 255);
   
    if ( potval_1 <=40 )
   {
     red_half_1();
      
   }
 
   else if ( potval_1 <= 80) 
   {
    red_full_1();  
   }

   else if ( potval_1 <= 120) 
   {
    red_magenta_half_1(); 
    
   }

   else if ( potval_1 <= 160)
   {
    red_blue_half_1(); 
    
   } 

   else if ( potval_1 <= 200)
   {
    red_yellow_half_1(); 
      
   }

   else if ( potval_1 <= 240)
   { 
    
    red_green_half_1();
    
   }

   else if ( potval_1 <= 300)
   { 
    magenta_green_half_1();  
    
     
   }
     
   else if ( potval_1 <= 340)
   { 
    magenta_blue_half_1();
     
   }

   else if ( potval_1 <= 380)
   {
    yellow_blue_half_1(); 
     
   }

   else if ( potval_1 <= 420)
   { 
   green_blue_half_1();
    
   }
     
   else if ( potval_1 <= 460)
   { 
   green_half_1();
   }
  
   else if ( potval_1 <= 500)
   { 
    green_red_blue_half_1();
   }
  
   else if ( potval_1 <= 540)
   { 
    green_full_1;      
   }
           
   else if ( potval_1 <= 600)
   { 
     blue_half_1();       
   }
        
   else if ( potval_1 <= 640)
   { 
     blue_full_1();
   }
      
   else if ( potval_1 <= 700) 
   { 
    magenta_half_1();
    }       
                  
    else if ( potval_1 <=740)
    { 
      magenta_full_1();
    }
                      
                      
   else if ( potval_1 <= 780)
   { 
    yellow_half_1();
   }
                      
   else if ( potval_1 <= 820)
   {
    yellow_full_1() ;
   }
          
   else if ( potval_1 <=860 )
   {
    red_green_blue_half_1(); 
   }
   
   else if ( potval_1 <=900 )
   {
     
    red_green_blue_full_1(); 
   }
   
   else if ( potval_1 <=940 )
   {
   magenta_red_blue_1();
   }
         
   else if ( potval_1 < 1030)
   { 
    dark_1();            
   }
                                               //start here update all to 2 then 3 then 2 void then 3 void
 
  // 2
 
    if ( potval_2 <=40 )
   {
     red_half_2();
      
   }
 
   else if ( potval_2 <= 80) 
   {
    red_full_2();  
   }

   else if ( potval_2 <= 120) 
   {
    red_magenta_half_2(); 
    
   }

   else if ( potval_2 <= 160)
   {
    red_blue_half_2(); 
    
   } 

   else if ( potval_2 <= 200)
   {
    red_yellow_half_2(); 
      
   }

   else if ( potval_2 <= 240)
   { 
    
    red_green_half_2();
    
   }

   else if ( potval_2 <= 300)
   { 
    magenta_green_half_2();  
    
     
   }
     
   else if ( potval_2 <= 340)
   { 
    magenta_blue_half_2();
     
   }

   else if ( potval_2 <= 380)
   {
    yellow_blue_half_2(); 
     
   }

   else if ( potval_2 <= 420)
   { 
   green_blue_half_2();
    
   }
     
   else if ( potval_2 <= 460)
   { 
   green_half_2();
   }
  
   else if ( potval_2 <= 500)
   { 
    green_red_blue_half_2();
   }
  
   else if ( potval_2 <= 540)
   { 
    green_full_2;      
   }
           
   else if ( potval_2 <= 600)
   { 
     blue_half_2();       
   }
        
   else if ( potval_2 <= 640)
   { 
     blue_full_2();
   }
      
   else if ( potval_2 <= 700) 
   { 
    magenta_half_2();
    }       
                  
    else if ( potval_2 <=740)
    { 
      magenta_full_2();
    }
                      
                      
   else if ( potval_2 <= 780)
   { 
    yellow_half_2();
   }
                      
   else if ( potval_2 <= 820)
   {
    yellow_full_2() ;
   }
          
   else if ( potval_2 <=860 )
   {
    red_green_blue_half_2(); 
   }
   
   else if ( potval_2 <=900 )
   {
     
    red_green_blue_full_2(); 
   }
   
   else if ( potval_2 <=940 )
   {
   magenta_red_blue_2();
   }
         
   else if ( potval_2 < 1030)
   { 
    dark_2();            
   }
                 

//3
  
    if ( potval_3 <=40 )
   {
     red_half_3();
      
   }
 
   else if ( potval_3 <= 80) 
   {
    red_full_3();  
   }

   else if ( potval_3 <= 120) 
   {
    red_magenta_half_3(); 
    
   }

   else if ( potval_3 <= 160)
   {
    red_blue_half_3(); 
    
   } 

   else if ( potval_3 <= 200)
   {
    red_yellow_half_3(); 
      
   }

   else if ( potval_3 <= 240)
   { 
    
    red_green_half_3();
    
   }

   else if ( potval_3 <= 300)
   { 
    magenta_green_half_3();  
    
     
   }
     
   else if ( potval_3 <= 340)
   { 
    magenta_blue_half_3();
     
   }

   else if ( potval_3 <= 380)
   {
    yellow_blue_half_3(); 
     
   }

   else if ( potval_3<= 420)
   { 
   green_blue_half_3();
    
   }
     
   else if ( potval_3 <= 460)
   { 
   green_half_3();
   }
  
   else if ( potval_3 <= 500)
   { 
    green_red_blue_half_3();
   }
  
   else if ( potval_3 <= 540)
   { 
    green_full_3;      
   }
           
   else if ( potval_3 <= 600)
   { 
     blue_half_3();       
   }
        
   else if ( potval_1 <= 640)
   { 
     blue_full_1();
   }
      
   else if ( potval_3 <= 700) 
   { 
    magenta_half_3();
    }       
                  
    else if ( potval_3 <=740)
    { 
      magenta_full_3();
    }
                      
                      
   else if ( potval_3 <= 780)
   { 
    yellow_half_3();
   }
                      
   else if ( potval_3 <= 820)
   {
    yellow_full_3() ;
   }
          
   else if ( potval_3 <=860 )
   {
    red_green_blue_half_3(); 
   }
   
   else if ( potval_3 <=900 )
   {
     
    red_green_blue_full_3(); 
   }
   
   else if ( potval_3 <=940 )
   {
   magenta_red_blue_3();
   }
         
   else if ( potval_3 < 1030)
   { 
    dark_3();            
   }



}
    




       
    //void library

    //void 1   
    
    

     void red_half_1()
              {
                  for (int i = 0; i < 24; i += 2)
                  {
                     strip_1.setPixelColor(i, 255, 0, 0);//0
                     strip_1.setPixelColor(i+1, 0, 0, 0);//1
                     strip_1.setBrightness(brightval);
                     strip_1.show();
                  }
               }
              
      void red_full_1()
              {
                    
                for (int i = 0; i < 24; i += 2)
                {
                    strip_1.setPixelColor(i, 255, 0, 0);//0
                    strip_1.setPixelColor(i+1, 255, 0, 0);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
                    
       void blue_half_1()
              {
                 for (int i = 0; i < 24; i += 2)
                 {
                    strip_1.setPixelColor(i, 0, 0, 255);//0
                    strip_1.setPixelColor(i+1, 0, 0, 0);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
                    
        void blue_full_1()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 0, 255);//0
                    strip_1.setPixelColor(i+1, 0, 0, 255);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
                    
        void green_half_1()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 255, 0);//0
                    strip_1.setPixelColor(i+1, 0, 0, 0);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
                    
         void green_full_1()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 255, 0);//0
                    strip_1.setPixelColor(i+1, 0, 255, 0);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
                    
           void green_blue_half_1()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 255, 0);//0
                    strip_1.setPixelColor(i+1, 0, 0, 255);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
              
              void magenta_half_1()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 0, 0);//0
                    strip_1.setPixelColor(i+1, 255, 0, 255);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
              
              void magenta_full_1()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 255, 0, 255);//0
                    strip_1.setPixelColor(i+1, 255, 0, 255);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
              
void red_green_blue_full_1()
              {  
                   for(int i = 0; i < 24; i += 3)
                    {
                    strip_1.setPixelColor(i, 255, 0, 0);
                    strip_1.setPixelColor(i + 1, 0, 255, 0);
                    strip_1.setPixelColor(i + 2, 0, 0,255);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
              
 void magenta_blue_half_1()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_1.setPixelColor(i, 255, 0, 255);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 0,255);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
 
 void yellow_blue_half_1()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_1.setPixelColor(i, 0, 255, 255);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 0,255);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
              
void red_green_half_1()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_1.setPixelColor(i, 255, 0, 0);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 255,0);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
void red_magenta_half_1()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_1.setPixelColor(i, 255, 0, 0);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 255, 0,255);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
              
void red_blue_half_1()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_1.setPixelColor(i, 255, 0, 0);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 0,255);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
              
void red_yellow_half_1()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_1.setPixelColor(i, 255, 0, 0);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 255,255);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }


              
void magenta_green_half_1()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_1.setPixelColor(i, 255, 0, 255);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 255,0);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }
 void red_green_blue_half_1()
              {  
                   for(int i = 0; i < 24; i += 6)
                    {
                    strip_1.setPixelColor(i, 255, 0, 0);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 255,0);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setPixelColor(i + 4, 0, 0,255);
                    strip_1.setPixelColor(i + 5, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }             
              
  void green_magenta_full_1()
              {  
                   for(int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 255, 0);
                    strip_1.setPixelColor(i + 1, 255, 0, 255);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }           

 void blue_magenta_full_1()
              {  
                   for(int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 0, 255);
                    strip_1.setPixelColor(i + 1, 255, 0, 255);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              } 

 void magenta_red_blue_1()
              {  
                   for(int i = 0; i < 24; i += 3)
                    {
                    strip_1.setPixelColor(i, 255, 0, 255);
                    strip_1.setPixelColor(i + 1, 255, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 0, 255);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }        

void yellow_half_1()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 255, 255);//0
                    strip_1.setPixelColor(i+1, 0, 0, 0);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              } 

void yellow_full_1()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_1.setPixelColor(i, 0, 255, 255);//0
                    strip_1.setPixelColor(i+1, 0, 255, 255);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }  

 void green_red_blue_half_1()
              {  
                   for(int i = 0; i < 24; i += 6)
                    {
                    strip_1.setPixelColor(i, 0, 255, 0);
                    strip_1.setPixelColor(i + 1, 0, 0, 0);
                    strip_1.setPixelColor(i + 2, 0, 255,0);
                    strip_1.setPixelColor(i + 3, 0, 0,0);
                    strip_1.setPixelColor(i + 4, 0, 0,255);
                    strip_1.setPixelColor(i + 5, 0, 0,0);
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }    

 void dark_1()
              {
                 for (int i = 0; i < 24; i += 2)
                 {
                    strip_1.setPixelColor(i, 0, 0, 0);//0
                    strip_1.setPixelColor(i+1, 0, 0, 0);//1
                    strip_1.setBrightness(brightval);
                    strip_1.show();
                    }
              }      
              
              
   //void 2
   
 void red_half_2()
              {
                  for (int i = 0; i < 24; i += 2)
                  {
                     strip_2.setPixelColor(i, 255, 0, 0);//0
                     strip_2.setPixelColor(i+1, 0, 0, 0);//1
                     strip_2.setBrightness(brightval);
                     strip_2.show();
                  }
               }
              
      void red_full_2()
              {
                    
                for (int i = 0; i < 24; i += 2)
                {
                    strip_2.setPixelColor(i, 255, 0, 0);//0
                    strip_2.setPixelColor(i+1, 255, 0, 0);//1
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }
                    
       void blue_half_2()
              {
                 for (int i = 0; i < 24; i += 2)
                 {
                    strip_2.setPixelColor(i, 0, 0, 255);//0
                    strip_2.setPixelColor(i+1, 0, 0, 0);//1
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }
                    
        void blue_full_2()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_2.setPixelColor(i, 0, 0, 255);//0
                    strip_2.setPixelColor(i+1, 0, 0, 255);//1
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }
                    
        void green_half_2()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_2.setPixelColor(i, 0, 255, 0);//0
                    strip_2.setPixelColor(i+1, 0, 0, 0);//1
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }
                    
         void green_full_2()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_2.setPixelColor(i, 0, 255, 0);//0
                    strip_2.setPixelColor(i+1, 0, 255, 0);//1
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }
                    
           void green_blue_half_2()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_2.setPixelColor(i, 0, 255, 0);//0
                    strip_2.setPixelColor(i+1, 0, 0, 255);//1
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }
              
              void magenta_half_2()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_2.setPixelColor(i, 0, 0, 0);//0
                    strip_2.setPixelColor(i+1, 255, 0, 255);//1
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }
              
              void magenta_full_2()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_2.setPixelColor(i, 255, 0, 255);//0
                    strip_2.setPixelColor(i+1, 255, 0, 255);//1
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }
              
void red_green_blue_full_2()
              {  
                   for(int i = 0; i < 24; i += 3)
                    {
                    strip_2.setPixelColor(i, 255, 0, 0);
                    strip_2.setPixelColor(i + 1, 0, 255, 0);
                    strip_2.setPixelColor(i + 2, 0, 0,255);
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }
              
 void magenta_blue_half_2()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_2.setPixelColor(i, 255, 0, 255);
                    strip_2.setPixelColor(i + 1, 0, 0, 0);
                    strip_2.setPixelColor(i + 2, 0, 0,255);
                    strip_2.setPixelColor(i + 3, 0, 0,0);
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }
 
 void yellow_blue_half_2()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_2.setPixelColor(i, 0, 255, 255);
                    strip_2.setPixelColor(i + 1, 0, 0, 0);
                    strip_2.setPixelColor(i + 2, 0, 0,255);
                    strip_2.setPixelColor(i + 3, 0, 0,0);
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }
              
void red_green_half_2()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_2.setPixelColor(i, 255, 0, 0);
                    strip_2.setPixelColor(i + 1, 0, 0, 0);
                    strip_2.setPixelColor(i + 2, 0, 255,0);
                    strip_2.setPixelColor(i + 3, 0, 0,0);
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }
void red_magenta_half_2()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_2.setPixelColor(i, 255, 0, 0);
                    strip_2.setPixelColor(i + 1, 0, 0, 0);
                    strip_2.setPixelColor(i + 2, 255, 0,255);
                    strip_2.setPixelColor(i + 3, 0, 0,0);
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }
              
void red_blue_half_2()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_2.setPixelColor(i, 255, 0, 0);
                    strip_2.setPixelColor(i + 1, 0, 0, 0);
                    strip_2.setPixelColor(i + 2, 0, 0,255);
                    strip_2.setPixelColor(i + 3, 0, 0,0);
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }
              
void red_yellow_half_2()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_2.setPixelColor(i, 255, 0, 0);
                    strip_2.setPixelColor(i + 1, 0, 0, 0);
                    strip_2.setPixelColor(i + 2, 0, 255,255);
                    strip_2.setPixelColor(i + 3, 0, 0,0);
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }


              
void magenta_green_half_2()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_2.setPixelColor(i, 255, 0, 255);
                    strip_2.setPixelColor(i + 1, 0, 0, 0);
                    strip_2.setPixelColor(i + 2, 0, 255,0);
                    strip_2.setPixelColor(i + 3, 0, 0,0);
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }
 void red_green_blue_half_2()
              {  
                   for(int i = 0; i < 24; i += 6)
                    {
                    strip_2.setPixelColor(i, 255, 0, 0);
                    strip_2.setPixelColor(i + 1, 0, 0, 0);
                    strip_2.setPixelColor(i + 2, 0, 255,0);
                    strip_2.setPixelColor(i + 3, 0, 0,0);
                    strip_2.setPixelColor(i + 4, 0, 0,255);
                    strip_2.setPixelColor(i + 5, 0, 0,0);
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }             
              
  void green_magenta_full_2()
              {  
                   for(int i = 0; i < 24; i += 2)
                    {
                    strip_2.setPixelColor(i, 0, 255, 0);
                    strip_2.setPixelColor(i + 1, 255, 0, 255);
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }           

 void blue_magenta_full_2()
              {  
                   for(int i = 0; i < 24; i += 2)
                    {
                    strip_2.setPixelColor(i, 0, 0, 255);
                    strip_2.setPixelColor(i + 1, 255, 0, 255);
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              } 

 void magenta_red_blue_2()
              {  
                   for(int i = 0; i < 24; i += 3)
                    {
                    strip_2.setPixelColor(i, 255, 0, 255);
                    strip_2.setPixelColor(i + 1, 255, 0, 0);
                    strip_2.setPixelColor(i + 2, 0, 0, 255);
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }        

void yellow_half_2()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_2.setPixelColor(i, 0, 255, 255);//0
                    strip_2.setPixelColor(i+1, 0, 0, 0);//1
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              } 

void yellow_full_2()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_2.setPixelColor(i, 0, 255, 255);//0
                    strip_2.setPixelColor(i+1, 0, 255, 255);//1
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }  

 void green_red_blue_half_2()
              {  
                   for(int i = 0; i < 24; i += 6)
                    {
                    strip_2.setPixelColor(i, 0, 255, 0);
                    strip_2.setPixelColor(i + 1, 0, 0, 0);
                    strip_2.setPixelColor(i + 2, 0, 255,0);
                    strip_2.setPixelColor(i + 3, 0, 0,0);
                    strip_2.setPixelColor(i + 4, 0, 0,255);
                    strip_2.setPixelColor(i + 5, 0, 0,0);
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }    

 void dark_2()
              {
                 for (int i = 0; i < 24; i += 2)
                 {
                    strip_2.setPixelColor(i, 0, 0, 0);//0
                    strip_2.setPixelColor(i+1, 0, 0, 0);//1
                    strip_2.setBrightness(brightval);
                    strip_2.show();
                    }
              }      
                           
              


//3              

     void red_half_3()
              {
                  for (int i = 0; i < 24; i += 2)
                  {
                     strip_3.setPixelColor(i, 255, 0, 0);//0
                     strip_3.setPixelColor(i+1, 0, 0, 0);//1
                     strip_3.setBrightness(brightval);
                     strip_3.show();
                  }
               }
              
      void red_full_3()
              {
                    
                for (int i = 0; i < 24; i += 2)
                {
                    strip_3.setPixelColor(i, 255, 0, 0);//0
                    strip_3.setPixelColor(i+1, 255, 0, 0);//1
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }
                    
       void blue_half_3()
              {
                 for (int i = 0; i < 24; i += 2)
                 {
                    strip_3.setPixelColor(i, 0, 0, 255);//0
                    strip_3.setPixelColor(i+1, 0, 0, 0);//1
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }
                    
        void blue_full_3()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_3.setPixelColor(i, 0, 0, 255);//0
                    strip_3.setPixelColor(i+1, 0, 0, 255);//1
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }
                    
        void green_half_3()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_3.setPixelColor(i, 0, 255, 0);//0
                    strip_3.setPixelColor(i+1, 0, 0, 0);//1
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }
                    
         void green_full_3()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_3.setPixelColor(i, 0, 255, 0);//0
                    strip_3.setPixelColor(i+1, 0, 255, 0);//1
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }
                    
           void green_blue_half_3()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_3.setPixelColor(i, 0, 255, 0);//0
                    strip_3.setPixelColor(i+1, 0, 0, 255);//1
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }
              
              void magenta_half_3()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_3.setPixelColor(i, 0, 0, 0);//0
                    strip_3.setPixelColor(i+1, 255, 0, 255);//1
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }
              
              void magenta_full_3()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_3.setPixelColor(i, 255, 0, 255);//0
                    strip_3.setPixelColor(i+1, 255, 0, 255);//1
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }
              
void red_green_blue_full_3()
              {  
                   for(int i = 0; i < 24; i += 3)
                    {
                    strip_3.setPixelColor(i, 255, 0, 0);
                    strip_3.setPixelColor(i + 1, 0, 255, 0);
                    strip_3.setPixelColor(i + 2, 0, 0,255);
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }
              
 void magenta_blue_half_3()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_3.setPixelColor(i, 255, 0, 255);
                    strip_3.setPixelColor(i + 1, 0, 0, 0);
                    strip_3.setPixelColor(i + 2, 0, 0,255);
                    strip_3.setPixelColor(i + 3, 0, 0,0);
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }
 
 void yellow_blue_half_3()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_3.setPixelColor(i, 0, 255, 255);
                    strip_3.setPixelColor(i + 1, 0, 0, 0);
                    strip_3.setPixelColor(i + 2, 0, 0,255);
                    strip_3.setPixelColor(i + 3, 0, 0,0);
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }
              
void red_green_half_3()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_3.setPixelColor(i, 255, 0, 0);
                    strip_3.setPixelColor(i + 1, 0, 0, 0);
                    strip_3.setPixelColor(i + 2, 0, 255,0);
                    strip_3.setPixelColor(i + 3, 0, 0,0);
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }
void red_magenta_half_3()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_3.setPixelColor(i, 255, 0, 0);
                    strip_3.setPixelColor(i + 1, 0, 0, 0);
                    strip_3.setPixelColor(i + 2, 255, 0,255);
                    strip_3.setPixelColor(i + 3, 0, 0,0);
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }
              
void red_blue_half_3()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_3.setPixelColor(i, 255, 0, 0);
                    strip_3.setPixelColor(i + 1, 0, 0, 0);
                    strip_3.setPixelColor(i + 2, 0, 0,255);
                    strip_3.setPixelColor(i + 3, 0, 0,0);
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }
              
void red_yellow_half_3()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_3.setPixelColor(i, 255, 0, 0);
                    strip_3.setPixelColor(i + 1, 0, 0, 0);
                    strip_3.setPixelColor(i + 2, 0, 255,255);
                    strip_3.setPixelColor(i + 3, 0, 0,0);
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }


              
void magenta_green_half_3()
              {  
                   for(int i = 0; i < 24; i += 4)
                    {
                    strip_3.setPixelColor(i, 255, 0, 255);
                    strip_3.setPixelColor(i + 1, 0, 0, 0);
                    strip_3.setPixelColor(i + 2, 0, 255,0);
                    strip_3.setPixelColor(i + 3, 0, 0,0);
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }
 void red_green_blue_half_3()
              {  
                   for(int i = 0; i < 24; i += 6)
                    {
                    strip_3.setPixelColor(i, 255, 0, 0);
                    strip_3.setPixelColor(i + 1, 0, 0, 0);
                    strip_3.setPixelColor(i + 2, 0, 255,0);
                    strip_3.setPixelColor(i + 3, 0, 0,0);
                    strip_3.setPixelColor(i + 4, 0, 0,255);
                    strip_3.setPixelColor(i + 5, 0, 0,0);
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }             
              
  void green_magenta_full_3()
              {  
                   for(int i = 0; i < 24; i += 2)
                    {
                    strip_3.setPixelColor(i, 0, 255, 0);
                    strip_3.setPixelColor(i + 1, 255, 0, 255);
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }           

 void blue_magenta_full_3()
              {  
                   for(int i = 0; i < 24; i += 2)
                    {
                    strip_3.setPixelColor(i, 0, 0, 255);
                    strip_3.setPixelColor(i + 1, 255, 0, 255);
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              } 

 void magenta_red_blue_3()
              {  
                   for(int i = 0; i < 24; i += 3)
                    {
                    strip_3.setPixelColor(i, 255, 0, 255);
                    strip_3.setPixelColor(i + 1, 255, 0, 0);
                    strip_3.setPixelColor(i + 2, 0, 0, 255);
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }        

void yellow_half_3()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_3.setPixelColor(i, 0, 255, 255);//0
                    strip_3.setPixelColor(i+1, 0, 0, 0);//1
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              } 

void yellow_full_3()
              {
                    for (int i = 0; i < 24; i += 2)
                    {
                    strip_3.setPixelColor(i, 0, 255, 255);//0
                    strip_3.setPixelColor(i+1, 0, 255, 255);//1
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }  

 void green_red_blue_half_3()
              {  
                   for(int i = 0; i < 24; i += 6)
                    {
                    strip_3.setPixelColor(i, 0, 255, 0);
                    strip_3.setPixelColor(i + 1, 0, 0, 0);
                    strip_3.setPixelColor(i + 2, 0, 255,0);
                    strip_3.setPixelColor(i + 3, 0, 0,0);
                    strip_3.setPixelColor(i + 4, 0, 0,255);
                    strip_3.setPixelColor(i + 5, 0, 0,0);
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }    

 void dark_3()
              {
                 for (int i = 0; i < 24; i += 2)
                 {
                    strip_3.setPixelColor(i, 0, 0, 0);//0
                    strip_3.setPixelColor(i+1, 0, 0, 0);//1
                    strip_3.setBrightness(brightval);
                    strip_3.show();
                    }
              }      
              

User avatar
adafruit_support_bill
 
Posts: 88087
Joined: Sat Feb 07, 2009 10:11 am

Re: CONTROLLING 3 NEOPIXEL RINGS FROM ONE ARDUINO

Post by adafruit_support_bill »

There is an issue sometimes reading from multiple analog pins back-to-back. Inside, there is only one ADC and when you read from a pin, it has to select that pin via a multiplexer to connect it to the ADC. In some cases, it can take time for the signal to settle, so the reading on one channel is affected by the reading on the previous channel.

A simple way to avoid that is to take 2 readings from each channel, and ignore the first one.

Code: Select all

    analogRead(potpin_1);
    potval_1 = analogRead(potpin_1);
    
    analogRead(potpin_2);
    potval_2 = analogRead(potpin_2);

    analogRead(potpin_3);
    potval_3 = analogRead(potpin_3);

    analogRead(brightpin);
    brightval = analogRead(brightpin);

User avatar
slurry bowl
 
Posts: 156
Joined: Sun Nov 11, 2012 6:37 pm

Re: CONTROLLING 3 NEOPIXEL RINGS FROM ONE ARDUINO

Post by slurry bowl »

Thanks Bill,

I tried your dual pot reading idea and it stilled acted erratic.

I spaced out my analog inputs on the board and it seemed to resolve the problem.

Do you have any input on how to indent my serial monitor readings?

Currently its this:

.....
123
456
789

I would like it like this:

123
456
789



Thanks for ALL YOUR HELP with this project. Sincerely appreciate it!!!!!!!!!!!!!

Im going to integrate FadeCandy into the project next.

THANKS

User avatar
slurry bowl
 
Posts: 156
Joined: Sun Nov 11, 2012 6:37 pm

Re: CONTROLLING 3 NEOPIXEL RINGS FROM ONE ARDUINO

Post by slurry bowl »

Like this

123
--------456
------------------789

User avatar
adafruit_support_bill
 
Posts: 88087
Joined: Sat Feb 07, 2009 10:11 am

Re: CONTROLLING 3 NEOPIXEL RINGS FROM ONE ARDUINO

Post by adafruit_support_bill »

You could do this:

Code: Select all

    Serial.println(potval_1);
    Serial.print("______");
    Serial.println(potval_2);
    Serial.print("____________");
    Serial.println( potval_3);
Or you could pt them all on one line like this:

Code: Select all

    Serial.print(potval_1);
    Serial.print(" - ");
    Serial.print(potval_2);
    Serial.print(" - ");
    Serial.println( potval_3);
Note the Serial.print() doesn't end the line like Serial.println().

User avatar
slurry bowl
 
Posts: 156
Joined: Sun Nov 11, 2012 6:37 pm

Re: CONTROLLING 3 NEOPIXEL RINGS FROM ONE ARDUINO

Post by slurry bowl »

Howdy. My project is coming along great.

I now have a potentiometer for controlling fade and a potentiometer for controlling color for each NeoPixel24 ring!
(See attached photo)

I have a photoresistor and FadeCandy also on the controller for hands free and Processing controlling.

Is there a way to send the same values the pot would be sending to the Arduino via serial or some button controller? That way if I needed to transition to the next color I could fade down>enter new value>fade up....?

I bought a FadeCandy and its fun to learn processing. For many of my color combos, Ive found its best to only use 12 LEDs with a black Neopixel in-between each one. How do I change this processing code for my FadeCandy, so as to only have every other pixel receive color data?

Code: Select all

PImage dot;

void setup()
{
  size(500, 500);

  // Load a sample image
  dot = loadImage("dot.png");

  // Connect to the local instance of fcserver
  opc = new OPC(this, "127.0.0.1", 7890);

  // Map one 24-LED ring to the center of the window
  opc.ledRing(0, 24, width/2, height/2, width*0.18, 0);
}


void drawDot(float angle, float distance, float size)
{
  image(dot, width/2 - distance * sin(angle) - size/2,
    height/2 - distance * cos(angle) - size/2, size, size);
}

void draw()
{
  background(0);

  float a = millis();

  blendMode(ADD);
  tint(40, 100, 40);
  drawDot(a * -0.002, width*0.1, width*0.6);
  tint(155, 155, 155);
  drawDot(a * -0.003, width*0.1, width*0.6);
  tint(90, 90, 155);
  drawDot(a *  0.001, width*0.1, width*0.6);
}
I have a feeling I need to do something here:

Code: Select all

 // Map one 24-LED ring to the center of the window
  opc.ledRing(0, 24, width/2, height/2, width*0.18, 0);

I could also really use some project guidance moving forward.

Ideally I would like to have a photoresistor or distance sensor control the color combo. That I can do, but how do I make the fade SMOOTH? The abrupt color changes hurt the eyes and I want it be very smooth. So I bought the FadeCandy and learned it operates in Processing as a stand-alone, amazing new board. I dont know how it could help my existing Arduino project, but can it?

In order to harness the full dithering power of FadeCandy in an interactive setting, do I need to switch to Rasberry Pi and have that receive the sensors/potentiometers/whatever...?

I know Im asking lots and frankly writing this is a beneficial way to organize my thoughts....so THANKS
Attachments
photo (3).JPG
photo (3).JPG (265.77 KiB) Viewed 655 times

User avatar
adafruit_support_bill
 
Posts: 88087
Joined: Sat Feb 07, 2009 10:11 am

Re: CONTROLLING 3 NEOPIXEL RINGS FROM ONE ARDUINO

Post by adafruit_support_bill »

Let me check with some of our FadeCandy experts...

Locked
Please be positive and constructive with your questions and comments.

Return to “Glowy things (LCD, LED, TFT, EL) purchased at Adafruit”