Just so start, I will happily accept all bashing from not finding the answer to similar requests as this one in other posts.
I have a trouble searching through vast amounts of information and that makes me shut down completely.
Therefore I am trying to take a step forward by simply asking for guidance.
Here is my project that I have started working on:
Few years ago a friend of mine and me wanted to have a big red button as a celebratory device.
To be used when you accomplish something that you are super proud about.
You nail something, slam the button down and your favorite song is played from a couple of speakers in the room.
I have aqcuired an Arduino Uno, and started fiddling with it. Super-fun!
My questions are:
Is there a specific button one could aquire for this to work?
Could this project work with the Uno?
Is it possible to do this with an iPod or is another mp3-player better?
Are there similar projects that I have missed that have done almost the exaxt same thing?
/*
State change detection (edge detection)
https://docs.arduino.cc/built-in-examples/digital/StateChangeDetection/
Often, you don't need to know the state of a digital input all the time, but
you just need to know when the input changes from one state to another.
For example, you want to know when a button goes from OFF to ON. This is called
state change detection, or edge detection.
This example shows how to detect when a button or button changes from off to on
and on to off.
The circuit:
- pushbutton attached to pin 2 from +5V
- 10 kilohm resistor attached to pin 2 from ground
- LED attached from pin 13 to ground through 220 ohm resistor (or use the
built-in LED on most Arduino boards)
created 27 Sep 2005
modified 30 Aug 2011
by Tom Igoe
This example code is in the public domain.
https://www.arduino.cc/en/Tutorial/BuiltInExamples/StateChangeDetection
*/
// this constant won't change:
const int buttonPin = 2; // the pin that the pushbutton is attached to
const int ledPin = 13; // the pin that the LED is attached to
// Variables will change:
int buttonPushCounter = 0; // counter for the number of button presses
int buttonState = 0; // current state of the button
int lastButtonState = 0; // previous state of the button
void setup() {
// initialize the button pin as a input:
pinMode(buttonPin, INPUT);
// initialize the LED as an output:
pinMode(ledPin, OUTPUT);
// initialize serial communication:
Serial.begin(9600);
}
void loop() {
// read the pushbutton input pin:
buttonState = digitalRead(buttonPin);
// compare the buttonState to its previous state
if (buttonState != lastButtonState) {
// if the state has changed, increment the counter
if (buttonState == HIGH) {
// if the current state is HIGH then the button went from off to on:
buttonPushCounter++;
Serial.println("on");
Serial.print("number of button pushes: ");
Serial.println(buttonPushCounter);
} else {
// if the current state is LOW then the button went from on to off:
Serial.println("off");
}
// Delay a little bit to avoid bouncing
delay(50);
}
// save the current state as the last state, for next time through the loop
lastButtonState = buttonState;
// turns on the LED every four button pushes by checking the modulo of the
// button push counter. the modulo function gives you the remainder of the
// division of two numbers:
if (buttonPushCounter % 4 == 0) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
The next 10% might be moving the pins around to repurpose the LED to the DFPlayer control, and maybe change the %4 to %2 to make the button an on-off toggle button, and maybe wiring the buttons more safely with INPUT_PULLUP.
I'll counter with a DF Player (Pro if stereo is needed) and a Big Red Button will do 100% of what OP needs. I posted this the other day. All it needed was the DF Player and a pushbutton (and of course, battery, speakers, etc...).