// Exercício 3 (28/04)
// Isadora Aparecida Zani
/*
Conecte outro LED ao CKT anterior.
Esse LED deve ter seu brilho controlado pelo POT;
No LCD, também deve ser mostrado o valor PWM.
*/
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int POT = 0;
int luminosidade = 0;
#define LED1 19
#define LED2 18
#define LED3 15
unsigned long previousMillis = 0;
const long interval = 500; // intervalo de 500 ms
bool mostrarPOT = true;
void setup() {
lcd.init();
lcd.backlight();
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
}
void loop() {
int POT = analogRead(13);
luminosidade = map(POT, 0, 4095, 0, 255);
if (POT <= 2047) {
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
} else {
digitalWrite(LED2, HIGH);
digitalWrite(LED1, LOW);
}
analogWrite(LED3, luminosidade);
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
lcd.clear();
if (mostrarPOT) {
lcd.setCursor(5, 0);
lcd.print(" IAVZ");
lcd.setCursor(0, 1);
lcd.print("Valor POT = ");
lcd.print(POT);
} else {
lcd.setCursor(0, 0);
lcd.print("Valor PWM: ");
lcd.print(luminosidade);
}
mostrarPOT = !mostrarPOT; // alterna entre mostrar POT e PWM
}
}