// Breno Correia Lociks
// Exercício 3
#include <LiquidCrystal_I2C.h>
#define pot 34
#define led1 16
#define led2 17
#define LED_BUILTIN 2
LiquidCrystal_I2C lcd(0x27, 16, 2);
int tempoAnterior = 0;
void setup() {
lcd.init();
lcd.setBacklight(HIGH);
lcd.setCursor(0, 0);
lcd.print("Pot = ");
lcd.setCursor(0, 1);
lcd.print("PotMap = ");
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
int potLeitura = analogRead(pot);
int potMap = map(potLeitura, 0, 4095, 0, 100);
lcd.setCursor(6, 0);
lcd.print(potLeitura);
if(potLeitura < 1000) {
lcd.setCursor(9, 0);
lcd.print(" ");
}
if(potLeitura < 100) {
lcd.setCursor(8, 0);
lcd.print(" ");
}
if(potLeitura < 10) {
lcd.setCursor(7, 0);
lcd.print(" ");
}
lcd.setCursor(9, 1);
lcd.print(potMap);
lcd.print(" ");
lcd.print("%");
if(potMap < 100) {
lcd.setCursor(13, 1);
lcd.print(" ");
}
if(potMap < 10) {
lcd.setCursor(12, 1);
lcd.print(" ");
}
if(potMap < 50) {
digitalWrite(led1, HIGH);
}
else {
digitalWrite(led1, LOW);
}
if(potMap > 50) {
digitalWrite(led2, HIGH);
}
else {
digitalWrite(led2, LOW);
}
if(potMap > 25 && potMap < 75) {
if(millis() - tempoAnterior > 1000){
tempoAnterior = millis();
if(LED_BUILTIN == HIGH) {
digitalWrite(LED_BUILTIN, LOW);
}
else if(LED_BUILTIN == LOW) {
digitalWrite(LED_BUILTIN, HIGH);
}
}
}
}