#include <LiquidCrystal.h> // Inclui a biblioteca do LCD
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; // Pinos do LCD
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int produto=0;
int rt_BotaoD=1; //variável auxiliar para borda do botão direito
int rt_BotaoE=1; //variavel auxiliar para borda do botão esquerdo
void setup() {
// put your setup code here, to run once:
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("PRODUTO:");
lcd.setCursor(0,1);
lcd.print(">P M G");
pinMode(6,INPUT_PULLUP);//botão ESQUERDA
pinMode(7, INPUT_PULLUP); //BOTÃO ENTER
pinMode(8, INPUT_PULLUP);//Botão DIREITA
pinMode(13, OUTPUT); //led verde
pinMode(A5, OUTPUT); //led amarelo
pinMode(10, OUTPUT); //led vermelho
pinMode(A3, OUTPUT); //buzzer
//inicialização das variáveis
digitalWrite(A5,0);
digitalWrite(10, 0);
digitalWrite(13, 0);
digitalWrite(A3,0);
}
void loop() {
// put your main code here, to run repeatedly:
if (digitalRead(8)==0 && rt_BotaoD==1){
produto = produto +1;
rt_BotaoD=0;
}
if (digitalRead(6)==0 && rt_BotaoE==1){
produto = produto -1;
rt_BotaoE=0;
}
if (produto == 0){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("MICRO-ONDAS");
lcd.setCursor(0,1);
lcd.print("<PIPOCA>");
lcd.setCursor(11,1);
lcd.print("5seg");
delay(100);
}
if (produto == 1){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("MICRO-ONDAS");
lcd.setCursor(0,1);
lcd.print("<FRANGO>");
lcd.setCursor(11,1);
lcd.print("10seg");
delay(100);
}
if (produto == 2){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("MICRO-ONDAS");
lcd.setCursor(0,1);
lcd.print("<ARROZ>");
lcd.setCursor(11,1);
lcd.print("8seg");
delay(100);
}
if (produto == 3){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("MICRO-ONDAS");
lcd.setCursor(0,1);
lcd.print("<BRIGADEIRO>");
lcd.setCursor(12,1);
lcd.print("6seg");
delay(100);
}
if (produto ==0 && digitalRead(7)==0){
for(int i=0; i < 5; i++){
digitalWrite(A5,HIGH);
digitalWrite(10,HIGH);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(A5,LOW);
digitalWrite(10,LOW);
digitalWrite(13,LOW);
delay(500);
}
for(int i=0; i < 3; i++){
digitalWrite(A3,HIGH);
delay(500);
digitalWrite(A3,LOW);
delay(500);
}
}
if (produto ==1 && digitalRead(7)==0){
for(int i=0; i < 10; i++){
digitalWrite(A5,HIGH);
digitalWrite(10,HIGH);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(A5,LOW);
digitalWrite(10,LOW);
digitalWrite(13,LOW);
delay(500);
}
for(int i=0; i < 3; i++){
digitalWrite(A3,HIGH);
delay(500);
digitalWrite(A3,LOW);
delay(500);
}
}
if (produto ==2 && digitalRead(7)==0){
for(int i=0; i < 8; i++){
digitalWrite(A5,HIGH);
digitalWrite(10,HIGH);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(A5,LOW);
digitalWrite(10,LOW);
digitalWrite(13,LOW);
delay(500);
}
for(int i=0; i < 3; i++){
digitalWrite(A3,HIGH);
delay(500);
digitalWrite(A3,LOW);
delay(500);
}
}
if (produto ==3 && digitalRead(7)==0){
for(int i=0; i < 6; i++){
digitalWrite(A5,HIGH);
digitalWrite(10,HIGH);
digitalWrite(13,HIGH);
delay(500);
digitalWrite(A5,LOW);
digitalWrite(10,LOW);
digitalWrite(13,LOW);
delay(500);
}
for(int i=0; i < 3; i++){
digitalWrite(A3,HIGH);
delay(500);
digitalWrite(A3,LOW);
delay(500);
}
}
//limita valor máximo
if (produto >= 4){
produto =0;
}
if (produto < 0){
produto =3;
}
//se botao for solto, seta variavel aux novamente
if (digitalRead(8)==HIGH){
rt_BotaoD=1;
}
if (digitalRead(6)==HIGH){
rt_BotaoE=1;
}
}