/*
Centro Universitário Uniamériaca Descomplica
Engenharia de Software 2022
Grupo 30/ Grupo do Óleo:
1-Cristovão Martins
2-Luan Rodrigo Kehl
3-Ivo Vinicius Cassol
4-Tailyne Bertoncelli
*/
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define NUMFLAKES 10 // Number of snowflakes in the animation example
#define LOGO_HEIGHT 16
#define LOGO_WIDTH 16
/*PROTOTIPO DAS FUNCOES*/
void menu(void);
int botao(void);
void movecursor(int cursor);
//void escolhejogador (int jogadores);
//void imprimeboneco(int snake);
void setup() {
Serial.begin(9600);
pinMode(9, INPUT_PULLUP);
pinMode(8, INPUT_PULLUP);
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for(;;); // Don't proceed, loop forever
}
}
void loop() {
int botaoA = 1;
int botaoB = 1;
int opc;
menu();
opc=botao();
if (opc == 1){
//display.clearDisplay();
//display.setTextSize(0.5); //Define o tamanho do texto
//display.setTextColor(SSD1306_WHITE); //Define a cor do texto
//display.setCursor(30,0);
//display.println(F("SELECIONE: "));
//display.setCursor(20,20);
//display.println(F("Allan"));
//display.setCursor(20,30);
//display.println(F("Tailyne"));
//display.setCursor(20,40);
//display.println(F("Gustavo"));
//display.display();
//delay(10000);
display.clearDisplay();
display.drawLine(10, 30, 60, 30, SSD1306_WHITE);//coluna,linha
display.fillRect(10, 30, 60, 2, SSD1306_WHITE);
display.drawCircle(70, 31, 4, SSD1306_WHITE);
display.display();
delay(10000);
}
if (opc == 2){
display.clearDisplay();
display.setTextSize(1); //Define o tamanho do texto
display.setTextColor(SSD1306_WHITE); //Define a cor do texto
display.setCursor(40,0);// (COLUNAS, LINHAS) EM PIXELS
display.println(F("RANKING"));
display.setCursor(0,20);
display.println(F("1 Gustavo - 150 pts"));
display.setCursor(0,30);
display.println(F("2 Allan - 70 pts"));
display.setCursor(0,40);
display.println(F("3 Tailyne - 50 pts"));
display.display();
delay(10000);
}
if (opc == 3){
display.clearDisplay();
display.setTextSize(0.5); //Define o tamanho do texto
display.setTextColor(SSD1306_WHITE); //Define a cor do texto
display.setCursor(15,0);// (COLUNAS, LINHAS) EM PIXELS
display.println(F("Desenvolvedores:"));
display.setTextSize(0.5);
display.setTextColor(SSD1306_WHITE);
display.setCursor(12,20);
display.println(F("Cristovao Martins"));
display.setCursor(30,30);
display.println(F("Codigo em C"));
display.display();
delay(5000);
display.setTextSize(0.5);
display.setTextColor(SSD1306_BLACK);
display.setCursor(12,20);
display.println(F("Cristovao Martins"));
display.setCursor(30,30);
display.println(F("Codigo em C"));
display.display();
delay(1000);
display.setTextSize(0.5);
display.setTextColor(SSD1306_WHITE);
display.setCursor(35,20);
display.println(F("Ivo Cassol"));
display.setCursor(45,30);
display.println(F("Design"));
display.display();
delay(5000);
display.setTextSize(0.5);
display.setTextColor(SSD1306_BLACK);
display.setCursor(35,20);
display.println(F("Ivo Cassol"));
display.setCursor(45,30);
display.println(F("Design"));
display.display();
delay(1000);
display.setTextSize(0.5);
display.setTextColor(SSD1306_WHITE);
display.setCursor(35,20);
display.println(F("Luan Kehl"));
display.setCursor(45,30);
display.println(F("Design"));
display.display();
delay(5000);
display.setTextSize(0.5);
display.setTextColor(SSD1306_BLACK);
display.setCursor(35,20);
display.println(F("Luan Kehl"));
display.setCursor(45,30);
display.println(F("Design"));
display.display();
delay(1000);
display.setTextSize(0.5);
display.setTextColor(SSD1306_WHITE);
display.setCursor(10,20);
display.println(F("Tailyne Bertoncelli"));
display.setCursor(15,30);
display.println(F("Codigo em Arduino"));
display.display();
delay(5000);
display.clearDisplay();
display.display();
delay(2000);
}
if (opc == 4){
display.clearDisplay();
display.setTextSize(1); //Define o tamanho do texto
display.setTextColor(SSD1306_WHITE); //Define a cor do texto
display.setCursor(25,25);// (COLUNAS, LINHAS) EM PIXELS
display.println(F("Volte Sempre!"));
display.display();
delay(30000);
}
}
void menu(void) {
display.clearDisplay();
display.setTextSize(1); //Define o tamanho do texto
display.setTextColor(SSD1306_WHITE); //Define a cor do texto
display.setCursor(35,0);// (COLUNAS, LINHAS) EM PIXELS
display.println(F("SNAKE.uni"));
display.setCursor(40,20);
display.println(F("JOGAR"));
display.setCursor(40,30);
display.println(F("RANKING"));
display.setCursor(40,40);
display.println(F("CREDITOS"));
display.setCursor(40,50);
display.println(F("SAIR"));
display.display();
delay(1000);
}
int botao(void){
int b1=1;
int b2=1;
int b2b=1;
int cursor=1;
int i;
Serial.println(cursor);
movecursor (cursor);
while (b1==1){
b1=digitalRead(9); //seleciona a opcao
b2=digitalRead(8); //mudar o cursor
//Serial.println(b1);
delay(1);
b2b=digitalRead(8);
//Serial.println(b1);
if ((b2b-b2)==1){
//Codigo para mover cursor
if (cursor>3){
cursor=1;
}
else {
cursor++;
}
Serial.println(cursor);
movecursor (cursor);
delay(10);
}
//delay(200);
}
return cursor;
}
void movecursor(int cursor){
switch (cursor){
case 1:
// LIMPA O ANTERIOR PRIMEIRO
display.setTextSize(1);
display.setTextColor(SSD1306_BLACK);
display.setCursor(30, 50);
display.println(F(">"));
display.setTextColor(SSD1306_WHITE);
display.setCursor(30, 20);
display.println(F(">"));
display.display();
break;
case 2:
display.setTextSize(1);
display.setTextColor(SSD1306_BLACK);
display.setCursor(30, 20);
display.println(F(">"));
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(30, 30);
display.println(F(">"));
display.display();
break;
case 3:
display.setTextSize(1);
display.setTextColor(SSD1306_BLACK);
display.setCursor(30, 30);
display.println(F(">"));
display.display();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(30, 40);
display.println(F(">"));
display.display();
break;
case 4:
display.setTextSize(1);
display.setTextColor(SSD1306_BLACK);
display.setCursor(30, 40);
display.println(F(">"));
display.display();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(30, 50);
display.println(F(">"));
display.display();
break;
}
}
/*void escolhejogador (int jogadores) {
switch(jogadores) {
case 1:
display.setTextSize(1);
display.setTextColor(SSD1306_BLACK);
display.setCursor(0, 40);
display.println(F(">"));
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 20);
display.println(F(">"));
display.display();
break;
case 2:
display.setTextSize(1);
display.setTextColor(SSD1306_BLACK);
display.setCursor(0, 20);
display.println(F(">"));
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 30);
display.println(F(">"));
display.display();
break;
case 3:
display.setTextSize(1);
display.setTextColor(SSD1306_BLACK);
display.setCursor(0, 30);
display.println(F(">"));
display.display();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 40);
display.println(F(">"));
display.display();
break;
}
}*/