#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 14, 27, 26, 25);
#define V_memory_count 20
long V[V_memory_count];
long &Mtime = V[1]= 0;
long &TotalRunTime = V[2]= 0;
long &Openhold = V[3]= 0;
long &Shuthold = V[4]= 0;
long &PBopen = V[5]= 0;
long &PBopenl = V[6]= 1;
long &PBshut = V[7]= 0;
long &PBshutl = V[8]= 1;
long &Open_R = V[9]= 0;
long &Shut_R = V[10]= 0;
long &MOpen = V[11] = 24000;
long &MShut = V[12] = 0;
// long Mtime = 0;
// long TotalRunTime = 0;
// long Openhold = 0;
// long Shuthold = 0;
bool PBo = 0;
// bool PBopenl = 0;
// bool PBopen = 0;
bool PBs = 0;
// bool PBshutl = 0;
// bool Open_R = 0;
// bool Shut_R = 0;
//#define PBopen 0
//#define PBshut 1
// functions ============================================V
void openpb() {
PBo = digitalRead(23);
lcd.setCursor(0, 0);
lcd.print(PBopen);
lcd.print(" - ");
lcd.print(PBopenl);
if (PBo == 1)
{
Mtime = Mtime + (millis() - Openhold);
Openhold = millis();
if (PBopen != PBopenl)
{
PBopenl = PBopen;
if (PBopen == 1) {
digitalWrite(17, HIGH);
lcd.setCursor(1, 0);
lcd.print("Open");
}
else
{ digitalWrite(17, LOW);}
lcd.setCursor(1, 0);
lcd.print("Shut");
}
}
else
{
Openhold = millis();
}
}
void shutpb() {
PBs = digitalRead(22);
lcd.setCursor(5, 1);
lcd.print(PBs);
if (PBs == 1)
{
Mtime = Mtime - (millis() - Shuthold);
Shuthold = millis();
if (PBshut != PBshutl)
{Shut_R = PBshut; // set the relay to On
PBshutl = PBshut;
lcd.setCursor(0, 1);
lcd.print("close");
digitalWrite(18, HIGH);
}
}
else
{
digitalWrite(18,LOW);
}
}
// functions ============================================A
void setup() {
// IO intilise=========================================V
pinMode(PBopen, INPUT);
pinMode(PBshut, INPUT);
pinMode(19, OUTPUT);
pinMode(18, OUTPUT);
pinMode(17, OUTPUT);
pinMode(16, OUTPUT);
lcd.begin(20, 4);
// you can now interact with the LCD, e.g.:
// lcd.print("Hello World!");
}
void loop() {
openpb();
//shutpb() ;
lcd.setCursor(0, 3);
lcd.print("Mtime = ");
lcd.print (Mtime);
if(Mtime >= MOpen) {digitalWrite(18, HIGH);}
else
{digitalWrite(18,LOW);}
if (Mtime <= MShut) {digitalWrite(19, HIGH);}
else
{ digitalWrite(19, LOW);}
}
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4