I am trying to play a song using arduino while at the same time display time using a rtc board using the tmrpcm library. However, if the rtc board is connected no sound is played.
I do understand that the tmrpcm may be interfering with the wire.h library but even commenting the same doesn't resolve the problem.
I am using the following code:
// Date and time functions using a DS1307 RTC connected via I2C and Wire lib
#include <RTClib.h>
#include<Wire.h>
#include <Arduino.h>
#include "SevenSegmentTM1637.h"
#include "SevenSegmentExtended.h"
#include "SevenSegmentFun.h"
#include "SD.h"
#define SD_ChipSelectPin 4
#include "TMRpcm.h"
#include "SPI.h"
TMRpcm tmrpcm;
const int ProxSensor=3;
int inputVal = 0;
#define CLK 8
#define DIO 7
// The amount of time (in milliseconds) between tests
#define TEST_DELAY 2000
SevenSegmentFun display(CLK, DIO);
RTC_DS1307 rtc;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
void setup () {
Serial.begin(9600);
if(!SD.begin(SD_ChipSelectPin))
{
Serial.println("SD fail");
return;
}
while (!Serial); // for Leonardo/Micro/Zero
tmrpcm.speakerPin=9;
Serial.begin(57600);
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (! rtc.isrunning()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(2019, 10, 19, 01,41,00));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
pinMode(ProxSensor,INPUT); //Pin 2 is connected to the output of proximity sensor
display.begin();
}
void loop(){
DateTime now = rtc.now();
display.print((now.unixtime() / 86400L )-17963);
Serial.print((now.unixtime() / 86400L )-17963);
while(digitalRead(ProxSensor)==LOW) //Check the sensor output
{
tmrpcm.setVolume(5);
tmrpcm.play("test.wav");
repeat:
if(digitalRead(ProxSensor==LOW))
goto repeat;
}
}
Can anyone please help me?