#include <SoftwareSerial.h> // Inclui a biblioteca para comunicação serial via software
#include <LiquidCrystal.h> // Inclui a biblioteca para controle de display LCD
// Definição dos pinos de conexão do display LCD
const int rs = 6, en = 7, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); // Criação do objeto lcd com os pinos definidos
// Definição dos pinos para os switches (interruptores) e LEDs
int SW1 = 8;
int SW2 = 9;
int state1 = 0; // Variável para armazenar o estado do interruptor 1
int state2 = 0; // Variável para armazenar o estado do interruptor 2
int LED1 = 10; // Pino do LED 1
int LED2 = 11; // Pino do LED 2
void setup() {
// Configuração dos pinos como entrada ou saída
pinMode(10, OUTPUT); // Define o pino 10 como saída (LED1)
pinMode(11, OUTPUT); // Define o pino 11 como saída (LED2)
pinMode(8, INPUT); // Define o pino 8 como entrada (SW1)
pinMode(9, INPUT); // Define o pino 9 como entrada (SW2)
// Inicialização do display LCD com 16 colunas e 2 linhas
lcd.begin(16, 2);
lcd.print("PAGAMENTO RFID"); // Exibe a mensagem "PAGAMENTO RFID" no display
delay(5000); // Aguarda 5 segundos
lcd.clear(); // Limpa o display
}
void loop() {
// Leitura do estado do interruptor 1
state1 = digitalRead(8);
if (state1 == HIGH) {
// Se o interruptor 1 estiver pressionado
lcd.begin(16, 2); // Inicializa o display LCD novamente
lcd.print("Valor em Kwh Pago"); // Exibe a mensagem "Valor em Kwh Pago"
delay(5000); // Aguarda 5 segundos
lcd.clear(); // Limpa o display
digitalWrite(10, HIGH); // Acende o LED 1
} else {
digitalWrite(10, LOW); // Apaga o LED 1
}
// Leitura do estado do interruptor 2
state2 = digitalRead(9);
if (state2 == HIGH) {
// Se o interruptor 2 estiver pressionado
lcd.begin(16, 2); // Inicializa o display LCD novamente
lcd.print("Nao Pago, sem saldo"); // Exibe a mensagem "Nao Pago, sem saldo"
delay(5000); // Aguarda 5 segundos
lcd.clear(); // Limpa o display
digitalWrite(11, HIGH); // Acende o LED 2
} else {
digitalWrite(11, LOW); // Apaga o LED 2
}
}