#include <LiquidCrystal_I2C.h>
#include <ESP32Servo.h>
#include <Button.h>
//********DEFINIÇÕES***********
#define pinPotenciometro 4
#define pinServo 2
#define pinBotao 0
#define pinLed 16
//*******INSTANCIAS***********
LiquidCrystal_I2C lcd(0x27,20,4);
Servo servoMotor;
Button botaoLed(pinBotao);
//*******VARIAVEIS*********
int leituraAnalogica = 0;
int angulo = 0;
bool statusLed = 0;
void setup() {
Serial.begin(115200);
lcd.init(); //Inicia o display
servoMotor.attach(pinServo); //Inicia o servo no pino pinServo
botaoLed.begin();
pinMode(pinLed, OUTPUT);
lcd.backlight(); //liga a luz de fundo
lcd.print("Ola, MUNDO!!!!"); //escreve um texto
lcd.setCursor(0,1); //primeira coluna(0) da segunda linha(1)
lcd.print("Thiago Oliveira");
}
void loop() {
leituraAnalogica = analogRead(pinPotenciometro);
angulo = leituraAnalogica * 180 / 4095;
servoMotor.write(angulo);
lcd.setCursor(0,2);
lcd.print(angulo);
lcd.print(char(223));
lcd.print(" ");
if(botaoLed.pressed()) statusLed = !statusLed;
digitalWrite(pinLed, statusLed);
if(statusLed)
{
lcd.setCursor(0,3);
lcd.print("LED LIGADO ");
}
else{
lcd.setCursor(0,3);
lcd.print("LED DESLIGADO");
}
delay(10); // this speeds up the simulation
}