bool sw = false;
int button = 2;
int menu = 4;
int led = 5;
int mode = 1;
byte da_pin = 3;
byte cnt = 0;
void setup() {
Serial.begin(9600);
pinMode(button, INPUT_PULLUP);
pinMode(menu, INPUT_PULLUP);
pinMode(led, OUTPUT);
pinMode(da_pin, OUTPUT);
digitalWrite(da_pin, HIGH);
}
void loop() {
if(digitalRead(button) == LOW){// if red button has been pressed
delay(100);
delay(300);// important
cnt++;
if(cnt > 7) {
cnt = 1;// if cnt is greater than 7, set it back to 1
}
folder_play(50 + mode, cnt);
flash(mode);//falsh xx times
}
if(digitalRead(menu) == LOW){
delay(500);
sw = true; // turn on the switch of menu
Serial.println("sw is ON.");
}
while(sw == true){//Enter the menu page
if(digitalRead(button) == LOW){//Selecting button
delay(500);
mode++;
if(mode > 4){//the max of mode is 4
mode = 1;// back to mode 1
}
Serial.print("mode changed to ");
Serial.println(mode);
}
if(digitalRead(menu) == LOW){//Comfirm and exit button
delay(500);
sw = false;
cnt = 0;
Serial.println("sw is OFF");
break; // exit the menu loop
}
}
}
void flash(int times){
for(byte i = 0; i < times; i++){
digitalWrite(led, HIGH);
delay(300);
digitalWrite(led, LOW);
delay(300);
}
Serial.println("DONE.");
}
void send_1() {
digitalWrite(da_pin, HIGH);
delayMicroseconds(100);
}
void send_0(){
digitalWrite(da_pin, LOW);
delayMicroseconds(100);
}
void send_da(uint8_t data){
digitalWrite(da_pin, LOW);
delayMicroseconds(100);
//Start mark
for(byte i = 0; i < 8; i++){//sending 8 digits
if(bitRead(data, i) == 0){
send_0();
}
else{
send_1();
}
}
digitalWrite(da_pin, HIGH);
delayMicroseconds(100);
//End mark
}
void folder_play(byte a, byte b){
byte mp3[8] = {126, 255, 6, 15, (byte)0, a, b, 239};
for(byte i = 0; i < 8; i++){
send_da(mp3[i]);
}
delay(1);
}