#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);
ezButton button2(4);
ezButton button3(5);
// Variaveis
int estado = 0;
String tamanho,sabor, cobertura, algoMais, entrega;
#define LED_ROXO 12
#define LED_ROSA 13
#define LED_AMARELO 14
// Fim das variaveis
void setup() {
pinMode(LED_ROXO, OUTPUT);
pinMode(LED_ROSA, OUTPUT);
pinMode(LED_AMARELO, 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("Churros do IF");
display.display();
Serial.begin(9600);
delay(2000);
}
void loop() {
button1.loop();
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("Churros do IF");
display.setCursor(10, 30);
display.println("Qual o tamanho do churros? Green - Pequeno, Red - Medio, Blue - Grande");
display.setCursor(50, 50);
display.println(tamanho);
display.display();
if (button1.isReleased()) {
tamanho= "Pequeno";
estado= 1;
}
if (button2.isReleased()) {
tamanho= "Medio";
estado= 1;
}
if (button3.isReleased()) {
tamanho= "Grande";
estado= 1;
}
display.clearDisplay();
}
void pergunta2() {
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Churros do IF");
display.setCursor(0, 30);
display.println("Sabor? Green - Chocolate, Red - Doce de leite, Blue - Nutella");
display.setCursor(50, 50);
display.display();
if (button1.isReleased()) { // verde
sabor = "Chocolate";
estado = 2;
}
if (button2.isReleased()) { // vermelho
sabor = "Doce de leite";
estado = 2;
}
if (button3.isReleased()) { // azul
sabor = "Nutella";
estado = 2;
}
}
void pergunta3() {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Churros do IF");
display.setCursor(0, 30);
display.println("Cobertura? Green - Acucar, Red - Canela, Blue - Mel");
display.setCursor(50, 50);
display.display();
if (button1.isReleased()) { // verde
cobertura = "Acucar";
estado = 3;
}
if (button2.isReleased()) { // vermelho
cobertura = "Canela";
estado = 3;
}
if (button3.isReleased()) { // azul
cobertura = "Mel";
estado = 3;
}
}
void pergunta4() {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Churros do IF");
display.setCursor(0, 30);
display.println("Confeitos? Green - Granulado, Red - Leite Ninho, Blue - Nozes");
display.setCursor(50, 50);
display.display();
if (button1.isReleased()) { // verde
algoMais = "Granulado";
estado = 4;
}
if (button2.isReleased()) { // vermelho
algoMais = "Leite Ninho";
estado = 4;
}
if (button3.isReleased()) { // azul
algoMais = "Nozes";
estado = 4;
}
}
void pergunta5() {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Churros do IF");
display.setCursor(0, 30);
display.println("E pra viagem? Green - Viagem, Red - Comer aqui");
display.setCursor(50, 50);
display.display();
if (button1.isReleased()) { // verde
entrega = "Viagem";
estado = 5;
}
if (button2.isReleased()) { // vermelho
entrega = "Comer aqui";
estado = 5;
}
}
void operacao() {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Churros do IF");
display.setCursor(0, 30);
String frase = "Fazendo um churros ";
String frase2 = frase + String(tamanho) + "...";
display.println(frase2);
display.setCursor(50, 50);
display.display();
analogWrite(LED_AMARELO, HIGH);
delay(5000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Churros do IF");
display.setCursor(0, 30);
String frase3 = "Adicionando sabor " + String(sabor) + "...";
display.println(frase3);
display.setCursor(50, 50);
display.display();
analogWrite(LED_AMARELO, LOW);
analogWrite(LED_ROXO, HIGH);
delay(5000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Churros do IF");
display.setCursor(0, 30);
String frase4 = "Colocando a cobertura de " + String(cobertura) + "...";
display.println(frase4);
display.setCursor(50, 50);
display.display();
analogWrite(LED_AMARELO, LOW);
analogWrite(LED_ROXO, LOW);
analogWrite(LED_ROSA, HIGH);
delay(5000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Churros do IF");
display.setCursor(0, 30);
display.println("Seu pedido esta pronto!");
display.setCursor(50, 50);
display.display();
analogWrite(LED_ROSA, LOW);
estado = 6;
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
oled1:GND
oled1:VCC
oled1:SCL
oled1:SDA
pot1:GND
pot1:SIG
pot1:VCC
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C