#include <ezButton.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
// Buttons
ezButton button1(2); // create ezButton object that attach to pin GIOP22
ezButton button2(4); // create ezButton object that attach to pin GIOP22
ezButton button3(5); // create ezButton object that attach to pin GIOP22
// Variaveis
int copos, estado = 0;
String sabor, extra, salgado, pagamento;
#define LED_VERMELHO 12
#define LED_AMARELO 13
#define LED_AZUL 14
// Fim das variaveis
// ------------------ Projeto desenvolvido por Luís Estareli ------------------
void setup() {
pinMode(LED_VERMELHO, OUTPUT);
pinMode(LED_AMARELO, OUTPUT);
pinMode(LED_AZUL, OUTPUT);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("FruitInc");
display.display();
Serial.begin(9600);
delay(2000);
}
void loop() {
button1.loop(); // MUST call the loop() function first
button2.loop();
button3.loop();
switch (estado) {
case 0: pergunta1(); break;
case 1: pergunta2(); break;
case 2: pergunta3(); break;
case 3: pergunta4(); break;
case 4: pergunta5(); break;
case 5: operacao(); break;
}
}
void pergunta1() {
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("FruitInc");
display.setCursor(10, 30);
display.println("Quantos copos?");
display.setCursor(50, 50);
display.println(copos);
display.display();
if (button1.isReleased()) {
copos += 1;
}
if (button2.isReleased()) {
copos -= 1;
}
if (button3.isReleased()) {
estado = 1;
}
display.clearDisplay();
}
void pergunta2() {
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("FruitInc");
display.setCursor(0, 30);
display.println("Sabor? Verde - Limao, Vermelho - Morango, Azul - Uva");
display.setCursor(50, 50);
display.display();
if (button1.isReleased()) { // verde
sabor = "Limao";
estado = 2;
}
if (button2.isReleased()) { // vermelho
sabor = "Morango";
estado = 2;
}
if (button3.isReleased()) { // azul
sabor = "Uva";
estado = 2;
}
}
void pergunta3() {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("FruitInc");
display.setCursor(0, 30);
display.println("Extra? Verde - Hortela, Vermelho - Framboesa, Azul - Mirtilo");
display.setCursor(50, 50);
display.display();
if (button1.isReleased()) { // verde
extra = "Hortela";
estado = 3;
}
if (button2.isReleased()) { // vermelho
extra = "Framboesa";
estado = 3;
}
if (button3.isReleased()) { // azul
extra = "Mirtilo";
estado = 3;
}
}
void pergunta4() {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("FruitInc");
display.setCursor(0, 30);
display.println("Salgado? Verde - Coxinha, Vermelho - Bauru, Azul - Esfirra");
display.setCursor(50, 50);
display.display();
if (button1.isReleased()) { // verde
salgado = "Guaraná";
estado = 4;
}
if (button2.isReleased()) { // vermelho
salgado = "Coca";
estado = 4;
}
if (button3.isReleased()) { // azul
salgado = "Água";
estado = 4;
}
}
void pergunta5() {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("FruitInc");
display.setCursor(0, 30);
display.println("Forma de Pagamento? Green - Dinheiro, Red - Cartão");
display.setCursor(50, 50);
display.display();
if (button1.isReleased()) { // verde
pagamento = "Dinheiro";
estado = 5;
}
if (button2.isReleased()) { // vermelho
pagamento = "Cartão";
estado = 5;
}
}
void operacao() {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("FruitInc");
display.setCursor(0, 30);
String frase = "Arrumando... ";
String frase2 = frase + String(copos) + " copos....";
display.println(frase2);
display.setCursor(50, 50);
display.display();
analogWrite(LED_AMARELO, HIGH);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("FruitInc");
display.setCursor(0, 30);
String frase3 = "Adicionando sabor " + String(sabor) + "...";
display.println(frase3);
display.setCursor(50, 50);
display.display();
analogWrite(LED_AZUL, LOW);
analogWrite(LED_VERMELHO, HIGH);
delay(5000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("FruitInc");
display.setCursor(0, 30);
String frase4 = "Colocando o extra de " + String(extra) + "...";
display.println(frase4);
display.setCursor(50, 50);
display.display();
analogWrite(LED_AZUL, LOW);
analogWrite(LED_VERMELHO, LOW);
analogWrite(LED_AMARELO, HIGH);
delay(5000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("FruitInc");
display.setCursor(0, 30);
display.println("Seu pedido esta pronto!");
display.setCursor(50, 50);
display.display();
analogWrite(LED_AMARELO, LOW);
estado = 6; // kill
}