#include <Adafruit_NeoPixel.h>
#include <avr/power.h>
#define PIN 4
#define PIN1 5
#define PIN2 6
#define PIN3 7
#define PIXELSM_PIN 8
#define PIXELLG_PIN 10
#define PIXELSM_COUNT 7
#define PIXELLG_COUNT 12
int delayval = 250;
int RepBright = 0;
const int muscleSensor = A1;
int sensorValue = 0;
Adafruit_NeoPixel sml_ring = Adafruit_NeoPixel(PIXELSM_COUNT, PIXELSM_PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel lrg_ring = Adafruit_NeoPixel(PIXELLG_COUNT, PIXELLG_PIN, NEO_GRB + NEO_KHZ800);
uint32_t black = lrg_ring.Color(0,0,0);
void setup() {
#if defined (__AVR_ATtiny85__)
if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
#endif
// put your setup code here, to run once:
Serial.begin(9600);
sml_ring.begin();
lrg_ring.begin();
sml_ring.show(); // Initialize all pixels to 'off'
lrg_ring.show(); // Initialize all pixels to 'off'
startupLrg();
startupSml();
}
void loop() {
setupSound(PIN);
setupSound1(PIN1);
setupSound2(PIN2);
reset(PIN3);
sensorValue = analogRead(muscleSensor);
Serial.print("sensor = " );
Serial.println(sensorValue);
//delay(200);
if (sensorValue > 300)
{
//delay(100);
RepBright = 255;
//sml_ring.setBrightness(RepBright);
//sml_ring.show();
lrg_ring.setBrightness(RepBright);
lrg_ring.show();
warmUp(PIN, PIN3);
delay(500);
explode(PIN2, PIN3);
delay(50);
for(RepBright; RepBright>19; RepBright--) {
//sml_ring.setBrightness(RepBright);
lrg_ring.setBrightness(RepBright);
//sml_ring.show();
lrg_ring.show();
delay(2);
}
delay(250);
powerDown(PIN1, PIN3);
startupLrg();
//delay(125);
}
}
void setupSound (int pin){
pinMode(pin,OUTPUT);
digitalWrite(pin, HIGH);
}
void warmUp (int pin, int pin1){
digitalWrite(pin, LOW);
delay(250);
digitalWrite(pin,HIGH);
delay(250);
digitalWrite(pin1, LOW);
delay(250);
digitalWrite(pin1,HIGH);
delay(250);
digitalWrite(pin1, LOW);
}
void setupSound1 (int pin1){
pinMode(pin1, OUTPUT);
digitalWrite(pin1, HIGH);
}
void powerDown (int pin, int pin1){
digitalWrite(pin, LOW);
delay(250);
digitalWrite(pin,HIGH);
digitalWrite(pin1, LOW);
delay(250);
digitalWrite(pin1,HIGH);
delay(250);
digitalWrite(pin1, LOW);
}
void setupSound2 (int pin2){
pinMode(pin2, OUTPUT);
digitalWrite(pin2,HIGH);
}
void explode (int pin, int pin1){
digitalWrite(pin, LOW);
delay(250);
digitalWrite(pin,HIGH);
digitalWrite(pin1, LOW);
delay(250);
digitalWrite(pin1,HIGH);
delay(250);
digitalWrite(pin1, LOW);
}
void setupReset (int pin3){
pinMode(pin3, OUTPUT);
digitalWrite(pin3, HIGH);
}
void reset (int pin3){
digitalWrite(pin3, LOW);
delay(100);
digitalWrite(pin3,HIGH);
delay(100);
digitalWrite(pin3, LOW);
}
void colorWipe(uint32_t c, uint8_t wait) {
sml_ring.setPixelColor(5, c);
sml_ring.setPixelColor(6, c);
sml_ring.show();
delay(wait);
sml_ring.setPixelColor(4, c);
sml_ring.setPixelColor(7, c);
sml_ring.show();
delay(wait);
sml_ring.setPixelColor(3, c);
sml_ring.setPixelColor(8, c);
sml_ring.show();
delay(wait);
sml_ring.setPixelColor(2, c);
sml_ring.setPixelColor(9, c);
sml_ring.show();
delay(wait);
sml_ring.setPixelColor(1, c);
sml_ring.setPixelColor(10, c);
sml_ring.show();
delay(wait);
sml_ring.setPixelColor(0, c);
sml_ring.setPixelColor(11, c);
sml_ring.show();
delay(wait);
}
void colorWipe1(uint32_t c, uint8_t wait) {
lrg_ring.setPixelColor(5, c);
lrg_ring.setPixelColor(6, c);
lrg_ring.show();
delay(wait);
lrg_ring.setPixelColor(4, c);
lrg_ring.setPixelColor(7, c);
lrg_ring.show();
delay(wait);
lrg_ring.setPixelColor(3, c);
lrg_ring.setPixelColor(8, c);
lrg_ring.show();
delay(wait);
lrg_ring.setPixelColor(2, c);
lrg_ring.setPixelColor(9, c);
lrg_ring.show();
delay(wait);
lrg_ring.setPixelColor(1, c);
lrg_ring.setPixelColor(10, c);
lrg_ring.show();
delay(wait);
lrg_ring.setPixelColor(0, c);
lrg_ring.setPixelColor(11, c);
lrg_ring.show();
delay(wait);
}
/*void fire(){
//delay(100);
RepBright = 255;
//sml_ring.setBrightness(RepBright);
//sml_ring.show();
lrg_ring.setBrightness(RepBright);
lrg_ring.show();
delay(125);
for(RepBright; RepBright>19; RepBright--) {
//sml_ring.setBrightness(RepBright);
lrg_ring.setBrightness(RepBright);
//sml_ring.show();
lrg_ring.show();
delay(2);
}
}*/
void startupLrg(){
for (int i = 0;255 > i; i++)
{
lrg_ring.setPixelColor(0,(i,i,i));
lrg_ring.setPixelColor(1,(i,i,i));
lrg_ring.setPixelColor(2,(i,i,i));
lrg_ring.setPixelColor(3,(i,i,i));
lrg_ring.setPixelColor(4,(i,i,i));
lrg_ring.setPixelColor(5,(i,i,i));
lrg_ring.setPixelColor(6,(i,i,i));
lrg_ring.setPixelColor(7,(i,i,i));
lrg_ring.setPixelColor(8,(i,i,i));
lrg_ring.setPixelColor(9,(i,i,i));
lrg_ring.setPixelColor(10,(i,i,i));
lrg_ring.setPixelColor(11,(i,i,i));
lrg_ring.show();
delay(10);
}
// delay(250);
for (int i = 255;255 > i; i--)
{
lrg_ring.setPixelColor(0,(i,i,i));
lrg_ring.setPixelColor(1,(i,i,i));
lrg_ring.setPixelColor(2,(i,i,i));
lrg_ring.setPixelColor(3,(i,i,i));
lrg_ring.setPixelColor(4,(i,i,i));
lrg_ring.setPixelColor(5,(i,i,i));
lrg_ring.setPixelColor(6,(i,i,i));
lrg_ring.setPixelColor(7,(i,i,i));
lrg_ring.setPixelColor(8,(i,i,i));
lrg_ring.setPixelColor(9,(i,i,i));
lrg_ring.setPixelColor(10,(i,i,i));
lrg_ring.setPixelColor(11,(i,i,i));
lrg_ring.show();
delay(10);
}
}
void startupSml(){
for (int i = 0;200 > i; i++)
{
sml_ring.setPixelColor(0,(i,i,i));
sml_ring.setPixelColor(1,(i,i,i));
sml_ring.setPixelColor(2,(i,i,i));
sml_ring.setPixelColor(3,(i,i,i));
sml_ring.setPixelColor(4,(i,i,i));
sml_ring.setPixelColor(5,(i,i,i));
sml_ring.setPixelColor(6,(i,i,i));
sml_ring.setPixelColor(7,(i,i,i));
sml_ring.setPixelColor(8,(i,i,i));
sml_ring.setPixelColor(9,(i,i,i));
sml_ring.setPixelColor(10,(i,i,i));
sml_ring.setPixelColor(11,(i,i,i));
sml_ring.show();
delay(10);
}
// delay(250);
for (int i = 200;200> i; i--)
{
sml_ring.setPixelColor(0,(i,i,i));
sml_ring.setPixelColor(1,(i,i,i));
sml_ring.setPixelColor(2,(i,i,i));
sml_ring.setPixelColor(3,(i,i,i));
sml_ring.setPixelColor(4,(i,i,i));
sml_ring.setPixelColor(5,(i,i,i));
sml_ring.setPixelColor(6,(i,i,i));
sml_ring.setPixelColor(7,(i,i,i));
sml_ring.setPixelColor(8,(i,i,i));
sml_ring.setPixelColor(9,(i,i,i));
sml_ring.setPixelColor(10,(i,i,i));
sml_ring.setPixelColor(11,(i,i,i));
sml_ring.show();
delay(10);
}
}