/********* 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 Control
- Source Code NOT compiled for: Arduino Nano
- Source Code created on: 2024-07-29 05:07:06
********* Pleasedontcode.com **********/
/****** SYSTEM REQUIREMENTS *****/
/****** SYSTEM REQUIREMENT 1 *****/
/* play single mp3 and flash led at each push of a */
/* momentary button */
/****** END SYSTEM REQUIREMENTS *****/
/****** DEFINITION OF LIBRARIES *****/
#include
#include //https://github.com/evert-arias/EasyButton
#include //https://github.com/DFRobot/DFRobotDFPlayerMini
/****** FUNCTION PROTOTYPES *****/
void setup(void);
void loop(void);
void onPressed(); // Function prototype for the onPressed callback
void printDetail(uint8_t type, int value); // Function prototype for printing DFPlayer details
/***** DEFINITION OF DIGITAL INPUT PINS *****/
const uint8_t button_PushButton_PIN_D2 = 2;
/***** DEFINITION OF DIGITAL OUTPUT PINS *****/
const uint8_t led_LED_PIN_D3 = 3;
/***** DEFINITION OF Software Serial *****/
const uint8_t plait_DFPlayerMini_Serial_PIN_SERIAL_TX_A0 = A0;
const uint8_t plait_DFPlayerMini_Serial_PIN_SERIAL_RX_A1 = A1;
SoftwareSerial plait_DFPlayerMini_Serial(plait_DFPlayerMini_Serial_PIN_SERIAL_RX_A1, plait_DFPlayerMini_Serial_PIN_SERIAL_TX_A0);
/****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/
// Initialize the EasyButton object with the button pin
EasyButton button(button_PushButton_PIN_D2);
// Initialize the DFPlayer Mini object
DFRobotDFPlayerMini myDFPlayer; // Create an instance of the DFPlayer Mini
/****** FUNCTION DEFINITIONS *****/
void setup(void)
{
// put your setup code here, to run once:
pinMode(led_LED_PIN_D3, OUTPUT); // Set LED pin as output
plait_DFPlayerMini_Serial.begin(9600); // Initialize Software Serial for DFPlayer Mini
button.begin(); // Initialize the EasyButton
button.onPressed(onPressed); // Attach the onPressed callback function
// Initialize the DFPlayer Mini
if (!myDFPlayer.begin(plait_DFPlayerMini_Serial, true, true)) { // Use serial to communicate with DFPlayer
Serial.println(F("Unable to begin. Check connection and SD card!")); // Error message if initialization fails
while (true) delay(0); // Halt execution
}
myDFPlayer.volume(10); // Set volume (0-30)
}
void loop(void)
{
// put your main code here, to run repeatedly:
button.read(); // Read the button state
// Check if DFPlayer has available data
if (myDFPlayer.available()) {
printDetail(myDFPlayer.readType(), myDFPlayer.read()); // Print details from DFPlayer
}
}
void onPressed()
{
// Callback function for button press
digitalWrite(led_LED_PIN_D3, HIGH); // Turn on LED
myDFPlayer.play(1); // Play the first mp3
delay(100); // Keep LED on for a short duration
digitalWrite(led_LED_PIN_D3, LOW); // Turn off LED
}
void printDetail(uint8_t type, int value) {
switch (type) {
case DFPlayerCardInserted: Serial.println(F("Card Inserted!")); break;
case DFPlayerCardRemoved: Serial.println(F("Card Removed!")); break;
case DFPlayerPlayFinished: Serial.print(F("Number:")); Serial.print(value); Serial.println(F(" Play Finished!")); break;
case DFPlayerError:
switch (value) {
case Busy: Serial.println(F("Card not found")); break;
case Sleeping: Serial.println(F("Sleeping")); break;
case FileIndexOut: Serial.println(F("File Index Out of Bound")); break;
default: break;
}
break;
default: break;
}
}
/* END CODE */