Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********* 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 LED
- - Source Code NOT compiled for: Arduino Uno
- - Source Code created on: 2024-09-22 21:10:42
- ********* Pleasedontcode.com **********/
- /****** SYSTEM REQUIREMENTS *****/
- /****** SYSTEM REQUIREMENT 1 *****/
- /* play track for 3 minutes. Shut down for 2 minutes */
- /* then loop */
- /****** SYSTEM REQUIREMENT 2 *****/
- /* Play a random audio track (from 2 to 5) using the */
- /* DFRobot DFPlayer Mini module for 3 minutes, */
- /* followed by a 2-minute shutdown, then repeat the */
- /* cycle. Control LED indicators during playback and */
- /* shutdown phases. */
- /****** END SYSTEM REQUIREMENTS *****/
- /****** DEFINITION OF LIBRARIES *****/
- #include <SoftwareSerial.h>
- #include <DFRobotDFPlayerMini.h> //https://github.com/DFRobot/DFRobotDFPlayerMini
- /****** FUNCTION PROTOTYPES *****/
- void setup(void);
- void loop(void);
- void updateOutputs(void);
- /***** DEFINITION OF DIGITAL OUTPUT PINS *****/
- const uint8_t LED_LED_PIN_D2 = 2; // LED for playback indication
- const uint8_t LED_2_LED_PIN_D3 = 3; // LED for shutdown indication
- const uint8_t LED_3_LED_PIN_D4 = 4; // Unused LED
- /***** DEFINITION OF Software Serial *****/
- const uint8_t DFPlayer_DFPlayerMini_Serial_PIN_SERIAL_TX_A0 = A0;
- const uint8_t DFPlayer_DFPlayerMini_Serial_PIN_SERIAL_RX_A1 = A1;
- SoftwareSerial DFPlayer_DFPlayerMini_Serial(DFPlayer_DFPlayerMini_Serial_PIN_SERIAL_RX_A1, DFPlayer_DFPlayerMini_Serial_PIN_SERIAL_TX_A0);
- /***** DEFINITION OF OUTPUT RAW VARIABLES *****/
- bool LED_LED_PIN_D2_rawData = 0; // Playback LED state
- bool LED_2_LED_PIN_D3_rawData = 0; // Shutdown LED state
- bool LED_3_LED_PIN_D4_rawData = 0; // Unused LED state
- /****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/
- // Initialize DFPlayer object
- DFRobotDFPlayerMini myDFPlayer; // Create an instance of the DFPlayer class
- void setup(void)
- {
- // put your setup code here, to run once:
- pinMode(LED_LED_PIN_D2, OUTPUT); // Set playback LED pin as output
- pinMode(LED_2_LED_PIN_D3, OUTPUT); // Set shutdown LED pin as output
- pinMode(LED_3_LED_PIN_D4, OUTPUT); // Set unused LED pin as output
- // Start the software serial for DFPlayer
- DFPlayer_DFPlayerMini_Serial.begin(9600);
- // Initialize DFPlayer
- if (!myDFPlayer.begin(DFPlayer_DFPlayerMini_Serial, true, true)) { // Use serial to communicate with mp3.
- 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); // Loop forever if initialization fails
- }
- Serial.println(F("DFPlayer Mini online."));
- }
- void loop(void)
- {
- // put your main code here, to run repeatedly:
- // Play a random audio track from 2 to 5 for 3 minutes
- unsigned long playbackStartTime = millis(); // Record the start time of playback
- while (millis() - playbackStartTime < 180000) { // Loop for 3 minutes (180000 ms)
- int randomTrack = random(2, 6); // Generate a random track number between 2 and 5
- myDFPlayer.play(randomTrack); // Play the selected track
- LED_LED_PIN_D2_rawData = HIGH; // Turn on playback LED
- updateOutputs(); // Update LED states
- delay(60000); // Wait for 1 minute before playing the next track
- }
- // Shutdown phase for 2 minutes
- LED_LED_PIN_D2_rawData = LOW; // Turn off playback LED
- LED_2_LED_PIN_D3_rawData = HIGH; // Turn on shutdown LED
- updateOutputs(); // Update LED states
- delay(120000); // Wait for 2 minutes
- // Turn off shutdown LED after the shutdown phase
- LED_2_LED_PIN_D3_rawData = LOW; // Turn off shutdown LED
- updateOutputs(); // Update LED states
- }
- void updateOutputs(void) {
- // Update the state of the LEDs based on the raw data
- digitalWrite(LED_LED_PIN_D2, LED_LED_PIN_D2_rawData); // Update playback LED
- digitalWrite(LED_2_LED_PIN_D3, LED_2_LED_PIN_D3_rawData); // Update shutdown LED
- digitalWrite(LED_3_LED_PIN_D4, LED_3_LED_PIN_D4_rawData); // Update unused LED
- }
- /* END CODE */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement