#include <Adafruit_NeoPixel.h>
#define PIN 8
int Color_to_lit = 1;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(1, PIN, NEO_GRB + NEO_KHZ800);
// this constant won't change:
const int buttonPin = 7; // the pin that the pushbutton is attached to
const int ledPin = 13; // the pin that the LED is attached to
// Variables will change:
int buttonPushCounter = 0; // counter for the number of button presses
int buttonState = 0; // current state of the button
int lastButtonState = 0; // previous state of the button
void setup() {
// initialize the button pin as a input:
pinMode(buttonPin, INPUT);
// initialize the LED as an output:
pinMode(ledPin, OUTPUT);
// initialize serial communication:
Serial.begin(9600);
strip.begin();
strip.setBrightness(1000);
strip.show(); // Initialize all pixels to 'off'
}
void loop() {
// read the pushbutton input pin:
buttonState = digitalRead(buttonPin);
// compare the buttonState to its previous state
if (buttonState != lastButtonState) {
// if the state has changed, increment the counter
if (buttonState == HIGH) {
// if the current state is HIGH then the button went from off to on:
buttonPushCounter++;
// Serial.println("on");
// Serial.print("number of button pushes: ");
Serial.println(buttonPushCounter);
} else {
// if the current state is LOW then the button went from on to off:
// Serial.println("off");
}
// Delay a little bit to avoid bouncing
delay(50);
}
// save the current state as the last state, for next time through the loop
lastButtonState = buttonState;
// turns on the LED every four button pushes by checking the modulo of the
// button push counter. the modulo function gives you the remainder of the
// division of two numbers:
if (buttonPushCounter == 1) {
colorWipe(strip.Color(255, 0, 0), 500);
} else if(buttonPushCounter == 2) {
colorWipe(strip.Color(0, 255, 0), 500);
} else if (buttonPushCounter == 3){
colorWipe(strip.Color(0, 0, 255), 500);
}else if(buttonPushCounter == 4) {
colorWipe(strip.Color(255, 0, 255), 500);
}else if(buttonPushCounter == 5) {
colorWipe(strip.Color(255, 255, 0), 500);
}else if(buttonPushCounter == 6) {
colorWipe(strip.Color(0, 255, 255), 500);
}else if(buttonPushCounter == 7) {
colorWipe(strip.Color(255, 255, 255), 500);
}else if(buttonPushCounter == 8) {
colorWipe(strip.Color(140, 140, 140), 500);
}else if(buttonPushCounter == 9) {
colorWipe(strip.Color(75, 37, 109), 500);
}else if(buttonPushCounter == 10) {
colorWipe(strip.Color(242, 98, 121), 500);
}else{
colorWipe(strip.Color(230, 0, 230), 500);
}
if(buttonPushCounter == 11){
buttonPushCounter = 0;
}
}
// 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);
}
}