// Inclui bibliotecas:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Definição dos pinos:
#define pot_pin 4
#define led_lj 12
#define led_rs 14
// Define o display I2C como 16x2:
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Variáveis utilizadas:
float pot;
float pot_map;
void setup() {
// Inicializa o display:
lcd.init();
// Inicializa o monitor serial:
Serial.begin(115200);
// Define os pinos dos LEDs como saída:
pinMode(led_lj, OUTPUT);
pinMode(led_rs, OUTPUT);
}
void loop() {
// Leitura e conversão do valor do potenciômetro:
pot = analogRead(pot_pin);
pot_map = map(pot, 0, 4095, 0, 100);
// Mostra no monitor serial o valor mapeado:
Serial.println(pot_map);
// Mostra no display o valor mapeado:
lcd.setBacklight(1);
lcd.setCursor(6,0);
lcd.println(pot_map);
// Liga o LED laranja se pot_map for maior que 50:
if(pot_map < 50){
digitalWrite(led_lj, HIGH);
digitalWrite(led_rs, LOW);
}
// Liga o LED rosa se pot_map for menor que 50:
else if(pot_map > 50){
digitalWrite(led_lj, LOW);
digitalWrite(led_rs, HIGH);
}
// Desliga os dois LEDs se pot_map for igual a 50:
else {
digitalWrite(led_lj, LOW);
digitalWrite(led_rs, LOW);
}
delay(100);
}