//neopixel flame effect from https://github.com/schnoggo/jack-o-candle //everything else, do as you wish at your own risk #define PWM11 11 #define PWM10 10 #define PWM9 9 #define PWM3 3 #define PWM5 5 #define PWM6 6 int fade = 0; unsigned long ledstringtimer; unsigned long previousMillis = 0; int new_brightness = 0; void setup() { Serial.begin(9600); ledstringtimer = millis() + 5000; randomSeed(analogRead(0)); } void loop() { if (((signed long)(millis() - ledstringtimer)) > 0) { long dice = random(1400); if (dice > 1200) { ledstring11(); } else if (dice<1200 && dice > 1000) { ledstring10(); } else if (dice<1000 && dice > 800) { ledstring9(); } else if (dice<800 && dice > 600) { ledstring3(); } else if (dice<600 && dice > 200) { ledstring5(); } else if (dice<200) { ledstring6(); } ledstringtimer = millis() + random(500,3000); } } void ledstring11() { fade=random(10, 50); int fadeValue=0; unsigned long currentMillis = millis(); while (fadeValue <= fade) { currentMillis = millis(); if (currentMillis - previousMillis >= 30) { previousMillis = currentMillis; fadeValue += 5; analogWrite(PWM11, fadeValue); } } while (fadeValue > 0) { currentMillis = millis(); if (currentMillis - previousMillis >= 30) { previousMillis = currentMillis; fadeValue -= 5; analogWrite(PWM11, fadeValue); } } } void ledstring10() { fade=random(10, 50); int fadeValue=0; unsigned long currentMillis = millis(); while (fadeValue <= fade) { currentMillis = millis(); if (currentMillis - previousMillis >= 30) { previousMillis = currentMillis; fadeValue += 5; analogWrite(PWM10, fadeValue); } } while (fadeValue > 0) { currentMillis = millis(); if (currentMillis - previousMillis >= 30) { previousMillis = currentMillis; fadeValue -= 5; analogWrite(PWM10, fadeValue); } } } void ledstring9() { fade=random(10, 50); int fadeValue=0; unsigned long currentMillis = millis(); while (fadeValue <= fade) { currentMillis = millis(); if (currentMillis - previousMillis >= 30) { previousMillis = currentMillis; fadeValue += 5; analogWrite(PWM9, fadeValue); } } while (fadeValue > 0) { currentMillis = millis(); if (currentMillis - previousMillis >= 30) { previousMillis = currentMillis; fadeValue -= 5; analogWrite(PWM9, fadeValue); } } } void ledstring3() { fade=random(10, 50); int fadeValue=0; unsigned long currentMillis = millis(); while (fadeValue <= fade) { currentMillis = millis(); if (currentMillis - previousMillis >= 30) { previousMillis = currentMillis; fadeValue += 5; analogWrite(PWM3, fadeValue); } } while (fadeValue > 0) { currentMillis = millis(); if (currentMillis - previousMillis >= 30) { previousMillis = currentMillis; fadeValue -= 5; analogWrite(PWM3, fadeValue); } } } void ledstring5() { fade=random(10, 50); int fadeValue=0; unsigned long currentMillis = millis(); while (fadeValue <= fade) { currentMillis = millis(); if (currentMillis - previousMillis >= 30) { previousMillis = currentMillis; fadeValue += 5; analogWrite(PWM5, fadeValue); } } while (fadeValue > 0) { currentMillis = millis(); if (currentMillis - previousMillis >= 30) { previousMillis = currentMillis; fadeValue -= 5; analogWrite(PWM5, fadeValue); } } } void ledstring6() { fade=random(10, 50); int fadeValue=0; unsigned long currentMillis = millis(); while (fadeValue <= fade) { currentMillis = millis(); if (currentMillis - previousMillis >= 30) { previousMillis = currentMillis; fadeValue += 5; analogWrite(PWM6, fadeValue); } } while (fadeValue > 0) { currentMillis = millis(); if (currentMillis - previousMillis >= 30) { previousMillis = currentMillis; fadeValue -= 5; analogWrite(PWM6, fadeValue); } } }