using button count
press the button once to play a song
press the same button the second time to play the next song
and then so on
when it reaches the end of your song list
it goes back to the first one
if you do not need to debug it with your serial monitor , just remove the code for that
const int buttonPin = 2; // the pin that the pushbutton is attached to
const int ledPin = 8; // the pin that the LED is attached to
const int ledPin2 = 9;
// 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);
pinMode(ledPin2, 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
// wend 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
// wend from on to off:
Serial.println("off");
}
}
// save the current state as the last state,
//for next time through the loop
lastButtonState = buttonState;
counting1();
counting2();
resett();
}
void resett() {
if (buttonPushCounter==3)
{ buttonPushCounter = 1;
delay(20);}
}
void counting1() {
if (buttonPushCounter==1) {
delay(20);
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
void counting2() {
if (buttonPushCounter==2) {
delay(20);
digitalWrite(ledPin2, HIGH);
} else {
digitalWrite(ledPin2, LOW);
}
}
this is my rookie way of doing it according to the button count example
u can change it to suit your needs