//----------BIBLIOTECAS-----------
#include <LiquidCrystal_I2C.h>
#include <ESP32Servo.h>
#include <Button.h>
//---------DEFINICOES----------
#define pinPotenciometro 4
#define pinServo 2
#define pinBotao 14
#define led 12
//---------INSTANCIAS----------
LiquidCrystal_I2C lcd(0x27, 20, 4);
Servo servoMotor;
Button Botao(pinBotao);
//---------VARIAVEIS----------
int leituraAnalogica = 0;
int angulo = 0;
unsigned long tempoatual = 0;
unsigned long tempoanterior = 0;
bool ativacao = 1;
//------------------------------
void setup() {
Serial.begin(115200);
lcd.init(); // inicia o display
servoMotor.attach(pinServo); // Inicia o servo no pino pinServo
lcd.backlight(); // acender a tela no fundo
lcd.print("Hello, world!"); // escreve o texto
lcd.setCursor(0, 1); //primeira coluna da linha
lcd.print("corinthians");
pinMode(led, OUTPUT);
pinMode(pinBotao, INPUT_PULLUP);
Botao.begin();
}
void loop() {
leituraAnalogica = analogRead(pinPotenciometro);
angulo = leituraAnalogica * 180 / 4095;
servoMotor.write(angulo);
lcd.setCursor(0, 2); // indica escrever na primeira casa da 3 linha da tela
lcd.print(angulo); // printar o valor recebido do potenciometro
lcd.print(char(223));
lcd.print(" "); // serve para apagar a ultima casa decimal e nao bugar o codigo
delay(10);
if (Botao.pressed())
ativacao = !ativacao;
if (ativacao)
{
digitalWrite(led, HIGH);
lcd.setCursor(0, 3);
lcd.print("LED LIGADO ");
}
else
{
digitalWrite(led, LOW);
lcd.setCursor(0, 3);
lcd.print("LED DESLIGADO");
}
}