i wrote this code to shift my 6 speed and need it to hold onto the last gear selected. the shifter has 6 micro switch to select a gear (1 each)and when shifting from one to a new one there is no switch pressed.
i think a something like ....
int gearnow = 0
int gearnext = 0
not sure how to insert this though
if gearnow=gearnext ()
int gearin1 = A0; // six SHIFT INPUTS LOW/ACTIVCE
int gearin2 = A1;
int gearin3 = A2;
int gearin4 = A3;
int gearin5 = A4;
int gearin6 = A5;
int EDS1= 3; // solenoid outputS
int EDS2= 5;
int EDS3= 6;
int EDS4= 9;
int EDS5= 10;
int MV1 = 2;
void setup()
{
pinMode(gearin1, INPUT_PULLUP); // shift switch inputs
pinMode(gearin2, INPUT_PULLUP);
pinMode(gearin3, INPUT_PULLUP);
pinMode(gearin4, INPUT_PULLUP);
pinMode(gearin5, INPUT_PULLUP);
pinMode(gearin6, INPUT_PULLUP);
pinMode(EDS1, OUTPUT); // solenoid outputs
pinMode(EDS2, OUTPUT);
pinMode(EDS3, OUTPUT);
pinMode(EDS4, OUTPUT);
pinMode(EDS5, OUTPUT);
pinMode(MV1, OUTPUT);
}
void loop(){
// FIRST GEAR
if (digitalRead(gearin1) == LOW &&
digitalRead(gearin2) == HIGH &&
digitalRead(gearin3) == HIGH &&
digitalRead(gearin4) == HIGH &&
digitalRead(gearin5) == HIGH &&
digitalRead(gearin6) == HIGH )
{
analogWrite(EDS1, 240);
analogWrite(EDS2, 240);
analogWrite(EDS3, 0);
analogWrite(EDS4, 0);
analogWrite(EDS5, 0);
digitalWrite( MV1, HIGH);
} // SECOND GEAR
if (digitalRead(gearin1) == HIGH &&
digitalRead(gearin2) == LOW &&
digitalRead(gearin3) == HIGH &&
digitalRead(gearin4) == HIGH &&
digitalRead(gearin5) == HIGH &&
digitalRead(gearin6) == HIGH )
{
analogWrite(EDS1, 240);
analogWrite(EDS2, 240);
analogWrite(EDS3, 240);
analogWrite(EDS4, 240);
analogWrite(EDS5, 0);
digitalWrite( MV1, HIGH);
} // THIRD GEAR
if (digitalRead(gearin1) == HIGH &&
digitalRead(gearin2) == HIGH &&
digitalRead(gearin3) == LOW &&
digitalRead(gearin4) == HIGH &&
digitalRead(gearin5) == HIGH &&
digitalRead(gearin6) == HIGH )
{
analogWrite(EDS1, 0);
analogWrite(EDS2, 0);
analogWrite(EDS3, 0);
analogWrite(EDS4, 240);
analogWrite(EDS5, 0);
digitalWrite( MV1, LOW);
} // FOURTH GEAR
if (digitalRead(gearin1) == HIGH &&
digitalRead(gearin2) == HIGH &&
digitalRead(gearin3) == HIGH &&
digitalRead(gearin4) == LOW &&
digitalRead(gearin5) == HIGH &&
digitalRead(gearin6) == HIGH )
{
analogWrite(EDS1, 240);
analogWrite(EDS2, 240);
analogWrite(EDS3, 0);
analogWrite(EDS4, 0);
analogWrite(EDS5, 0);
digitalWrite( MV1, HIGH);
} // FIFTH GEAR
if (digitalRead(gearin1) == HIGH &&
digitalRead(gearin2) == HIGH &&
digitalRead(gearin3) == HIGH &&
digitalRead(gearin4) == HIGH &&
digitalRead(gearin5) == LOW &&
digitalRead(gearin6) == HIGH )
{
analogWrite(EDS1, 0);
analogWrite(EDS2, 0);
analogWrite(EDS3, 0);
analogWrite(EDS4, 0);
analogWrite(EDS5, 0);
digitalWrite( MV1, HIGH);
} // SIXTH GEAR
if (digitalRead(gearin1) == HIGH &&
digitalRead(gearin2) == HIGH &&
digitalRead(gearin3) == HIGH &&
digitalRead(gearin4) == HIGH &&
digitalRead(gearin5) == HIGH &&
digitalRead(gearin6) == LOW )
{
analogWrite(EDS1, 0);
analogWrite(EDS2, 240);
analogWrite(EDS3, 240);
analogWrite(EDS4, 0);
analogWrite(EDS5, 0);
digitalWrite( MV1, HIGH);
}
}