#include<SPI.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27,16,2);
//using ESP32_devkit_C4
#define TSAL 23
#define RTDS 19
#define REV_L 18
#define CONTACTOR 4
#define KLSWCH 34
#define ACCELERATOR 26
#define BRAKE 35
#define FORWARD 32
#define REVERSE 33
#define PARKING 25
// #define SLEDGEPOOL
// #define ACCELERATION
// #define ENDURANCE
// #define LV
void setup()
{
Serial.begin(9600);
LCD.init();
LCD.backlight();
LCD.setCursor(0,0);
LCD.print("WELCOME");
delay(1000);
LCD.clear();
LCD.setCursor(0,0);
LCD.print("Start sequence");
delay(2000);
LCD.clear();
// settting up the pin layout
// RELAY OUTPUTS
pinMode(TSAL,OUTPUT);
digitalWrite(TSAL, LOW);
pinMode(RTDS,OUTPUT);
digitalWrite(RTDS, LOW);
pinMode(REV_L, OUTPUT);
digitalWrite(REV_L, LOW);
pinMode(CONTACTOR, OUTPUT);
digitalWrite(CONTACTOR, LOW);
//Swithces Input
pinMode(KLSWCH, INPUT);
pinMode(BRAKE, INPUT);
pinMode(PARKING, INPUT);
pinMode(FORWARD, INPUT);
pinMode(REVERSE, INPUT);
pinMode(ACCELERATOR, INPUT);
}
void loop()
{
int KS=digitalRead(KLSWCH);
int BRK=digitalRead(BRAKE);
int PARK=digitalRead(PARKING);
int ACC=digitalRead(ACCELERATOR);
int FOR=digitalRead(FORWARD);
int REV=digitalRead(REVERSE);
do{
LCD.setCursor(0,0);
LCD.print("KS OFF");
delay(500);
LCD.clear();
/*
#define KLSWCH 34
#define ACCELERATOR 26
#define BRAKE 35
#define FORWARD 32
#define REVERSE 33
#define PARKING 25*/
if (BRK == LOW && PARK == LOW && ACC == HIGH && FOR == HIGH && REV == HIGH)
{ LCD.setCursor(0,0);
LCD.print("Contactor ON");
digitalWrite(CONTACTOR, HIGH);
digitalWrite(RTDS, HIGH);
digitalWrite(TSAL, HIGH);
delay(1000);
LCD.clear();
}
else
{ LCD.setCursor(0,0);
LCD.print("Start_again");
delay(1000);
LCD.clear();
}
}while(KS!=LOW);
}