// //#define buttonAPin 10
// #define buttonBPin 11
// #define buttonCPin 12
// #define led5Pin 13
// #define led6Pin 14
// bool led5Off = true;
// bool led6Off = true;
// void setup() {
// // put your setup code here, to run once:
// Serial.begin(115200);
// //pinMode(buttonAPin, INPUT);
// pinMode(buttonBPin, INPUT);
// pinMode(buttonCPin, INPUT);
// pinMode(led5Pin, OUTPUT);
// pinMode(led6Pin, OUTPUT);
// }
// void loop(){
// // put your main code here, to run repeatedly:
// //int ButtonAState = digitalRead(buttonAPin);
// int ButtonBState = digitalRead(buttonBPin);
// int ButtonCState = digitalRead(buttonCPin);
// // if(ButtonAState == HIGH && (ButtonBState == HIGH||ButtonBState == LOW) && ButtonCState == LOW && led5Off && led6Off)
// if(ButtonBState == HIGH && ButtonCState == LOW && led5Off && led6Off)
// {
// digitalWrite(led5Pin, HIGH);
// digitalWrite(led6Pin, LOW);
// led5Off = false;
// led6Off = true;
// Serial.println("SB Start");
// }
// // if(ButtonAState == LOW && ButtonBState == LOW && ButtonCState == LOW && !led5Off && led6Off)
// if(ButtonBState == LOW && ButtonCState == LOW && !led5Off && led6Off)
// {
// Serial.println("SB");
// digitalWrite(led5Pin, HIGH);
// digitalWrite(led6Pin, LOW);
// led5Off = false;
// led6Off = true;
// }
// // if(ButtonAState == LOW && ButtonBState == LOW && ButtonCState == HIGH && !led5Off && led6Off)
// if(ButtonBState == LOW && ButtonCState == HIGH && !led5Off && led6Off)
// {
// digitalWrite(led5Pin, LOW);
// digitalWrite(led6Pin, HIGH);
// led5Off = true;
// led6Off = false;
// Serial.println("Stop");
// }
// // if(ButtonAState == LOW && ButtonBState == LOW && ButtonCState == LOW && led5Off && !led6Off)
// if(ButtonBState == LOW && ButtonCState == LOW && led5Off && !led6Off)
// {
// digitalWrite(led5Pin, LOW);
// digitalWrite(led6Pin, HIGH);
// led5Off = true;
// led6Off = false;
// Serial.println("Back");
// }
// // if(ButtonAState == LOW && ButtonBState == HIGH && ButtonCState == LOW && led5Off && !led6Off)
// if(ButtonBState == HIGH && ButtonCState == LOW && led5Off && !led6Off)
// {
// Serial.println("FullStop");
// digitalWrite(led5Pin, LOW);
// digitalWrite(led6Pin, LOW);
// led5Off = true;
// led6Off = true;
// }
// delay(10); // this speeds up the simulation
// }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define buttonBPin 11
#define buttonCPin 12
#define led5Pin 13
#define led6Pin 14
bool led5Off = true;
bool led6Off = true;
// Action flags to ensure one-time execution
bool actionStartTriggered = false;
bool actionSBTriggered = false;
bool actionStopTriggered = false;
bool actionBackTriggered = false;
bool actionFullStopTriggered = false;
void setup() {
Serial.begin(115200);
pinMode(buttonBPin, INPUT);
pinMode(buttonCPin, INPUT);
pinMode(led5Pin, OUTPUT);
pinMode(led6Pin, OUTPUT);
}
void loop() {
int ButtonBState = digitalRead(buttonBPin);
int ButtonCState = digitalRead(buttonCPin);
// SB Start
if (ButtonBState == HIGH && ButtonCState == LOW && led5Off && led6Off && !actionStartTriggered) {
digitalWrite(led5Pin, HIGH);
digitalWrite(led6Pin, LOW);
led5Off = false;
led6Off = true;
actionStartTriggered = true;
Serial.println("SB Start");
}
// SB
if (ButtonBState == LOW && ButtonCState == LOW && !led5Off && led6Off && !actionSBTriggered) {
digitalWrite(led5Pin, HIGH);
digitalWrite(led6Pin, LOW);
led5Off = false;
led6Off = true;
actionSBTriggered = true;
Serial.println("SB");
}
// Stop
if (ButtonBState == LOW && ButtonCState == HIGH && !led5Off && led6Off && !actionStopTriggered) {
digitalWrite(led5Pin, LOW);
digitalWrite(led6Pin, HIGH);
led5Off = true;
led6Off = false;
actionStopTriggered = true;
Serial.println("Stop");
}
// Back
if (ButtonBState == LOW && ButtonCState == LOW && led5Off && !led6Off && !actionBackTriggered) {
digitalWrite(led5Pin, LOW);
digitalWrite(led6Pin, HIGH);
led5Off = true;
led6Off = false;
actionBackTriggered = true;
Serial.println("Back");
}
// FullStop
if (ButtonBState == HIGH && ButtonCState == LOW && led5Off && !led6Off && !actionFullStopTriggered) {
digitalWrite(led5Pin, LOW);
digitalWrite(led6Pin, LOW);
led5Off = true;
led6Off = true;
actionFullStopTriggered = true;
Serial.println("FullStop");
}
// Reset all triggers when buttons change state
if (ButtonBState == LOW && ButtonCState == LOW) {
actionStartTriggered = false;
actionSBTriggered = false;
actionStopTriggered = false;
actionBackTriggered = false;
actionFullStopTriggered = false;
}
delay(10); // Small delay to stabilize loop
}
Loading
esp32-s2-devkitm-1
esp32-s2-devkitm-1