Instantly share code, notes, and snippets.
Created
January 15, 2018 04:12
-
Save Hau-Yuan/99320e36d5d2c876e6d14b3c82cf5d4e to your computer and use it in GitHub Desktop.
WorryCapsuleTreeArduinoCode
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Adafruit_NeoPixel.h> | |
int neoPixelPin1 = 30; | |
int neoPixelPin2 = 32; | |
int neoPixelPin3 = 34; | |
int numPixels = 30; | |
//RGB_light1 | |
int redPin = 9; | |
int greenPin = 10; | |
int bluePin = 11; | |
//RGB_light2 | |
int redPin2 = 2; | |
int greenPin2 = 3; | |
int bluePin2 = 4; | |
//RGB_light3 | |
int redPin3 = 5; | |
int greenPin3 = 6; | |
int bluePin3 = 7; | |
//WhiteLED | |
int LEDPin1 = 12; //(light1+2) | |
int LEDPin2 = 13;//(light3+4) | |
int LEDPin3 = 8;//(light5+6) | |
//create "breath effects" | |
int brightness1 = 0;//BreatheState | |
int brightness2 = 200; //RecordingState | |
int brightness3 = 255; | |
int brightness4 = 255; | |
int brightnessNeo = 255; | |
int fadeAmount1 = 3;//BreatheState | |
int fadeAmount2 = 4;//RecordingState | |
int fadeAmount3 = 5; | |
int fadeAmountNeo = 3; | |
//Neopixels | |
Adafruit_NeoPixel strip = Adafruit_NeoPixel(numPixels, neoPixelPin1, NEO_GRB + NEO_KHZ800); | |
Adafruit_NeoPixel strip2 = Adafruit_NeoPixel(numPixels, neoPixelPin2, NEO_GRB + NEO_KHZ800); | |
Adafruit_NeoPixel strip3 = Adafruit_NeoPixel(numPixels, neoPixelPin3, NEO_GRB + NEO_KHZ800); | |
//boolean | |
boolean BreatheState = true; | |
boolean RecordingState = false; | |
boolean SubmitState = false; | |
boolean FinishState = false; | |
boolean BlowState = false; | |
void setup() { | |
Serial.begin(9600); | |
pinMode(LEDPin1, OUTPUT); | |
pinMode(LEDPin2, OUTPUT); | |
pinMode(LEDPin3, OUTPUT); | |
//neoPixel | |
strip.begin(); // initialize the strip | |
strip.show(); // make sure it is visible | |
strip.clear(); // Initialize all pixels to 'off' | |
strip2.begin(); // initialize the strip | |
strip2.show(); // make sure it is visible | |
strip2.clear(); // Initialize all pixels to 'off' | |
strip3.begin(); // initialize the strip | |
strip3.show(); // make sure it is visible | |
strip3.clear(); // Initialize all pixels to 'off' | |
} | |
void loop() { | |
int fromP5 = Serial.read(); | |
if (fromP5 == 0) { | |
SubmitState = false; | |
RecordingState = true; | |
BreatheState = false; | |
BlowState = false; | |
// RecordingState = !RecordingState; | |
// BreatheState = !BreatheState; | |
delay(500); | |
} | |
if (fromP5 == 1 ) { | |
SubmitState = true; | |
RecordingState = false; | |
BreatheState = false; | |
BlowState = false; | |
delay(500); | |
} | |
if (fromP5 == 2) { | |
SubmitState = false; | |
BreatheState = true; | |
RecordingState = false; | |
BlowState = false; | |
//delay(500); | |
} | |
if (fromP5 == 3) { | |
BlowState = true; | |
SubmitState = false; | |
BreatheState = false; | |
RecordingState = false; | |
delay(500); | |
} | |
//stage1 | |
if (BreatheState) { | |
//light1 | |
setColor(brightness1, brightness1, brightness1); | |
//light2 | |
setColor2(brightness1, brightness1, brightness1); | |
//light3 | |
setColor3(brightness1, brightness1, brightness1); | |
analogWrite(LEDPin1, brightness1); | |
analogWrite(LEDPin2, brightness1); | |
analogWrite(LEDPin3, brightness1); | |
brightness1 = brightness1 + fadeAmount1; | |
if (brightness1 <= 0 || brightness1 >= 255) { | |
fadeAmount1 = -fadeAmount1; | |
} | |
brightnessNeo = brightnessNeo - fadeAmountNeo; | |
for ( int i = 0; i < numPixels; i++ ) { | |
strip.show(); | |
strip2.show(); | |
strip3.show(); | |
strip.setPixelColor(i, brightnessNeo / 8, brightnessNeo / 8, brightnessNeo / 8); | |
strip2.setPixelColor(i, brightnessNeo / 8, brightnessNeo / 8, brightnessNeo / 8); | |
strip3.setPixelColor(i, brightnessNeo / 8, brightnessNeo / 8, brightnessNeo / 8); | |
} | |
if (brightnessNeo <= 0 || brightnessNeo >= 255) { | |
fadeAmountNeo = -fadeAmountNeo; | |
} | |
delay(30); | |
} | |
if (RecordingState) { | |
brightnessNeo = brightnessNeo - fadeAmountNeo; | |
for ( int i = 1; i < numPixels; i++ ) { | |
strip.show(); | |
strip2.show(); | |
strip3.show(); | |
strip.setPixelColor(i, brightnessNeo / 8, 0, 0); | |
strip2.setPixelColor(i, brightnessNeo / 8, 0, 0); | |
strip3.setPixelColor(i, brightnessNeo / 8, 0, 0); | |
//Serial.println(i); | |
} | |
if (brightnessNeo <= 0 || brightnessNeo >= 255) { | |
fadeAmountNeo = -fadeAmountNeo; | |
} | |
brightness4 = brightness4 - fadeAmount2*2; | |
if (brightness4 <= 0 || brightness4 >= 255) { | |
fadeAmount2 = -fadeAmount2; | |
} | |
setColor(brightness4, 255, 255); | |
setColor2(brightness4, 255, 255); | |
setColor3(brightness4, 255, 255); | |
analogWrite(LEDPin1, 0); | |
analogWrite(LEDPin2, 0); | |
analogWrite(LEDPin3, 0); | |
delay(30); | |
} | |
if (SubmitState) { | |
switch (SubmitState) { | |
case 1: | |
setColor(255, 255, 255); | |
setColor2(255, 255, 255); | |
for ( int i = 1; i < numPixels; i++ ) { | |
strip.setPixelColor(i, 60, 10, 60); | |
strip2.setPixelColor(i, 60, 10, 60); | |
strip3.setPixelColor(i, 60, 10, 60); | |
Serial.println(i); | |
delay(200); | |
strip.show(); | |
strip2.show(); | |
strip3.show(); | |
} | |
break; | |
} | |
setColor3(0, 255, 0); | |
analogWrite(LEDPin1, 0); | |
analogWrite(LEDPin2, 0); | |
analogWrite(LEDPin3, 0); | |
} | |
if (BlowState) { | |
switch (BlowState) { | |
case 1: | |
for ( int i = 0; i < numPixels; i++ ) { | |
strip.setPixelColor(i, 60, 40, 0); | |
strip2.setPixelColor(i, 60, 40, 0); | |
strip3.setPixelColor(i, 60, 40, 0); | |
delay(10); | |
strip.show(); | |
strip2.show(); | |
strip3.show(); | |
} | |
break; | |
} | |
setColor(0, 0, 255); | |
setColor2(0, 0, 255); | |
setColor3(0, 0, 255); | |
analogWrite(LEDPin1, 0); | |
analogWrite(LEDPin2, 0); | |
analogWrite(LEDPin3, 0); | |
delay(30); | |
} | |
} | |
void setColor(int redValue, int greenValue, int blueValue) { | |
analogWrite(redPin, redValue); | |
analogWrite(greenPin, greenValue); | |
analogWrite(bluePin, blueValue); | |
} | |
void setColor2(int redValue, int greenValue, int blueValue) { | |
analogWrite(redPin2, redValue); | |
analogWrite(greenPin2, greenValue); | |
analogWrite(bluePin2, blueValue); | |
} | |
void setColor3(int redValue, int greenValue, int blueValue) { | |
analogWrite(redPin3, redValue); | |
analogWrite(greenPin3, greenValue); | |
analogWrite(bluePin3, blueValue); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment