so im trying to do a school project. its this dispenser thing and it has multiple recordings i am playing as mp3's through my player module. im using Arduino UNO v3 and iv created my program as everything i want it to do:
#include <SoftwareSerial.h>
SoftwareSerial mp3player = SoftwareSerial(7,8); //RX, TX
int IR = 3;
int yes = 4;
int no = 5;
int next = 6;
int volup = 9;
int voldown = 10;
int level = 11;
void setup() {
// Set parameters for mp3player
pinMode(7, INPUT);
pinMode(8, OUTPUT);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH); // pull-up resistors
// set the data rate for the SoftwareSerial port
Serial.begin(19200);
mp3player.begin(19200);
//button pinMode's
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
//pullup resistors for buttons
digitalWrite(yes, HIGH);
// set the starting volume
mp3player.println("\\:v 210");
}
// define the loop
void loop()
{
start:
if(digitalRead(3)== LOW) {
delay(50);
mp3player.println("\\20\r\n");
if(digitalRead(4)== HIGH) {
delay(50);
mp3player.println("\\ok\r\n");
delay(2000);
mp3player.println("\\21\r\n");
delay(3000);
mp3player.println("\\22\r\n");
delay(2000);
mp3player.println("\\23\r\n");
delay(8000);
mp3player.println("\\24\r\n");
if(digitalRead(4)== LOW) {
delay(100);
mp3player.println("\\ok\r\n");
delay(1000);
mp3player.println("\\26\r\n");
delay(1000);
mp3player.println("\\10\r\n");
if(digitalRead(6)== LOW) {
delay(100);
mp3player.println("\\1\r\n");
if(digitalRead(6)== LOW) {
delay(100);
mp3player.println("\\2\r\n");
if(digitalRead(6)== LOW) {
delay(100);
mp3player.println("\\3\r\n");
if(digitalRead(6)== LOW) {
delay(100);
mp3player.println("\\4\r\n");
if(digitalRead(6)== LOW) {
delay(100);
mp3player.println("\\8\r\n");
}
}
}
}
}
if(digitalRead(10)== LOW) {
delay(100);
mp3player.println("\\:v 150");
if(digitalRead(10)== LOW) {
delay(100);
mp3player.println("\\:v 100");
}
}
if(digitalRead(9)== LOW) {
delay(100);
mp3player.println("\\:v 200");
if(digitalRead(9)== LOW) {
delay(100);
mp3player.println("\\:v 250");
}
}
}
if(digitalRead(5)== LOW) {
delay(100);
mp3player.println("\\oh\r\n");
mp3player.println("\\27\r\n");
if(digitalRead(4)== LOW) {
mp3player.println("\\ok\r\n");
goto start;
}
if(digitalRead(5)== LOW) {
mp3player.println("\\oh\r\n");
delay(500);
mp3player.println("\\28\r\n");
delay(20000);
goto start;
}
}
}
}
if(digitalRead(5)== LOW) {
delay(100);
mp3player.println("\\25\r\n");
if(digitalRead(4)== LOW) {
delay(100);
mp3player.println("\\ok\r\n");
delay(1000);
mp3player.println("\\26\r\n");
delay(1000);
mp3player.println("\\10\r\n");
if(digitalRead(6)== LOW) {
delay(100);
mp3player.println("\\1\r\n");
if(digitalRead(6)== LOW) {
delay(100);
mp3player.println("\\2\r\n");
if(digitalRead(6)== LOW) {
delay(100);
mp3player.println("\\3\r\n");
if(digitalRead(6)== LOW) {
delay(100);
mp3player.println("\\4\r\n");
if(digitalRead(6)== LOW) {
delay(100);
mp3player.println("\\8\r\n");
}
}
}
}
}
if(digitalRead(10)== LOW) {
delay(100);
mp3player.println("\\:v 150");
if(digitalRead(10)== LOW) {
delay(100);
mp3player.println("\\:v 100");
}
}
if(digitalRead(9)== LOW) {
delay(100);
mp3player.println("\\:v 200");
if(digitalRead(9)== LOW) {
delay(100);
mp3player.println("\\:v 250");
}
}
}
if(digitalRead(5)== LOW) {
delay(100);
mp3player.println("\\oh\r\n");
mp3player.println("\\27\r\n");
if(digitalRead(4)== LOW) {
mp3player.println("\\ok\r\n");
goto start;
}
if(digitalRead(5)== LOW) {
mp3player.println("\\oh\r\n");
delay(500);
mp3player.println("\\28\r\n");
delay(20000);
goto start;
}
}
}
}
Now, what i thought is that (starting from the begining) the first if statement would wait for its reply (button press), and then continue on to the next if statement. However instead, it does the first one and then the second one were its using pin 4, (which is used ALOT of times throughout the hole program) it seems like its trying to do all the pin 4 if statements at the same time and sorta glitches out, randomly choosing one. Im new to arduino, how should i conquer my problem so that the program runs as it should?