#include #include #define LED_PIN 9 #define NUM_LEDS 45 CRGB leds[NUM_LEDS]; const int MPU_addr=0x68; int16_t AcX; int i, musicScale[] = {523,587,659,698,784,880,988,1047}; int points, old_flag = 0; long sum_point = 22000, sum_point2, differ, score = 0; unsigned long myTime1, myTime2, myTime; void setup(){ Wire.begin(); Wire.beginTransmission(MPU_addr); Wire.write(0x6B); // PWR_MGMT_1 register Wire.write(0); // wakes up the MPU-6050 Wire.endTransmission(true); for(i=0; i<9; i++){ tone(11, musicScale[i]); delay(40); noTone(11); delay(60); } Serial.begin(9600); FastLED.addLeds(leds, NUM_LEDS); for(i=0; i 44000) sum_point2 = 44000; else if(sum_point2 < 2) sum_point2 = 0; else sum_point = sum_point2; points = sum_point / 1000; } check_and_display(); } void check_and_display(){ for(i=0; i 9){ myTime2 = millis(); myTime = myTime2 - myTime1; if(myTime < 3000){ for(i=0; i<15; i++) leds[3*i+1] = color_set(3); FastLED.show(); melody_end(); delay(1500); old_flag = 0; score = 0; points = 20; return; } else{ for(i=0; i<23; i++) leds[2*i] = color_set(1); FastLED.show(); for(i=40; i>10; i--){ tone(11, i*50); delay(50); } delay(300); noTone(11); delay(1500); old_flag = 0; score = 0; points = 20; return; } } } } else if(points < 2){ leds[0] = color_set(1); leds[1] = color_set(1); tone(11, 100); delay(50); noTone(11); delay(200); score = 0; } else if(points > 42){ leds[43] = color_set(1); leds[44] = color_set(1); tone(11, 200); delay(50); noTone(11); delay(200); score = 0; } else{ leds[points] = color_set(8); old_flag = 0; } FastLED.show(); } CRGB color_set(int color){ if(color<1 || color>8) return(CRGB::Black); switch(color){ case 1: return(CHSV(96, 255, 127)); // Red case 2: return(CHSV(0, 255, 127)); // Green case 3: return(CHSV(160, 255, 127)); // Blue case 4: return(CRGB::Gray); // White case 5: return(CHSV(60, 255, 127)); // Yellow case 6: return(CHSV(128, 255, 127)); // Pink case 7: return(CHSV(87, 255, 127)); // Ogange case 8: return(CHSV(random8(), 255, 127));// Random } } void melody_end(){ tone(11, musicScale[0]); delay(120); tone(11, musicScale[2]); delay(120); tone(11, musicScale[4]); delay(120); tone(11, musicScale[7]); delay(400); noTone(11); }