#define SENSOR_PIN A0 // analog input pin for music
//void showScenario(int);
// trigger next scenario when music amplitude > threshold
// increase threshold to decrease sensitivity
// decrease threshold to increase sensitivity
int threshold = 5;
// debouncing - filter out consecutive triggers that are too close
// together to slow down the animation. decrease this value
// to make it more sensitive to shorter beat intervals
int minBeatInterval = 1000;
int threshCrossed = 0;
int scenario = 1;
int cnt = 32768;
int tree1 = 6;
int tree2 = 7;
int tree3 = 8;
int tree4 = 9;
int tree5 = 2;
int tree6 = 3;
int tree7 = 4;
int tree8 = 5;
void setup()
{
pinMode(tree1, OUTPUT);
pinMode(tree2, OUTPUT);
pinMode(tree3, OUTPUT);
pinMode(tree4, OUTPUT);
pinMode(tree5, OUTPUT);
pinMode(tree6, OUTPUT);
pinMode(tree7, OUTPUT);
pinMode(tree8, OUTPUT);
digitalWrite(tree1,HIGH);
delay(1000);
digitalWrite(tree2,HIGH);
delay(1000);
digitalWrite(tree3,HIGH);
delay(1000);
digitalWrite(tree4,HIGH);
delay(1000);
digitalWrite(tree5,HIGH);
delay(1000);
digitalWrite(tree6,HIGH);
delay(1000);
digitalWrite(tree7,HIGH);
delay(1000);
digitalWrite(tree8,HIGH);
delay(1000);
digitalWrite(tree1,LOW);
digitalWrite(tree2,LOW);
digitalWrite(tree3,LOW);
digitalWrite(tree4,LOW);
digitalWrite(tree5,LOW);
digitalWrite(tree6,LOW);
digitalWrite(tree7,LOW);
digitalWrite(tree8,LOW);
Serial.begin(9600);
}
void showScenario(int s){
int theScenario;
theScenario = s;
if (theScenario == 1){
digitalWrite(tree1, LOW);
digitalWrite(tree8, LOW);
digitalWrite(tree1, HIGH);
digitalWrite(tree3, HIGH);
}
if (theScenario == 2){
digitalWrite(tree1, LOW);
digitalWrite(tree3, LOW);
digitalWrite(tree6, HIGH);
digitalWrite(tree8, HIGH);
}
if (theScenario == 3){
digitalWrite(tree6, LOW);
digitalWrite(tree8, LOW);
digitalWrite(tree3, HIGH);
digitalWrite(tree4, HIGH);
}
if (theScenario == 4){
digitalWrite(tree3, LOW);
digitalWrite(tree4, LOW);
digitalWrite(tree5, HIGH);
digitalWrite(tree6, HIGH);
}
if (theScenario == 5)
{digitalWrite(tree5, LOW);
digitalWrite(tree6, LOW);
digitalWrite(tree3, HIGH);
digitalWrite(tree4, HIGH);
}
if (theScenario == 6){
digitalWrite(tree3, LOW);
digitalWrite(tree4, LOW);
digitalWrite(tree5, HIGH);
digitalWrite(tree6, HIGH);
}
if (theScenario == 7){
digitalWrite(tree5, LOW);
digitalWrite(tree6, LOW);
digitalWrite(tree1, HIGH);
digitalWrite(tree3, HIGH);
}
if (theScenario == 8){
digitalWrite(tree1, LOW);
digitalWrite(tree3, LOW);
digitalWrite(tree2, HIGH);
digitalWrite(tree4, HIGH);
}
if (theScenario == 9){
digitalWrite(tree2, LOW);
digitalWrite(tree4, LOW);
digitalWrite(tree3, HIGH);
digitalWrite(tree5, HIGH);
}
if (theScenario == 10){
digitalWrite(tree3, LOW);
digitalWrite(tree5, LOW);
digitalWrite(tree4, HIGH);
digitalWrite(tree6, HIGH);
}
if (theScenario == 11){
digitalWrite(tree4, LOW);
digitalWrite(tree6, LOW);
digitalWrite(tree5, HIGH);
digitalWrite(tree7, HIGH);
}
if (theScenario == 12){
digitalWrite(tree5, LOW);
digitalWrite(tree7, LOW);
digitalWrite(tree6, HIGH);
digitalWrite(tree8, HIGH);
}
if (theScenario == 13){
digitalWrite(tree6, LOW);
digitalWrite(tree8, LOW);
digitalWrite(tree1, HIGH);
digitalWrite(tree4, HIGH);
}
if (theScenario == 14){
digitalWrite(tree1, LOW);
digitalWrite(tree4, LOW);
digitalWrite(tree5, HIGH);
digitalWrite(tree8, HIGH);
}
if (theScenario == 15){
digitalWrite(tree5, LOW);
digitalWrite(tree8, LOW);
digitalWrite(tree2, HIGH);
digitalWrite(tree4, HIGH);
}
if (theScenario == 16){
digitalWrite(tree2, LOW);
digitalWrite(tree4, LOW);
digitalWrite(tree5, HIGH);
digitalWrite(tree7, HIGH);
}
if (theScenario == 17){
digitalWrite(tree5, LOW);
digitalWrite(tree7, LOW);
digitalWrite(tree1, HIGH);
}
if (theScenario == 18){
digitalWrite(tree1, LOW);
digitalWrite(tree2, HIGH);
}
if (theScenario == 19){
digitalWrite(tree2, LOW);
digitalWrite(tree3, HIGH);
}
if (theScenario == 20){
digitalWrite(tree3, LOW);
digitalWrite(tree2, HIGH);
digitalWrite(tree4, HIGH);
}
if (theScenario == 21){
digitalWrite(tree2, LOW);
digitalWrite(tree4, LOW);
digitalWrite(tree3, HIGH);
}
if (theScenario == 22){
digitalWrite(tree3, LOW);
digitalWrite(tree4, HIGH);
}
if (theScenario == 23){
digitalWrite(tree4, LOW);
digitalWrite(tree3, HIGH);
digitalWrite(tree5, HIGH);
}
if (theScenario == 24){
digitalWrite(tree3, LOW);
digitalWrite(tree5, LOW);
digitalWrite(tree4, HIGH);
}
if (theScenario == 25){
digitalWrite(tree4, LOW);
digitalWrite(tree5, HIGH);
}
if (theScenario == 26){
digitalWrite(tree5, LOW);
digitalWrite(tree4, HIGH);
digitalWrite(tree6, HIGH);
}
if (theScenario == 27){
digitalWrite(tree4, LOW);
digitalWrite(tree6, LOW);
digitalWrite(tree5, HIGH);
}
if (theScenario == 28){
digitalWrite(tree5, LOW);
digitalWrite(tree6, HIGH);
}
if (theScenario == 29){
digitalWrite(tree6, LOW);
digitalWrite(tree5, HIGH);
digitalWrite(tree7, HIGH);
}
if (theScenario == 30){
digitalWrite(tree5, LOW);
digitalWrite(tree7, LOW);
digitalWrite(tree6, HIGH);
}
if (theScenario == 31){
digitalWrite(tree6, LOW);
digitalWrite(tree7, HIGH);
}
if (theScenario == 32){
digitalWrite(tree7, LOW);
digitalWrite(tree8, HIGH);
}
if (theScenario == 33){
digitalWrite(tree8, LOW);
digitalWrite(tree4, HIGH);
digitalWrite(tree5, HIGH);
}
if (theScenario == 34){
digitalWrite(tree4, LOW);
digitalWrite(tree5, LOW);
digitalWrite(tree3, HIGH);
digitalWrite(tree6, HIGH);
}
if (theScenario == 35){
digitalWrite(tree3, LOW);
digitalWrite(tree6, LOW);
digitalWrite(tree2, HIGH);
digitalWrite(tree7, HIGH);
}
if (theScenario == 36){
digitalWrite(tree2, LOW);
digitalWrite(tree7, LOW);
digitalWrite(tree1, HIGH);
digitalWrite(tree8, HIGH);
}
if (theScenario == 37){
digitalWrite(tree1, LOW);
digitalWrite(tree8, LOW);
digitalWrite(tree4, HIGH);
digitalWrite(tree5, HIGH);
}
if (theScenario == 38){
digitalWrite(tree4, LOW);
digitalWrite(tree5, LOW);
digitalWrite(tree3, HIGH);
digitalWrite(tree6, HIGH);
}
if (theScenario == 39){
digitalWrite(tree3, LOW);
digitalWrite(tree6, LOW);
digitalWrite(tree2, HIGH);
digitalWrite(tree7, HIGH);
}
if (theScenario == 40){
digitalWrite(tree2, LOW);
digitalWrite(tree7, LOW);
digitalWrite(tree1, HIGH);
digitalWrite(tree8, HIGH);
}
}void loop() {
int sensorValue = analogRead(SENSOR_PIN);
cnt++;
if (sensorValue > threshold) {
if (!threshCrossed && (cnt > minBeatInterval) ) {
showScenario(scenario);
scenario++;
}
if (scenario > 40){
scenario = 1;
}
threshCrossed = 1;
cnt = 0;
}
if (sensorValue < threshold){
threshCrossed = 0;
}
}

















Not Nice














Visit Our Store »
Go Pro Today »



