
//2button transmission controller
int button = 2; // Gear 1
int button1 = 4; // Gear 2
int solenoid1 = 10;
int solenoid2 = 11;
int pressCount = 1;
int count = 0;
int buttonstate1=0;
int buttonstate2=0;
void setup(){
pinMode(solenoid1,OUTPUT);
pinMode(solenoid2,OUTPUT);
pinMode(button,INPUT);
pinMode(button1,INPUT);
}
void loop(){
buttonstate1 = digitalRead(button);
buttonstate2 = digitalRead(button1);
if (buttonstate1 == HIGH && pressCount < 4){
pressCount=(count + 1);
}
if(buttonstate2 == HIGH && pressCount > 1){
pressCount=(count - 1);
}
switch(pressCount){
case 1: //FIRST GEAR ON-ON
digitalWrite(solenoid1,HIGH);
digitalWrite(solenoid2,HIGH);
break;
case 2: //SECOND GEAR ON-OFF
digitalWrite(solenoid1,HIGH);
digitalWrite(solenoid2,LOW);
break;
case 3: //THIRD GEAR OFF-OFF
digitalWrite(solenoid1,LOW);
digitalWrite(solenoid2,LOW);
break;
case 4: //OVERDRIVE OFF-ON
digitalWrite(solenoid1,LOW);
digitalWrite(solenoid2,HIGH);
break;
}
}
Code available @ https://github.com/buf0rd/Arduino_stuffs/blob/main/2g_dsm_shift_controller.ino
R&D Monster @work








