#define BUZZER_PIN 9
#define BTN_PIN 10
byte leds[] = {2,3,4,5,6,7,8};
byte numbers[6][7] = {
{0,0,0,1,0,0,0},
{1,0,0,0,0,0,1},
{1,0,0,1,0,0,1},
{1,1,0,0,0,1,1},
{1,1,0,1,0,1,1},
{1,1,1,0,1,1,1},
};
void showNumber(byte number);
void setup() {
randomSeed(analogRead(0));
pinMode(BTN_PIN, INPUT_PULLUP);
for(byte i=0; i<7; i++)
{
pinMode(leds[i], OUTPUT);
digitalWrite(leds[i], LOW);
}
showNumber(0);
}
void showNumber(byte num_idx) {
for(byte led = 0; led < 7; led ++)
{
if(numbers[num_idx][led])
{
digitalWrite(leds[led], HIGH);
} else {
digitalWrite(leds[led], LOW);
}
}
}
void showRandomNumber() {
byte last_num = 100;
byte num = 100;
for(byte i=0;i<20; i++ )
{
tone(BUZZER_PIN, 500, 10);
do {
num = random(0, 6);
} while (num == last_num);
last_num = num;
showNumber(num);
delay(150 + ( i* 30));
}
// showNumber(random(0, 6));
}
void playSuccessSound() {
tone(BUZZER_PIN, 523, 100); delay(100); // C5
tone(BUZZER_PIN, 659, 100); delay(100); // E5
tone(BUZZER_PIN, 784, 100); delay(100); // G5
tone(BUZZER_PIN, 1047, 300); delay(300); // C6
}
void loop() {
while(digitalRead(BTN_PIN) == HIGH);
tone(BUZZER_PIN, 440, 200);
showRandomNumber();
playSuccessSound();
}