#include <Wire.h>
#include <LiquidCrystal_I2C.h>
int angulo = 0;
int val = 0;
int potpin = 34;
LiquidCrystal_I2C lcd(0x27, 16, 2);
int led1 = 18;
int led2 = 19;
#define led3 23
unsigned long tempoAnterior = 0; // Armazena o último tempo em que atualizou
const long intervalo = 100; // Intervalo em milissegundos (1 segundo)
void setup() {
Wire.begin(21, 22); // SDA, SCL - GPIO 21 e 22
lcd.init();
lcd.backlight();
Serial.begin(115200);
lcd.setCursor(0, 0);
lcd.print("RSS");
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop() {
unsigned long tempoAtual = millis();
if (tempoAtual - tempoAnterior >= intervalo) {
tempoAnterior = tempoAtual; // Atualiza o tempo
int pwm = map(val, 0, 4095, 0, 255);
analogWrite(led3, pwm);
val = analogRead(potpin);
lcd.setCursor(0, 1);
lcd.print("pot=");
lcd.print(val);
lcd.print(" "); // Apaga sobras antigas
lcd.setCursor(9, 1);
lcd.print("pwm=");
lcd.print(pwm);
lcd.print(" ");
Serial.println(val);
if (val < 2047) {
digitalWrite(led1, HIGH);
}
else {digitalWrite(led1,LOW);}
if (val > 2047) {
digitalWrite(led2, HIGH);
}
else {digitalWrite(led2,LOW);}
// Controle de brilho com PWM no Arduino
}
}