#define segA 14
#define segB 27
#define segC 26
#define segD 25
#define segE 33
#define segF 32
#define segG 12
uint8_t numeros [10]
{
0b01111110, // 0
0b00110000, // 1
0b01101101, // 2
0b01111001, // 3
0b00110011, // 4
0b01011011, // 5
0b00011111, // 6
0b01110010, // 7
0b01111111, // 8
0b01110011 // 9
};
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int led = 5;
int pot = 34;
int bverde = 4;
int bverme = 2;
bool leituraentrada = 0;
bool leiturasaida = 0;
uint8_t contador = 0;
String setpoint = "";
int sp = 0;
void setup()
{
pinMode(led, OUTPUT);
pinMode(bverde, INPUT_PULLUP);
pinMode(bverme, INPUT_PULLUP);
pinMode(segA , OUTPUT);
pinMode(segB , OUTPUT);
pinMode(segC , OUTPUT);
pinMode(segD , OUTPUT);
pinMode(segE , OUTPUT);
pinMode(segF , OUTPUT);
pinMode(segG , OUTPUT);
Serial.begin(115200);
Serial.println("ESP32");
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print ("SENAI CFP 1.01");
lcd.setCursor(0,1);
lcd.print("TEC.MECATRONICA");
delay(1000);
lcd.clear();
}
void loop()
{
leituraentrada = digitalRead(bverde);
leiturasaida = digitalRead(bverme);
digitalWrite(segA, numeros[contador] & 0b01000000);
digitalWrite(segB, numeros[contador] & 0b00100000);
digitalWrite(segC, numeros[contador] & 0b00010000);
digitalWrite(segD, numeros[contador] & 0b00001000);
digitalWrite(segE, numeros[contador] & 0b00000100);
digitalWrite(segF, numeros[contador] & 0b00000010);
digitalWrite(segG, numeros[contador] & 0b00000001);
if (leituraentrada == LOW)
{
delay(500);
contador++;
Serial.println(contador);
}
else if (leiturasaida == LOW)
{
delay(500);
contador--;
Serial.println(contador);
}
int PotValue = analogRead(pot);
float nivel= map(PotValue, 0, 4095, 0, 100);
Serial.println(nivel);
delay(100);
switch(contador)
{
case 0:
setpoint = "00%";
sp = 00;
break;
case 1:
setpoint = "10%";
sp = 10;
break;
case 2:
setpoint = "20%";
sp = 20;
break;
case 3:
setpoint = "30%";
sp = 30;
break;
case 4:
setpoint = "40%";
sp = 40;
break;
case 5:
setpoint = "50%";
sp = 50;
break;
case 6:
setpoint = "60%";
sp = 60;
break;
case 7:
setpoint = "70%";
sp = 70;
break;
case 8:
setpoint = "80%";
sp = 80;
break;
case 9:
setpoint = "90%";
sp = 90;
break;
}
if (nivel < sp)
{
digitalWrite(led, HIGH);
}
else
{
digitalWrite(led, LOW);
}
lcd.setCursor(0,0);
lcd.print("SETPOINT: ");
lcd.print(setpoint);
lcd.setCursor(0,1);
lcd.print("NIVEL: ");
lcd.print(nivel);
}
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4