int cutoff=90; // Set Engine Cutoff time (If you're using relay, do not set timing under 40ms)
int dly=50; // Set Delay time before next Upshift
int i;
const int MIN_CUTOFF = 60;
const int MAX_CUTOFF = 110;
void setup() {
pinMode(2, INPUT_PULLUP); // Sensor pin
pinMode(5, OUTPUT); // Relay Pin
pinMode(6, OUTPUT); // LED pin
pinMode(3, INPUT); //Increase cutoff time +
pinMode(4, INPUT); //Decrease cutoff time -
digitalWrite(5, LOW); // Set Relay on low State
digitalWrite(6, HIGH); // Turn on LED
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
}
void loop()
{
int snsrstate=digitalRead(2);
int Increase=digitalRead(3);
int Decrease=digitalRead(4);
//================================
if (Increase == LOW && Decrease != LOW)
{
if (cutoff + 10 <= MAX_CUTOFF)
{
cutoff += 10;
}
else
{
cutoff = MAX_CUTOFF;
}
} else if (Decrease == LOW && Increase != LOW)
{
if (cutoff - 10 >= MIN_CUTOFF)
{
cutoff -= 10;
}
else
{
cutoff = MIN_CUTOFF;
}
}
//===============================
if (snsrstate==HIGH)
{
i=0;
delay(50);
}
if (snsrstate==LOW && i==0)
{
i+=1;
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
delay(cutoff);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
delay(dly);
}
}