#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);
ezButton button1(2);
ezButton button2(4);
ezButton button3(5);
int tonel, estado = 0;
String tinta, volume, aditivo, entrega;
#define LED_VERDE 12
#define LED_AZUL 13
#define LED_VERMELHO 14
void setup() {
pinMode(LED_VERDE, OUTPUT);
pinMode(LED_AZUL, OUTPUT);
pinMode(LED_VERMELHO, 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("Tintaria Da Vinci");
display.display();
Serial.begin(9600);
delay(2000);
}
void loop() {
button1.loop();
button2.loop();
button3.loop();
switch (estado) {
case 0: pergunta_1(); break;
case 1: pergunta_2(); break;
case 2: pergunta_3(); break;
case 3: pergunta_4(); break;
case 4: pergunta_5(); break;
case 5: mistura_1(); break;
}
}
void pergunta_1()
{
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Tintaria Da Vinci");
display.setCursor(10, 30);
display.println("Quantos Baldes?");
display.setCursor(50, 50);
display.println(tonel);
display.display();
if (button1.isReleased()) {
tonel += 1;
}
if (button2.isReleased()) {
tonel -= 1;
}
if (button3.isReleased()) {
estado = 1;
}
display.clearDisplay();
}
void pergunta_2() {
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Tintaria Da Vinci");
display.setCursor(0, 30);
display.println("Tinta ? Verde, Vermelho, Azul");
display.setCursor(50, 50);
display.display();
if (button1.isReleased()) {
tinta = "Verde";
estado = 2;
}
if (button2.isReleased()) {
tinta = "Vermelho";
estado = 2;
}
if (button3.isReleased()) {
tinta = "Azul";
estado = 2;
}
}
void pergunta_3() {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Tintaria Da Vinci");
display.setCursor(0, 30);
display.println("Qual Pote? Verde - 1L, Vermelho - 2L, Azul - 3L");
display.setCursor(50, 50);
display.display();
if (button1.isReleased()) {
volume = "1 Litro";
estado = 3;
}
if (button2.isReleased()) {
volume = "2 Litros";
estado = 3;
}
if (button3.isReleased()) {
volume = "3 Litros";
estado = 3;
}
}
void pergunta_4() {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Tintaria Da Vinci");
display.setCursor(0, 30);
display.println("Escolha um tipo de aditivo - Hidro, Sem Cheiro, Fixante");
display.setCursor(50, 50);
display.display();
if (button1.isReleased()) {
aditivo = "Fixante";
estado = 4;
}
if (button2.isReleased()) {
aditivo = "Sem Cheiro";
estado = 4;
}
if (button3.isReleased()) {
aditivo = "Hidrofobica";
estado = 4;
}
}
void pergunta_5() {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Tintaria Da Vinci");
display.setCursor(0, 30);
display.println("Quando gostaria de retirar? 1 semana - pronta entrega");
display.setCursor(50, 50);
display.display();
if (button1.isReleased()) {
entrega = "Em 1 semana";
estado = 5;
}
if (button2.isReleased()) {
entrega = "Pronta entrega";
estado = 5;
}
}
void mistura_1() {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Tintaria Da Vinci");
display.setCursor(0, 30);
String frase = "Enchendo ";
String frase2 = frase + String(tonel) + " tonel";
display.println(frase2);
display.setCursor(50, 50);
display.display();
analogWrite(LED_VERMELHO, HIGH);
delay(5000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Tintaria Da Vinci");
display.setCursor(0, 30);
String frase3 = "Adicionando Tinta " + String(tinta) + "...";
display.println(frase3);
display.setCursor(50, 50);
display.display();
analogWrite(LED_VERMELHO, LOW);
analogWrite(LED_VERDE, HIGH);
delay(5000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Tintaria Da Vinci");
display.setCursor(0, 30);
String frase4 = "Colocando o Aditivo " + String(aditivo) + "...";
display.println(frase4);
display.setCursor(50, 50);
display.display();
analogWrite(LED_VERMELHO, LOW);
analogWrite(LED_VERDE, LOW);
analogWrite(LED_AZUL, HIGH);
delay(5000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Tintaria Da Vinci");
display.setCursor(0, 30);
String frase5 = "Colocando a tampa de " + String(volume) + "...";
display.println(frase5);
display.setCursor(50, 50);
display.display();
analogWrite(LED_VERMELHO, HIGH);
analogWrite(LED_VERDE, HIGH);
analogWrite(LED_AZUL, HIGH);
delay(5000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(10, 10);
display.println("Tintaria Da Vinci");
display.setCursor(0, 30);
display.println("Seu pedido esta pronto!");
display.setCursor(50, 50);
display.display();
analogWrite(LED_AZUL, LOW);
estado = 6;
}