Skip to main content
Code formatting.
Source Link
Edgar Bonet
  • 45.2k
  • 4
  • 42
  • 81

void leveller () {

 int millivolts;
 int level;

 millivolts = analogRead(A3);

 level = map(millivolts, 0, 1024, 0, 7);
 if (level <=0){
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      strip.show ();
  }
  else if ((level > 0)&&(level<1)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
  }
  else if ((level>= 1)&&(level<2)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
  strip.show ();
  }
  else if ((level>= 2)&&(level<3)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
         delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(3, 0, 128, 0);
      delay(30);
  strip.show ();
  }
  else if ((level>= 3)&&(level<4)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(3, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(4, 0, 128, 0);
      delay(30);
      strip.show ();
      }
  else if ((level>= 4)&&(level<5)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(3, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(4, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(5, 0, 128, 0);
      delay(30);
      strip.show ();
  }
  else if ((level>= 5)&&(level<6)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(3, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(4, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(5, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(6, 0, 128, 32);
      delay(30);
      strip.show ();
  }
  else if (level>= 6) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(3, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(4, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(5, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(6, 0, 128, 32);
      delay(30);
      strip.show ();
      strip.setPixelColor(7, 0, 128, 64);
      delay(30);
      strip.show ();
} 

}

void leveller () {
     int millivolts;
     int level;

     millivolts = analogRead(A3);

     level = map(millivolts, 0, 1024, 0, 7);
     if (level <=0){
          strip.clear();
          strip.setPixelColor(0, 128, 0, 0);
          strip.show ();
      }
      else if ((level > 0)&&(level<1)) {
          strip.clear();
          strip.setPixelColor(0, 128, 0, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(1, 128, 32, 0);
          delay(30);
          strip.show ();
      }
      else if ((level>= 1)&&(level<2)) {
          strip.clear();
          strip.setPixelColor(0, 128, 0, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(1, 128, 32, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(2, 128, 64, 0);
          delay(30);
      strip.show ();
      }
      else if ((level>= 2)&&(level<3)) {
          strip.clear();
          strip.setPixelColor(0, 128, 0, 0);
             delay(30);
          strip.show ();
          strip.setPixelColor(1, 128, 32, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(2, 128, 64, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(3, 0, 128, 0);
          delay(30);
      strip.show ();
      }
      else if ((level>= 3)&&(level<4)) {
          strip.clear();
          strip.setPixelColor(0, 128, 0, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(1, 128, 32, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(2, 128, 64, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(3, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(4, 0, 128, 0);
          delay(30);
          strip.show ();
          }
      else if ((level>= 4)&&(level<5)) {
          strip.clear();
          strip.setPixelColor(0, 128, 0, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(1, 128, 32, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(2, 128, 64, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(3, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(4, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(5, 0, 128, 0);
          delay(30);
          strip.show ();
      }
      else if ((level>= 5)&&(level<6)) {
          strip.clear();
          strip.setPixelColor(0, 128, 0, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(1, 128, 32, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(2, 128, 64, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(3, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(4, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(5, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(6, 0, 128, 32);
          delay(30);
          strip.show ();
      }
      else if (level>= 6) {
          strip.clear();
          strip.setPixelColor(0, 128, 0, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(1, 128, 32, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(2, 128, 64, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(3, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(4, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(5, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(6, 0, 128, 32);
          delay(30);
          strip.show ();
          strip.setPixelColor(7, 0, 128, 64);
          delay(30);
          strip.show ();
    }
}

void leveller () {

 int millivolts;
 int level;

 millivolts = analogRead(A3);

 level = map(millivolts, 0, 1024, 0, 7);
 if (level <=0){
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      strip.show ();
  }
  else if ((level > 0)&&(level<1)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
  }
  else if ((level>= 1)&&(level<2)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
  strip.show ();
  }
  else if ((level>= 2)&&(level<3)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
         delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(3, 0, 128, 0);
      delay(30);
  strip.show ();
  }
  else if ((level>= 3)&&(level<4)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(3, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(4, 0, 128, 0);
      delay(30);
      strip.show ();
      }
  else if ((level>= 4)&&(level<5)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(3, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(4, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(5, 0, 128, 0);
      delay(30);
      strip.show ();
  }
  else if ((level>= 5)&&(level<6)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(3, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(4, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(5, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(6, 0, 128, 32);
      delay(30);
      strip.show ();
  }
  else if (level>= 6) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(3, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(4, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(5, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(6, 0, 128, 32);
      delay(30);
      strip.show ();
      strip.setPixelColor(7, 0, 128, 64);
      delay(30);
      strip.show ();
} 

}

void leveller () {
     int millivolts;
     int level;

     millivolts = analogRead(A3);

     level = map(millivolts, 0, 1024, 0, 7);
     if (level <=0){
          strip.clear();
          strip.setPixelColor(0, 128, 0, 0);
          strip.show ();
      }
      else if ((level > 0)&&(level<1)) {
          strip.clear();
          strip.setPixelColor(0, 128, 0, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(1, 128, 32, 0);
          delay(30);
          strip.show ();
      }
      else if ((level>= 1)&&(level<2)) {
          strip.clear();
          strip.setPixelColor(0, 128, 0, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(1, 128, 32, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(2, 128, 64, 0);
          delay(30);
      strip.show ();
      }
      else if ((level>= 2)&&(level<3)) {
          strip.clear();
          strip.setPixelColor(0, 128, 0, 0);
             delay(30);
          strip.show ();
          strip.setPixelColor(1, 128, 32, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(2, 128, 64, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(3, 0, 128, 0);
          delay(30);
      strip.show ();
      }
      else if ((level>= 3)&&(level<4)) {
          strip.clear();
          strip.setPixelColor(0, 128, 0, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(1, 128, 32, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(2, 128, 64, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(3, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(4, 0, 128, 0);
          delay(30);
          strip.show ();
          }
      else if ((level>= 4)&&(level<5)) {
          strip.clear();
          strip.setPixelColor(0, 128, 0, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(1, 128, 32, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(2, 128, 64, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(3, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(4, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(5, 0, 128, 0);
          delay(30);
          strip.show ();
      }
      else if ((level>= 5)&&(level<6)) {
          strip.clear();
          strip.setPixelColor(0, 128, 0, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(1, 128, 32, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(2, 128, 64, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(3, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(4, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(5, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(6, 0, 128, 32);
          delay(30);
          strip.show ();
      }
      else if (level>= 6) {
          strip.clear();
          strip.setPixelColor(0, 128, 0, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(1, 128, 32, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(2, 128, 64, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(3, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(4, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(5, 0, 128, 0);
          delay(30);
          strip.show ();
          strip.setPixelColor(6, 0, 128, 32);
          delay(30);
          strip.show ();
          strip.setPixelColor(7, 0, 128, 64);
          delay(30);
          strip.show ();
    }
}
Source Link
Vidal
  • 13
  • 2

Cutting neopixel routine code short

I've been working on a level meter with a neopixel strip (WS2812).

The code is very simple: reading a potentiometer, mapping the input and showing the output in the led strip.

So far, so good. The code I include below is working fine but, obviously, ugly and repetitive. Since my knowledge of programming is very weak, I wonder if there is any loop way to cut the code short. Please note that the seven led have different colours. Actually this is the confusing point for me to build a loop. Any idea, folks?

Yes, I also know that using so many delays isn't the mos elegant solution, but it does not compromise the device performance and the bar led appearing is quite nice.

void leveller () {

 int millivolts;
 int level;

 millivolts = analogRead(A3);

 level = map(millivolts, 0, 1024, 0, 7);
 if (level <=0){
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      strip.show ();
  }
  else if ((level > 0)&&(level<1)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
  }
  else if ((level>= 1)&&(level<2)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
  strip.show ();
  }
  else if ((level>= 2)&&(level<3)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
         delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(3, 0, 128, 0);
      delay(30);
  strip.show ();
  }
  else if ((level>= 3)&&(level<4)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(3, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(4, 0, 128, 0);
      delay(30);
      strip.show ();
      }
  else if ((level>= 4)&&(level<5)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(3, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(4, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(5, 0, 128, 0);
      delay(30);
      strip.show ();
  }
  else if ((level>= 5)&&(level<6)) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(3, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(4, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(5, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(6, 0, 128, 32);
      delay(30);
      strip.show ();
  }
  else if (level>= 6) {
      strip.clear();
      strip.setPixelColor(0, 128, 0, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(1, 128, 32, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(2, 128, 64, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(3, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(4, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(5, 0, 128, 0);
      delay(30);
      strip.show ();
      strip.setPixelColor(6, 0, 128, 32);
      delay(30);
      strip.show ();
      strip.setPixelColor(7, 0, 128, 64);
      delay(30);
      strip.show ();
} 

}