Code: Select all
// include SPI, MP3 and SD libraries
#include <SPI.h>
#include <Adafruit_VS1053.h>
#include <SD.h>
int comState = 2;
int lastComState = 2;
const int comPin = 3;
//Communication pin from lighting Arduino (needs grounded)
// define the pins used
//#define CLK 13 // SPI Clock, shared with SD card
//#define MISO 12 // Input data, from VS1053/SD card
//#define MOSI 11 // Output data, to VS1053/SD card
// Connect CLK, MISO and MOSI to hardware SPI pins.
// See http://arduino.cc/en/Reference/SPI "Connections"
// These are the pins used for the breakout example
#define BREAKOUT_RESET 9 // VS1053 reset pin (output)
#define BREAKOUT_CS 10 // VS1053 chip select pin (output)
#define BREAKOUT_DCS 8 // VS1053 Data/command select pin (output)
// These are the pins used for the music maker shield
#define SHIELD_RESET -1 // VS1053 reset pin (unused!)
#define SHIELD_CS 7 // VS1053 chip select pin (output)
#define SHIELD_DCS 6 // VS1053 Data/command select pin (output)
// These are common pins between breakout and shield
#define CARDCS 4 // Card chip select pin
// DREQ should be an Int pin, see http://arduino.cc/en/Reference/attachInterrupt
#define DREQ 3 // VS1053 Data request, ideally an Interrupt pin
Adafruit_VS1053_FilePlayer musicPlayer =
// create breakout-example object!
//Adafruit_VS1053_FilePlayer(BREAKOUT_RESET, BREAKOUT_CS, BREAKOUT_DCS, DREQ, CARDCS);
// create shield-example object!
Adafruit_VS1053_FilePlayer(SHIELD_RESET, SHIELD_CS, SHIELD_DCS, DREQ, CARDCS);
char myFile[3] = "0";
void setup()
{
Serial.begin(9600);
pinMode(comPin,INPUT); //Communication pin from lighting Arduino (needs grounded)
Serial.println("Adafruit VS1053 Simple Test");
musicPlayer.begin(); // initialise the music player
musicPlayer.useInterrupt(VS1053_FILEPLAYER_PIN_INT);
musicPlayer.setVolume(20,20);
Serial.println(F("VS1053 found"));
if (!SD.begin(CARDCS))
{
Serial.println(F("SD failed, or not present"));
while (1); // don't do anything more
}
}
void loop()
{
char myFile[7];
comState = digitalRead(comPin);
if (comState != lastComState)
{
Serial.println(comState);
Serial.println(lastComState);
if (comState == LOW)
{
musicPlayer.stopPlaying();
lastComState = comState;
delay(500);
}
if (comState == HIGH)
{
Serial.println(F("Playing cabinet track"));
sprintf(myFile, "%d.MP3", random(81,99));
Serial.println(myFile);
musicPlayer.startPlayingFile(myFile);
lastComState = comState;
delay(500);
}
delay(250);
}
}