How to control LED with GUI control & Physical Buttos

Has anyone try building project, with control of both GUI and buttons/sensor at the same time?

I was able to control LED with GUI and it works fine, but when I combine my sketches (sketch controlled with GUI & sketch controlled with physical buttons), the LED stays on right after the combined sketch uploaded.

Here's my code, hope someone could help me.

C# code

private void InitializeSerialPort() {
            port = new SerialPort();
            port.PortName = "COM3"; // Change to match your Arduino's COM port
            port.BaudRate = 9600;
            try {
                port.Open();
            } catch (Exception ex) {
                MessageBox.Show("Error opening serial port: " + ex.Message);
            }
        }

        private void ToggleAllLEDsButton_Click(object sender, EventArgs e) {
            if (port.IsOpen) {
                port.Write("A");
            }
        }

        private void LED1Button_Click(object sender, EventArgs e) {
            if (port.IsOpen) {
                port.Write("B");
            }
        }

        private void LED2Button_Click(object sender, EventArgs e) {
            if (port.IsOpen) {
                port.Write("C");
            }
        }

        private void LED3Button_Click(object sender, EventArgs e) {
            if (port.IsOpen) {
                port.Write("D");
            }
        }

        private void LED4Button_Click(object sender, EventArgs e) {
            if (port.IsOpen) {
                port.Write("E");
            }
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e) {
            if (port.IsOpen) {
                port.Close();
            }
        }

Arduino combined sketches

void setup() {
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);

  pinMode(buttonA, INPUT);
  pinMode(button1, INPUT);
  pinMode(button2, INPUT);
  pinMode(button3, INPUT);
  pinMode(button4, INPUT);

Serial.begin(9600);
}

void loop() {
// Handle individual LED buttons
  if (stateButton1 == HIGH && !isLED1On) {
    digitalWrite(LED1, HIGH);
    isLED1On = true;
  } else if (stateButton1 == HIGH && isLED1On) {
    digitalWrite(LED1, LOW);
    isLED1On = false;
  }

  if (stateButton2 == HIGH && !isLED2On) {
    digitalWrite(LED2, HIGH);
    isLED2On = true;
  } else if (stateButton2 == HIGH && isLED2On) {
    digitalWrite(LED2, LOW);
    isLED2On = false;
  }

  if (stateButton3 == HIGH && !isLED3On) {
    digitalWrite(LED3, HIGH);
    isLED3On = true;
  } else if (stateButton3 == HIGH && isLED3On) {
    digitalWrite(LED3, LOW);
    isLED3On = false;
  }

  if (stateButton4 == HIGH && !isLED4On) {
    digitalWrite(LED4, HIGH);
    isLED4On = true;
  } else if (stateButton4 == HIGH && isLED4On) {
    digitalWrite(LED4, LOW);
    isLED4On = false;
  }
}

Are you posted a correct code?
I don't see a line in your arduino code where you get commands from your C# GUI?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.