/********* Pleasedontcode.com ********** Pleasedontcode thanks you for automatic code generation! Enjoy your code! - Terms and Conditions: You have a non-exclusive, revocable, worldwide, royalty-free license for personal and commercial use. Attribution is optional; modifications are allowed, but you're responsible for code maintenance. We're not liable for any loss or damage. For full terms, please visit pleasedontcode.com/termsandconditions. - Project: Audio Relay - Source Code NOT compiled for: Arduino Nano - Source Code created on: 2024-09-22 21:53:04 ********* Pleasedontcode.com **********/ /****** SYSTEM REQUIREMENTS *****/ /****** SYSTEM REQUIREMENT 1 *****/ /* The Haunted Radio project utilizes the DFRobot */ /* DFPlayer Mini for audio playback, controlled via */ /* SoftwareSerial on pins A0 and A1, ensuring */ /* seamless integration with Arduino for sound */ /* effects. */ /****** SYSTEM REQUIREMENT 2 *****/ /* Turn on relay on D2 Play track 1 for 14 seconds. */ /* Play a random track between 2 and 7 for 1 minute */ /* Shut down and wait 1 minute. restart */ /****** END SYSTEM REQUIREMENTS *****/ /****** DEFINITION OF LIBRARIES *****/ #include #include //https://github.com/DFRobot/DFRobotDFPlayerMini /****** FUNCTION PROTOTYPES *****/ void setup(void); void loop(void); /***** DEFINITION OF Software Serial *****/ const uint8_t DFP_DFPlayerMini_Serial_PIN_SERIAL_TX_A0 = A0; const uint8_t DFP_DFPlayerMini_Serial_PIN_SERIAL_RX_A1 = A1; SoftwareSerial DFP_DFPlayerMini_Serial(DFP_DFPlayerMini_Serial_PIN_SERIAL_RX_A1, DFP_DFPlayerMini_Serial_PIN_SERIAL_TX_A0); /****** DEFINITION OF RELAY PIN *****/ const uint8_t RELAY_PIN = 2; // Define the pin for the relay /****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/ // Create an instance of the DFRobotDFPlayerMini class DFRobotDFPlayerMini myDFPlayer; // Instance of DFPlayer Mini void setup(void) { // Initialize the software serial for DFPlayer Mini DFP_DFPlayerMini_Serial.begin(9600); // Initialize the serial monitor for debugging Serial.begin(115200); Serial.println(F("DFRobot DFPlayer Mini Demo")); // Initialize the DFPlayer Mini if (!myDFPlayer.begin(DFP_DFPlayerMini_Serial, /*isACK = */true, /*doReset = */true)) { Serial.println(F("Unable to begin:")); Serial.println(F("1.Please recheck the connection!")); Serial.println(F("2.Please insert the SD card!")); while(true); // Stop the program if initialization fails } Serial.println(F("DFPlayer Mini online.")); // Set volume and other configurations myDFPlayer.volume(10); // Set volume value (0~30) myDFPlayer.setTimeOut(500); // Set serial communication timeout // Initialize the relay pin pinMode(RELAY_PIN, OUTPUT); } void loop(void) { // Turn on relay digitalWrite(RELAY_PIN, HIGH); // Activate relay myDFPlayer.play(1); // Play track 1 delay(14000); // Wait for 14 seconds // Turn off relay digitalWrite(RELAY_PIN, LOW); // Deactivate relay delay(1000); // Short delay before next action // Play a random track between 2 and 7 for 1 minute unsigned long startTime = millis(); while (millis() - startTime < 60000) { // Loop for 1 minute int randomTrack = random(2, 8); // Generate random track number between 2 and 7 myDFPlayer.play(randomTrack); // Play the random track delay(10000); // Wait for 10 seconds before playing another track } // Shut down and wait for 1 minute myDFPlayer.stop(); // Stop playback delay(60000); // Wait for 1 minute before restarting }