gpt4 book ai didi

c - 将 Led 重置为 LOW 形式 Visual Studio 到 arduino

转载 作者:行者123 更新时间:2023-11-30 16:11:00 24 4
gpt4 key购买 nike

我希望能够使用 arduino 的按钮打开红色 LED,并能够使用 Visual Studio 中的重置按钮重置它。问题是它要么继续运行并且无法通过重置按钮关闭,要么关闭并且如果不重新启动程序就无法再次打开。我会定价所有帮助。

LED 的 arduino 代码。

    void setup() {
Serial.begin(9600);
pinMode(BUTTON_SWITCH, INPUT_PULLUP);
pinMode(BUTTON_ALARM, INPUT_PULLUP);
pinMode(RED_LED, OUTPUT);

}

if (digitalRead(BUTTON_ALARM) == LOW) {
displayAlarm();
}

void displayAlarm() {
digitalWrite(RED_LED, HIGH);
tone(BUZZER, 1500, 700);
if (Serial.available()) {
// Read entire buffer up to newline character
// Since on the C# side, serialPort1.WriteLine appends a newline character
String respond = Serial.readStringUntil('\n');
if (respond == "RESET") {
digitalWrite(RED_LED, LOW);
digitalWrite(BUZZER, LOW);
}
}

重置按钮中的 Visual Studio 代码。

 private void Button1_Click(object sender, EventArgs e)
{

serialPort1.WriteLine("RESET");


}

最佳答案

您已经创建了一个float变量respond。这是一个数值而不是字符串,但“RESET”是一个字符串,您无法真正将数字与字符串进行比较。您需要将 respond 设为 String 并使用 readStringUntil() 读取整行。 :


void setup()
{
Serial.begin(9600);
pinMode(BUTTON_SWITCH, INPUT_PULLUP);
pinMode(BUTTON_ALARM, INPUT_PULLUP);
pinMode(RED_LED, OUTPUT);
}

void loop()
{
// If BUTTON_ALARM pressed, enable alarm
if (digitalRead(BUTTON_ALARM) == LOW) {
displayAlarm();
}

// Check if there is data in the serial port input buffer
// If there is and it is "RESET", disable the alarm
if (Serial.available()) {
// Read entire buffer up to newline character
// Since on the C# side, serialPort1.WriteLine appends a newline character
String respond =Serial.readStringUntil('\n');
if (respond == "RESET") {
digitalWrite(RED_LED, LOW);
digitalWrite(BUZZER, LOW);
}
}
}

void displayAlarm()
{
digitalWrite(RED_LED, HIGH);
tone(BUZZER, 1500, 700);
}

默认情况下,WriteLine 会附加换行符。确保您没有修改它。请参阅:SerialPort.NewLine Property

关于c - 将 Led 重置为 LOW 形式 Visual Studio 到 arduino,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58748957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com