/*
Autore: Ivan Selva
Data 10/04/2023
Nome: Progetto: menù mobile
Scopo: creare un menù la selezione viene fatta attraverso lo scorrimento dei vari menu
*/
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#include <SPI.h>
#include <Wire.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);
int spostamento =0 ;
String testo1;
String testo2;
String testo3;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // avvio il display oled
display.display(); // visualizzio
}
void loop() {
// put your main code here, to run repeatedly:
if (digitalRead(2)== HIGH){ // incremento lo spostamento con l'ingresso 2
if (spostamento < 32){ // lo spostamento non può essere incrementato fino a quando è minore di 58
spostamento = spostamento + 16;
} else if (spostamento >= 32){ // se spostamento è maggiore di 58 non può essere incrementato
spostamento = 0;
}
//spostamento = spostamento + 1; // max 58
} else if (digitalRead(5) == HIGH){ // decremento lo spsotamento con l'ingresso 5
if (spostamento > 0){ // lo stamento può essere decrementato solo se maggiore di 0
spostamento = spostamento -16;
}else if (spostamento <= 0){ // se lo spostamento è zero non può essere decrementato
spostamento = 32;
}
}
Serial.println(spostamento);
if (spostamento == 0){
testo1= "Menu 3";
testo2= "Menu 1";
testo3= "Menu 2";
} else if(spostamento==16){
testo1= "Menu 1";
testo2= "Menu 2";
testo3= "Menu 3";
} else if(spostamento== 32){
testo1= "Menu 2";
testo2= "Menu 3";
testo3= "Menu 1";
}
display.clearDisplay(); // pulisco il display
display.setCursor(0,16); // posiziono il cursore
display.setTextSize(2); // stabibilisco l'altezza del testo
display.setTextColor(WHITE); // stabilisco il colore del testo
display.print(">"); // inserisco la freccia
display.setCursor(12,16); // posiziono il cursore
display.print(testo2); // inserisco la freccia
display.setCursor(12,0); // posiziono il cursore
display.setTextSize(1); // stabibilisco l'altezza del testo
display.setTextColor(WHITE); // stabilisco il colore del testo
display.print(testo1); // inserisco la freccia
display.setCursor(12,40); // posiziono il cursore
display.print(testo3); // inserisco la freccia
display.setCursor(0,56); // posiziono il cursore
display.print("SU - SEL. - GIU"); // inserisco la freccia
display.display(); // visualizzo la freccia nel display
delay (250);
}