This is my current code:
But I can't get the millis to work and I don't understand so would appreciate some help.
#include <Adafruit_NeoPixel.h>
#define PIN A5
#define NUMPIXELS 12
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
const int ButtonPin = 2;
unsigned long pixelWentOnAt;
int pixelStaysOnFor = 3000;
void setup(){
pinMode(ButtonPin, INPUT_PULLUP);
pixels.begin(); // This initializes the NeoPixel library.
}
void loop() {
if (!digitalRead(ButtonPin))
{
pixelWentOnAt = millis();
pixels.setPixelColor(0, pixels.Color(255,255,255));
pixels.setPixelColor(1, pixels.Color(255,255,255));
pixels.setPixelColor(2, pixels.Color(255,255,255));
pixels.setPixelColor(3, pixels.Color(255,255,255));
pixels.setPixelColor(4, pixels.Color(255,255,255));
pixels.setPixelColor(5, pixels.Color(255,255,255));
pixels.setPixelColor(6, pixels.Color(255,255,255));
pixels.setPixelColor(7, pixels.Color(255,255,255));
pixels.setPixelColor(8, pixels.Color(255,255,255));
pixels.setPixelColor(9, pixels.Color(255,255,255));
pixels.setPixelColor(10, pixels.Color(255,255,255));
pixels.setPixelColor(11, pixels.Color(255,255,255));
pixels.show();
if (millis() - pixelWentOnAt >= (unsigned long) pixelStaysOnFor);
} else {
pixels.setPixelColor(0, pixels.Color(0,0,0));
pixels.setPixelColor(1, pixels.Color(0,0,0));
pixels.setPixelColor(2, pixels.Color(0,0,0));
pixels.setPixelColor(3, pixels.Color(0,0,0));
pixels.setPixelColor(4, pixels.Color(0,0,0));
pixels.setPixelColor(5, pixels.Color(0,0,0));
pixels.setPixelColor(6, pixels.Color(0,0,0));
pixels.setPixelColor(7, pixels.Color(0,0,0));
pixels.setPixelColor(8, pixels.Color(0,0,0));
pixels.setPixelColor(9, pixels.Color(0,0,0));
pixels.setPixelColor(10, pixels.Color(0,0,0));
pixels.setPixelColor(11, pixels.Color(0,0,0));
pixels.show();
}
}