Problem coding Pulsing LED Strip

Hey there, i pretty new to programming LED so im using the Strandtest Code and altering it.

I’ve added some parts of the Fade Code and somthing i found in the Adruino Überguide.

My Problem now is, my stip ist kind of fading, it lights up more and more and at its peak it blacks out for about half a second before returning to full brightness and slowly fading out.

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#endif

#define PIN 6


Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);

int brightness = 0; 
int fadeAmount = 20;


void setup() {
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket
  #if defined (__AVR_ATtiny85__)
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
  #endif
  // End of trinket special code


  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}

void loop() {
  // Some example procedures showing how to display to the pixels:


  strip.setBrightness(brightness);
  colorWipe(strip.Color(255, 0, 0),0); 
  
  brightness = brightness + fadeAmount;
 
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
//delay(0);
}  
  
  //colorWipe(strip.Color(0, 255, 0), 50); // Green
  //colorWipe(strip.Color(0, 0, 255), 50); // Blue
//colorWipe(strip.Color(0, 0, 0, 255), 50); // White RGBW
  // Send a theater pixel chase in...
  //theaterChase(strip.Color(127, 127, 127), 50); // White
  //theaterChase(strip.Color(127, 0, 0), 50); // Red
  //theaterChase(strip.Color(0, 0, 127), 50); // Blue

  //rainbow(20);
  //rainbowCycle(20);
  //theaterChaseRainbow(50);


// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
    strip.setPixelColor(i, c);
    strip.show();
    delay(wait);
  }
}

void rainbow(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256; j++) {
    for(i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel((i+j) & 255));
    }
    strip.show();
    delay(wait);
  }
}

// Slightly different, this makes the rainbow equally distributed throughout
void rainbowCycle(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel
    for(i=0; i< strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
    }
    strip.show();
    delay(wait);
  }
}

//Theatre-style crawling lights.
void theaterChase(uint32_t c, uint8_t wait) {
  for (int j=0; j<10; j++) {  //do 10 cycles of chasing
    for (int q=0; q < 3; q++) {
      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, c);    //turn every third pixel on
      }
      strip.show();

      delay(wait);

      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0);        //turn every third pixel off
      }
    }
  }
}

//Theatre-style crawling lights with rainbow effect
void theaterChaseRainbow(uint8_t wait) {
  for (int j=0; j < 256; j++) {     // cycle all 256 colors in the wheel
    for (int q=0; q < 3; q++) {
      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, Wheel( (i+j) % 255));    //turn every third pixel on
      }
      strip.show();

      delay(wait);

      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0);        //turn every third pixel off
      }
    }
  }
}

// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if(WheelPos < 85) {
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  }
  if(WheelPos < 170) {
    WheelPos -= 85;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
  WheelPos -= 170;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}

I really hope someone can help me out because i still dont have a clue about conding an reading codes.

Thank you

I really hope someone can help me out because i still dont have a clue about conding an reading codes.

Or spelling, either.

It's not difficult to add Serial.begin() and Serial.print() and/or Serial.println() statements to the code, to learn what it is doing.

Did the code work before you started messing with it?

  brightness = brightness + fadeAmount;
 
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }

When brightness goes out of range you reverse direction but you don’t adjust brightness to be back in range.

Perhaps this will help:

  brightness = constrain(brightness + fadeAmount, 0, 255);
 
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount;
  }

johnwasser:

  brightness = brightness + fadeAmount;

if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }




When brightness goes out of range you reverse direction but you don't adjust brightness to be back in range.

Perhaps this will help:


brightness = constrain(brightness + fadeAmount, 0, 255);

if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount;
  }

Thank you very much johnwasser, it really helped out!!