I'm trying to code a timer in arduino with a ringled. The lights in the timer have to go out one by one in a total of 30 seconds. So the ringled has to start fully on and than one by one the leds go out. And i have to use millis(); for this project.
#include <Adafruit_NeoPixel.h> //Library van de neopixel inladen
#define timerled 5 //Led om te tijd te laten zien
#define aantal_timerleds 16 //Bepaald dat er 16 leds aangestuurd moeten worden
Adafruit_NeoPixel pixels1 = Adafruit_NeoPixel(aantal_timerleds, timerled, NEO_GRB + NEO_KHZ800);
long kleur1 = 0;
//unsigned long currentMillis = millis();
unsigned long previousMillis = 0;
const long interval = 10000;
void setup() {
Serial.begin(9600); //Start verbinding met de pc
pinMode(timerled, OUTPUT);
// Timerled
pixels1.begin(); // Start verbinding met de led (Dit heeft een vaste snelheid en moeten we dus niet opgeven)
pixels1.clear(); // Zet alle leds uit
pixels1.setBrightness(50); // Om uw ogen wat te besparen dimmen we de maximale helderheid van de leds
}
void loop() {
unsigned long currentMillis = millis();
kleur1 = pixels1.Color(0, 255, 0);
pixels1.fill(kleur1);
pixels1.show();
if (currentMillis - previousMillis >= interval){
for (int i = 0; i < aantal_timerleds; i++) {
kleur1 = pixels1.Color(0, 0, 0); // Maak een kleur aan en sla deze op in variabele kleur
pixels1.setPixelColor(i, kleur1); // Stuur deze kleur door naar de eerste led
pixels1.show();
previousMillis = currentMillis;
}
}
But i don't understand where i'm going wrong as it is not working. So i really hope anyone can help?