//Tilt Switch Tiara by Julie Barrett
//Some of this code was gleaned from examples I found online and modified.
#include <Adafruit_NeoPixel.h> //NeoPixel Library
int buttonPin = 0; // momentary push button (tilt switch) on pin 0
int oldButtonVal = 0;
#define PIN 2 // Parameter 1 = number of pixels in strip
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(4, PIN, NEO_GRB + NEO_KHZ800);
int nPatterns = 8;
int lightPattern = 1;
// the setup routine runs once when you press reset:
void setup() {
strip.begin();
strip.show(); // initialize all pixels to 'off'
// initialize the BUTTON pin as an input
pinMode(buttonPin, INPUT);
digitalWrite(buttonPin, HIGH); // button pin is HIGH, so it drops to 0 if pressed
}
// Pattern 1 - White light, all LEDs in the strip are white
void pattern1() {
strip.setBrightness(50);
strip.setPixelColor(0, strip.Color(255, 255, 255)); // White
strip.setPixelColor(1, strip.Color(255, 255, 255));
strip.setPixelColor(2, strip.Color(255, 255, 255));
strip.setPixelColor(3, strip.Color(255, 255, 255));
strip.setPixelColor(4, strip.Color(255, 255, 255));
strip.show();
}
// Pattern 2 - Red light, all LEDs in the strip are red
void pattern2() {
strip.setBrightness(50);
strip.setPixelColor(0, strip.Color(255, 0, 0)); // Red
strip.setPixelColor(1, strip.Color(255, 0, 0));
strip.setPixelColor(2, strip.Color(255, 0, 0));
strip.setPixelColor(3, strip.Color(255, 0, 0));
strip.setPixelColor(4, strip.Color(255, 0, 0));
strip.show();
}
// Pattern 3 - Orange light, all LEDs in the strip are orange
void pattern3() {
strip.setBrightness(50);
strip.setPixelColor(0, strip.Color(255, 128, 0)); // Orange
strip.setPixelColor(1, strip.Color(255, 128, 0));
strip.setPixelColor(2, strip.Color(255, 128, 0));
strip.setPixelColor(3, strip.Color(255, 128, 0));
strip.setPixelColor(4, strip.Color(255, 128, 0));
strip.show();
}
// Pattern 4 - Yellow light, all LEDs in the strip are yellow
void pattern4() {
strip.setBrightness(50);
strip.setPixelColor(0, strip.Color(255, 255, 0)); // Yellow
strip.setPixelColor(1, strip.Color(255, 255, 0));
strip.setPixelColor(2, strip.Color(255, 255, 0));
strip.setPixelColor(3, strip.Color(255, 255, 0));
strip.setPixelColor(4, strip.Color(255, 255, 0));
strip.show();
}
// Pattern 5 - Green light, all LEDs in the strip are green
void pattern5() {
strip.setBrightness(50);
strip.setPixelColor(0, strip.Color(0, 255, 0)); // Green
strip.setPixelColor(1, strip.Color(0, 255, 0));
strip.setPixelColor(2, strip.Color(0, 255, 0));
strip.setPixelColor(3, strip.Color(0, 255, 0));
strip.setPixelColor(4, strip.Color(0, 255, 0));
strip.show();
}
// Pattern 6 - Blue light, all LEDs in the strip are blue
void pattern6() {
strip.setBrightness(50);
strip.setPixelColor(0, strip.Color(0, 0, 255)); // Blue
strip.setPixelColor(1, strip.Color(0, 0, 255));
strip.setPixelColor(2, strip.Color(0, 0, 255));
strip.setPixelColor(3, strip.Color(0, 0, 255));
strip.setPixelColor(4, strip.Color(0, 0, 255));
strip.show();
}
// Pattern 7 - Violet light, all LEDs in the strip are violet
void pattern7() {
strip.setBrightness(50);
strip.setPixelColor(0, strip.Color(127, 0, 255)); // Violet
strip.setPixelColor(1, strip.Color(127, 0, 255));
strip.setPixelColor(2, strip.Color(127, 0, 255));
strip.setPixelColor(3, strip.Color(127, 0, 255));
strip.setPixelColor(4, strip.Color(127, 0, 255));
strip.show();
}
// Pattern 8 - Rainbow light, all LEDs in the strip are different colors
void pattern8() {
strip.setBrightness(50);
strip.setPixelColor(0, strip.Color(255, 0, 255)); // Red
strip.setPixelColor(1, strip.Color(255, 255, 0)); // Yellow
strip.setPixelColor(2, strip.Color(0, 255, 0)); // Green
strip.setPixelColor(3, strip.Color(0, 0, 255)); // Blue
strip.setPixelColor(4, strip.Color(127, 0, 255)); // Violet
strip.show();
}
// the loop routine runs over and over again forever;
void loop() {
// read that state of the pushbutton value;
int buttonVal = digitalRead(buttonPin);
if (buttonVal == LOW && oldButtonVal == HIGH) {// button has just been pressed
lightPattern = lightPattern + 1;
}
if (lightPattern > nPatterns) lightPattern = 1;
oldButtonVal = buttonVal;
switch(lightPattern) {
case 1:
pattern1();
break;
case 2:
pattern2();
break;
case 3:
pattern3();
break;
case 4:
pattern4();
break;
case 5:
pattern5();
break;
case 6:
pattern6();
break;
case 7:
pattern7();
break;
case 8:
pattern8();
break;
}
}