#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include "TextScrollerOne.h"
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2);
#define BTN_Credito 0
#define BTN_ESCOLHE1 4
#define BTN_ESCOLHE2 5
TextScroller scroller(&lcd, 16, " Beba um cafe delicioso ");
boolean pagamento = false;
int bebida = 0;
void lcd_apagarLinha(uint8_t linha) {
lcd.setCursor(0, linha);
lcd.print(" ");
}
void comprar() {
bool selecionado = false;
lcd.clear();
lcd.setCursor(0,6);
lcd.print(" Escolha ");
lcd.setCursor(0,1);
lcd.print("1-mok. 2-cappuc.");
do {
if (digitalRead(BTN_ESCOLHE1) == HIGH) { // Se o botão 1 for pressionado
bebida = 1;
selecionado = true;
} else if (digitalRead(BTN_ESCOLHE2) == HIGH) { // Se o botão 2 for pressionado
bebida = 2;
selecionado = true;
}
if (selecionado) {
switch (bebida) {
case 1:
Serial.println("Selecionado: Mocaccino");
// Adicione aqui o código para liberar bebida
lcd.setCursor(2,0);
lcd.print("Mocaccino");
lcd.setCursor(3,1);
lcd.print(" Selecionado");
delay(3000);
pagamento = false;
lcd.clear();
break;
case 2:
Serial.println("Selecionado: cappuccino");
// Adicione aqui o código para liberar cappuccino
lcd.setCursor(2,0);
lcd.print("Cappuccino");
lcd.setCursor(3,1);
lcd.print(" Selecionado");
delay(3000);
pagamento = false;
lcd.clear();
break;
default:
Serial.println("Nenhuma bebida selecionada ou opção inválida");
// Código para quando nenhuma bebida válida for selecionada
break;
}
}
// Aguarda um pouco antes de continuar o loop (para evitar múltiplas leituras do mesmo botão)
delay(200);
} while (!selecionado);
}
//pagamento = false;
//lcd_apagarLinha(1);
void setup() {
Wire.begin(23, 22);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.backlight();
pinMode(BTN_Credito, INPUT);
pinMode(BTN_ESCOLHE1, INPUT);
pinMode(BTN_ESCOLHE2, INPUT);
digitalWrite(BTN_Credito, LOW);
digitalWrite(BTN_ESCOLHE1,LOW);
digitalWrite(BTN_ESCOLHE2, LOW);
Serial.begin(9600);
}
void loop() {
if (digitalRead(BTN_Credito) == HIGH) {
pagamento= true;
if(pagamento == true){
lcd.clear();
Serial.println("credito ok");
lcd.setCursor(4,1);
lcd.print("credito Ok");
delay(500);
comprar();
}
}
else{
scroller.scroll();
lcd.setCursor(4, 1);
lcd.print("R$ 5.00");
delay(250);
}
}Loading
ds18b20
ds18b20