#include "pitches.h"
#include "U8glib.h"
#define VERT_PIN A1
#define HORZ_PIN A0
#define SEL_PIN 13
U8GLIB_SSD1306_128X64 oled(U8G_I2C_OPT_NONE);
const uint8_t ledPins[] = {9, 10, 11, 12};
#define SPEAKER_PIN 8
#define MAX_GAME_LENGTH 100
const int gameTones[] = { NOTE_G3, NOTE_C4, NOTE_E4, NOTE_G5};
uint8_t gameSequence[MAX_GAME_LENGTH] = {0};
uint8_t gameIndex = 0;
void setup() {
for (byte i = 0; i < 4; i++){
pinMode(ledPins[i], OUTPUT);
pinMode(VERT_PIN, INPUT);
pinMode(HORZ_PIN, INPUT);
pinMode(SEL_PIN, INPUT_PULLUP);
}
pinMode(SPEAKER_PIN, OUTPUT);
randomSeed(analogRead(A3));
}
void draw(void){
oled.setFont(u8g_font_helvB10);
oled.drawStr(0, 20, "Hi Simon");
}
void loop(void){
oled.firstPage();
int vert = analogRead(VERT_PIN);
int horz = analogRead(HORZ_PIN);
int sel = analogRead(SEL_PIN);
do {
draw();
} while(oled.nextPage());
}
void lightLedAndPlayTone(byte ledIndex) {
digitalWrite(ledPins[ledIndex], HIGH);
tone(SPEAKER_PIN, gameTones[ledIndex]);
delay(300);
digitalWrite(ledPins[ledIndex], LOW);
noTone(SPEAKER_PIN);
}
void playSequence() {
for (int i = 0; i < gameIndex; i++) {
byte currentLed = gameSequence[i];
lightLedAndPlayTone(currentLed);
delay(50);
}
}