#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#include <Wire.h>
#include <PID_v1.h>
#include "max6675.h"
#define outputPin 5
#define pinSO 8
#define pinCS 9
#define pinCLK 10
MAX6675 sensorTemp(pinCLK, pinCS, pinSO);
double Setpoint, Input, Output;
double Kp = 5.0, Ki = 2, Kd = 0.0;
PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT);
// OLED SCL ou SCK --> A5 SDA --> A4
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define button1 2
#define button2 3
#define button3 4
byte menu = 0;
byte sele0 = 1;
byte sele1 = 1;
byte sele2 = 1;
byte sele3 = 1;
byte sele4 = 1;
boolean button1Ant = false;
boolean button1Atu = false;
boolean button2Ant = false;
boolean button2Atu = false;
boolean button3Ant = false;
boolean button3Atu = false;
unsigned int Tinicial1;
unsigned int Talvo1;
unsigned int Talvo2;
unsigned int Talvo3;
unsigned long tempo1;
unsigned long tempo2;
unsigned long tempo3;
//-----------------------------------------------------------------
void setup() {
Serial.begin(115200);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0X3C)) {
Serial.println(F("Erro ao iniciar o display OLED"));
for (;;);
}
display.clearDisplay();
display.display();
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
pinMode(button3, INPUT_PULLUP);
pinMode(outputPin, OUTPUT);
//myPID.SetMode(AUTOMATIC);
Serial.println(String(Tinicial1));
}
//-----------------------------------------------------------------
void loop() {
///Serial.println(" ");
//Serial.print("menu ");Serial.print(menu);
switch (menu) {
case 0: // menu 0
button1Atu = digitalRead(button1);
if (button1Atu && !button1Ant) {
sele0++;
if (sele0 > 5) {
sele0 = 1;
}
}
button1Ant = button1Atu;
button2Atu = digitalRead(button2);
if (button2Atu && !button2Ant) {
sele0--;
if (sele0 < 1) {
sele0 = 5;
}
}
button2Ant = button2Atu;
sele1 = 1;
sele2 = 1;
sele3 = 1;
sele4 = 1;
//Serial.print(" sele0 ");Serial.println(sele0);
switch (sele0) {
case 1: // sele0 1
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.println("-> Correr");
display.println(" Ramp 1");
display.println(" Ramp 2");
display.println(" Ramp 3");
display.println(" Ramp 4");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
menu = 1;
}
break;
case 2: // sele0 2
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.println(" Correr");
display.println("-> Ramp 1");
display.println(" Ramp 2");
display.println(" Ramp 3");
display.println(" Ramp 4");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
menu = 2;
}
break;
case 3: // sele0 3
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.println(" Correr");
display.println(" Ramp 1");
display.println("-> Ramp 2");
display.println(" Ramp 3");
display.println(" Ramp 4");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
menu = 3;
}
break;
case 4: // sele0 4
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.println(" Correr");
display.println(" Ramp 1");
display.println(" Ramp 2");
display.println("-> Ramp 3");
display.println(" Ramp 4");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
menu = 4;
}
break;
case 5: // sele0 5
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.println(" Correr");
display.println(" Ramp 1");
display.println(" Ramp 2");
display.println(" Ramp 3");
display.println("-> Ramp 4");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
menu = 5;
}
break;
}
break;
case 1: // menu 1
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.println("T atual: ");
display.println("-> Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
menu = 0;
}
break;
case 2: // menu 2
button1Atu = digitalRead(button1);
if (button1Atu && !button1Ant) {
sele2++;
if (sele2 > 4) {
sele2 = 1;
}
}
button1Ant = button1Atu;
button2Atu = digitalRead(button2);
if (button2Atu && !button2Ant) {
sele2--;
if (sele2 < 1) {
sele2 = 4;
}
}
button2Ant = button2Atu;
sele0 = 1;
sele1 = 1;
sele3 = 1;
sele4 = 1;
//Serial.print(" sele2 ");Serial.println(sele2);
switch (sele2) {
case 1: // sele2 1
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 1");
display.println("-> Tinicial: ");
display.println(" T alvo: " );
display.println(" tempo: " );
display.println(" Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
menu = 6;
}
break;
case 2: // sele2 2
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 1");
display.println(" Tinicial: " + String(Tinicial1));
display.println("-> T alvo: " + String(Talvo1));
display.println(" tempo: " + String(tempo1));
display.println(" Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
menu = 7;
}
break;
case 3: // sele2 3
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 1");
display.println(" Tinicial: " + String(Tinicial1));
display.println(" T alvo: " + String(Talvo1));
display.println("-> tempo: " + String(tempo1));
display.println(" Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
menu = 8;
}
break;
case 4: // sele2 4
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 1");
display.println(" Tinicial: " + String(Tinicial1));
display.println(" T alvo: " + String(Talvo1));
display.println(" tempo: " + String(tempo1));
display.println("-> Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
menu = 0;
}
break;
}
break;
case 3: // menu 3
button1Atu = digitalRead(button1);
if (button1Atu && !button1Ant) {
sele3++;
if (sele3 > 3) {
sele3 = 1;
}
}
button1Ant = button1Atu;
button2Atu = digitalRead(button2);
if (button2Atu && !button2Ant) {
sele3--;
if (sele3 < 1) {
sele3 = 3;
}
}
button2Ant = button2Atu;
sele0 = 1;
sele1 = 1;
sele2 = 1;
sele4 = 1;
switch (sele3) {
case 1: // sele3 1
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 2");
display.println("-> T alvo: " + String(Talvo2));
display.println(" tempo: " + String(tempo2));
display.println(" Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
menu = 10;
}
break;
case 2: // sele3 2
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 2");
display.println(" T alvo: " + String(Talvo2));
display.println("-> tempo: " + String(tempo2));
display.println(" Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
menu = 11;
}
break;
case 3: // sele3 3
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 2");
display.println(" T alvo: " + String(Talvo2));
display.println(" tempo: " + String(tempo2));
display.println("-> Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
menu = 0;
}
break;
}
break;
case 4: // menu 4
button1Atu = digitalRead(button1);
if (button1Atu && !button1Ant) {
sele4++;
if (sele4 > 3) {
sele4 = 1;
}
}
button1Ant = button1Atu;
button2Atu = digitalRead(button2);
if (button2Atu && !button2Ant) {
sele4--;
if (sele4 < 1) {
sele4 = 3;
}
}
button2Ant = button2Atu;
sele0 = 1;
sele1 = 1;
sele2 = 1;
sele3 = 1;
switch (sele4) {
case 1: // sele4 1
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 3");
display.println("-> T alvo: " + String(Talvo3));
display.println(" tempo: " + String(tempo3));
display.println(" Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
menu = 12;
}
break;
case 2: // sele4 2
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 3");
display.println(" T alvo: " + String(Talvo3));
display.println("-> tempo: " + String(tempo3));
display.println(" Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
menu = 13;
}
break;
case 3: // sele4 3
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 3");
display.println(" T alvo: " + String(Talvo3));
display.println(" tempo: " + String(tempo3));
display.println("-> Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
menu = 0;
}
break;
}
break;
case 5: // menu 5
break;
case 6: // menu 6
if (digitalRead(button1) == LOW) {
delay(10);
Tinicial1++;
}
if (digitalRead(button2) == LOW) {
delay(10);
Tinicial1--;
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 1");
display.println("-> Tinicial: " + String(Tinicial1));
display.println(" T alvo: " + String(Talvo1));
display.println(" tempo: " + String(tempo1));
display.println(" Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
sele2 = 1;
menu = 2;
}
break;
case 7: // menu 7
if (digitalRead(button1) == LOW) {
delay(10);
Talvo1++;
}
if (digitalRead(button2) == LOW) {
delay(10);
Talvo1--;
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 1");
display.println(" Tinicial: " + String(Tinicial1));
display.println("-> T alvo: " + String(Talvo1));
display.println(" tempo: " + String(tempo1));
display.println(" Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
sele2 = 2;
menu = 2;
}
break;
case 8: // menu 8
if (digitalRead(button1) == LOW) {
delay(10);
tempo1++;
}
if (digitalRead(button2) == LOW) {
delay(10);
tempo1--;
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 1");
display.println(" Tinicial: " + String(Tinicial1));
display.println(" T alvo: " + String(Talvo1));
display.println("-> tempo: " + String(tempo1));
display.println(" Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
sele2 = 3;
menu = 2;
}
break;
case 10: // menu 10
if (digitalRead(button1) == LOW) {
delay(10);
Talvo2++;
}
if (digitalRead(button2) == LOW) {
delay(10);
Talvo2--;
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 2");
display.println("-> T alvo: " + String(Talvo2));
display.println(" tempo: " + String(tempo2));
display.println(" Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
sele3 = 1;
menu = 3;
}
break;
case 11: // menu 11
if (digitalRead(button1) == LOW) {
delay(10);
tempo2++;
}
if (digitalRead(button2) == LOW) {
delay(10);
tempo2--;
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 2");
display.println(" T alvo: " + String(Talvo2));
display.println("-> tempo: " + String(tempo2));
display.println(" Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
sele3 = 2;
menu = 3;
}
break;
case 12: // menu 12
if (digitalRead(button1) == LOW) {
delay(10);
Talvo3++;
}
if (digitalRead(button2) == LOW) {
delay(10);
Talvo3--;
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 3");
display.println("-> T alvo: " + String(Talvo3));
display.println(" tempo: " + String(tempo3));
display.println(" Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
sele4 = 1;
menu = 4;
}
break;
case 13: // menu 13
if (digitalRead(button1) == LOW) {
delay(10);
tempo3++;
}
if (digitalRead(button2) == LOW) {
delay(10);
tempo3--;
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(45, 0);
display.println("Ramp 3");
display.println(" T alvo: " + String(Talvo3));
display.println("-> tempo: " + String(tempo3));
display.println(" Voltar");
display.display();
if (digitalRead(button3) == LOW) {
delay(100);
sele4 = 2;
menu = 4;
}
break;
}
}