//Two codes in one, choose mode below //#define BEATBOX #define LIGHTBOX #ifdef BEATBOX #include #include SoftwareSerial mp3(6, 7); #endif #ifdef LIGHTBOX #include ChainableLED leds(6, 7, 1); #endif int color[3] = {0, 0, 0}; const int buttons[8] = { 2, 3, 4, 5, A0, A1, A2, A3}; void ledsFX(int button){ switch (button){ case 0 : //RED color[0] += 150 ; // Serial.print(color[0]); // Serial.println(" red"); break; case 1 ://GREEN color[1] += 150; Serial.println("green"); break; case 2 : color[2] += 150; Serial.println("blue"); break; case 3 : color[0] += 255 * (cos(millis()/1000)*0.5 + 0.5); color[1] += 255 * (cos(millis()/100)*0.5 + 0.5); // color[2] += 255 * (cos(millis()/1000)*0.5 + 0.5); break; case 4 : // color[0] += 255 * (cos(millis()/1000)*0.5 + 0.5); color[1] += 255 * (cos(millis()/200)*0.5 + 0.5); color[2] += 255 * (sin(millis()/500)*0.5 + 0.5); break; case 5 : color[0] += 255 * (tan(millis()/50)*0.5 + 0.5); // color[1] += 255 * (cos(millis()/1000)*0.5 + 0.5); color[2] += 100 * (cos(millis()/1040)*0.5 + 0.5); break; case 6 : color[0] += 255 * (cos(millis()/100)*0.5 + 0.5); color[1] += 255 * (sin(millis()/500)*0.5 + 0.5); color[2] += 255 * (cos(millis()/2000)*0.5 + 0.5); break; case 7 : //invert colors for(int i = 0 ; i<3;i++){ color[i] = 255 - color[i]; } break; default : break; } } void setup() { Serial.begin(9600); for (int i = 0 ; i<8 ;i++){ pinMode(buttons[i], INPUT_PULLUP); } #ifdef BEATBOX mp3.begin(9600); delay(100); SelectPlayerDevice(0x02); // Select SD card as the player device. SetVolume(0x1E); // Set the volume, the range is 0x00 to 0x1E. #endif #ifdef LIGHTBOX //nothing #endif } void loop() { // // long int currentTime = millis(); color[0] = 0; color[1] = 0; color[2] = 0; for (int i = 0 ; i<8 ;i++){ //take action if a button was pressed if (!digitalRead(buttons[i])){ Serial.println(i); #ifdef BEATBOX SpecifyMusicPlay(i+1); #endif #ifdef LIGHTBOX ledsFX(i); #endif } } #ifdef LIGHTBOX color[0] = constrain(color[0], 0, 255); color[1] = constrain(color[1], 0, 255); color[2] = constrain(color[2], 0, 255); Serial.print(color[0]); Serial.print(", "); Serial.print(color[1]); Serial.print(", "); Serial.println(color[2]); leds.setColorRGB(0, color[0], color[1], color[2]); #endif delay(50); }