#include <Wire.h>
#include <LiquidCrystal_I2C.h>
const int potenciometro = A0;
const int ledprimario = 9;
const int ledsecundario = 3;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
pinMode(ledprimario , OUTPUT);
pinMode(ledsecundario, OUTPUT);
Serial.begin(9600);
lcd.init();
lcd.backlight();
}
void loop() {
int nivel = analogRead(potenciometro);
float porcentagem = nivel * 100.0 / 1023.0; // Converte para %
Serial.print("Nível: ");
Serial.print(nivel);
Serial.print(" -> ");
Serial.print(porcentagem, 1);
Serial.println("%");
// Lógica das cargas
if (nivel > 700) {
digitalWrite(ledprimario , HIGH);
digitalWrite(ledsecundario , HIGH);
} else if(nivel > 400) {
digitalWrite(ledprimario, HIGH);
digitalWrite(ledsecundario, LOW);
} else {
digitalWrite(ledprimario , LOW);
digitalWrite(ledsecundario, LOW);
}
// Atualiza o LCD
lcd.setCursor(0, 0);
lcd.print("Bateria: ");
lcd.print(porcentagem, 0);
lcd.print("% ");
lcd.setCursor(0, 1);
lcd.print("C1:");
lcd.print((nivel > 400) ? "ON " : "OFF");
lcd.print(" C2:");
lcd.print((nivel > 700) ? "ON " : "OFF");
delay(500);
}