// Just a simple slide-switch demo
int laststate1;
int currentstate1;
int laststate2;
int currentstate2;
int laststate3;
int currentstate3;
int laststate4;
int currentstate4;
float voltage1;
float pressure_sensor_1;
#define switch1 2
#define switch2 6
#define switch3 17
#define switch4 20
#define IG1 3
#define IG2 4
#define IG3 5
#define IG4 14
#define IG5 15
#define IG6 16
#define IG7 8
#define spark 7
#define press_data 21
#define solenoid_v1 18
#define solenoid_v2 19
#define solenoid_v3 9
void setup() {
pinMode(IG1, OUTPUT);
pinMode(IG2, OUTPUT);
pinMode(IG3, OUTPUT);
pinMode(IG4, OUTPUT);
pinMode(IG5, OUTPUT);
pinMode(IG6, OUTPUT);
pinMode(spark, OUTPUT);
pinMode(solenoid_v1, OUTPUT);
pinMode(solenoid_v2, OUTPUT);
pinMode(solenoid_v3, OUTPUT);
pinMode(switch1, INPUT_PULLUP);
pinMode(switch2, INPUT_PULLUP);
pinMode(switch3, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
// switch 1 for solenoids
laststate1 = currentstate1;
currentstate1 = digitalRead(switch1);
if (currentstate1 == HIGH && laststate1 == LOW )
{
loop1();
}
//-----------------
// switch 2 for ignitors
laststate2 = currentstate2;
currentstate2 = digitalRead(switch2);
if (currentstate2 == HIGH && laststate2 == LOW )
{
loop2();
}
//-------------------
laststate3 = currentstate3;
currentstate3 = digitalRead(switch3);
if (currentstate3 == HIGH && laststate3 == LOW )
{
loop3();
}
//----------
currentstate4= digitalRead(switch4);
if (currentstate4 == HIGH )
{
loop4();
}
}
void loop1()
{
digitalWrite(solenoid_v1,HIGH);
digitalWrite(solenoid_v2,HIGH);
delay(500);
digitalWrite(IG1,HIGH);
digitalWrite(IG2,HIGH);
digitalWrite(IG3,HIGH);
digitalWrite(IG4, HIGH);
digitalWrite(IG5, HIGH);
digitalWrite(IG6, HIGH);
delay(100);
digitalWrite(IG4, LOW);
digitalWrite(IG5, LOW);
digitalWrite(IG6, LOW);
delay(100);
digitalWrite(IG4, HIGH);
digitalWrite(IG5, HIGH);
digitalWrite(IG6, HIGH);
delay(100);
digitalWrite(IG4, LOW);
digitalWrite(IG5, LOW);
digitalWrite(IG6, LOW);
delay(100);
delay(1);
digitalWrite(IG1, LOW);
digitalWrite(IG2, LOW);
digitalWrite(IG3, LOW);
delay(50);
digitalWrite(solenoid_v1,LOW);
digitalWrite(solenoid_v2,LOW);
}
void loop2()
{
digitalWrite(spark,HIGH);
delay(100);
digitalWrite(spark,LOW);
}
void loop3()
{
digitalWrite(solenoid_v3,HIGH);
delay(100);//once the valve is turned on after how much time the injector should turn on
digitalWrite(IG7,HIGH);
delay(500);//on time of injector
digitalWrite(IG7,LOW);
delay(50);//once the injector is turned off after how much time the valve should turn off
digitalWrite(solenoid_v3,LOW);
}
void loop4()
{
//Analog data
pressure_sensor_1 = analogRead(A0);
voltage1 = pressure_sensor_1 * (5.0 / 1023.0);
int pressure1 = map(voltage1, 0, 1024, 0, 60);
Serial.print(pressure1);
Serial.println(" bar");
delay(50);
}