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;
}
}