diff --git a/firmware/firmware.ino b/firmware/firmware.ino new file mode 100644 index 0000000..32e887f --- /dev/null +++ b/firmware/firmware.ino @@ -0,0 +1,65 @@ +#include // need to include the SD library +//#define SD_ChipSelectPin 53 //example uses hardware SS pin 53 on Mega2560 +#define SD_ChipSelectPin 5 //using digital pin 4 on arduino nano 328, can use other pins +#include // also need to include this library... +#include + +TMRpcm tmrpcm; // create an object for use in this sketch + +unsigned long time = 0; + +void setup(){ + + tmrpcm.speakerPin = 9; //5,6,11 or 46 on Mega, 9 on Uno, Nano, etc + //Complimentary Output or Dual Speakers: + //pinMode(10,OUTPUT); Pin pairs: 9,10 Mega: 5-2,6-7,11-12,46-45 + + Serial.begin(9600); + //pinMode(13,OUTPUT); //LED Connected to analog pin 0 + if (!SD.begin(SD_ChipSelectPin)) { // see if the card is present and can be initialized: + Serial.println("SD fail"); + return; // don't do anything more if not + + } + else{ + Serial.println("SD ok"); + } + tmrpcm.volume(2); + tmrpcm.play("coffee.wav"); //the sound file "music" will play each time the arduino powers up, or is reset +} + + + +void loop(){ + //blink the LED manually to demonstrate music playback is independant of main loop + if(tmrpcm.isPlaying() && millis() - time > 50 ) { + //digitalWrite(13,!digitalRead(13)); + // time = millis(); + }else + if(millis() - time > 500){ + //digitalWrite(13,!digitalRead(13)); + //time = millis(); + } + + + if(Serial.available()){ + switch(Serial.read()){ + case 'c': tmrpcm.play("coffee.wav"); break; + case 'p': tmrpcm.pause(); break; + case '?': if(tmrpcm.isPlaying()){ Serial.println("A wav file is being played");} else{Serial.println("No wav file is being played");} break; + case 'S': tmrpcm.stopPlayback(); break; + case '0': tmrpcm.volume(0); break; + case '1': tmrpcm.volume(1); break; + case '2': tmrpcm.volume(2); break; + case '3': tmrpcm.volume(3); break; + case '4': tmrpcm.volume(4); break; + case '5': tmrpcm.volume(5); break; + case '6': tmrpcm.volume(6); break; + case '7': tmrpcm.volume(7); break; + case '=': tmrpcm.quality(0); break; + case '-': tmrpcm.quality(1); break; + default: break; + } + } + +}