gpt4 book ai didi

c - 在 Arduino 中读取多个字符串

转载 作者:行者123 更新时间:2023-11-30 17:30:57 26 4
gpt4 key购买 nike

我基本上试图通过串行端口读取字符串。我使用“Serial.readstringUntil”语法来读取字符串,然后与一些数据进行比较。我能够成功地做到这一点。现在,在同一个程序中,我想再次读取另一个字符串,然后将其与其他一些数据进行比较。但它失败了,因为比较是在先前加载的字符串之间完成的。可能是什么问题。不是专业人士!对不起。这是代码。

int x;
String str;
String data="on";
String data2="off";
void calfunc();
void setup()
{
Serial.begin(9600);
pinMode(5, OUTPUT);
pinMode(13, OUTPUT);

Serial.println("Enter");


}
void loop()
{
if(Serial.available() > 0)
{
str = Serial.readStringUntil(' ');
//x = Serial.parseInt();
//Serial.println(str);
if(str.equals (data))
{
Serial.println("Access Granted. ");
calfunc();
}
else if(str.equals(data2))
{
digitalWrite(5, HIGH);
digitalWrite(13, HIGH);
Serial.println("Access Denied");
}
}
delay(100);
}

void calfunc(){
digitalWrite(5, LOW);
digitalWrite(13, LOW);


Serial.println("For Temperature press 1");
Serial.println("For Moisture press 2");
delay(100);

char a=Serial.read();
if(a=='1')
{
Serial.println(analogRead(A0));
}
else if(a=='2')
{
Serial.println(analogRead(A1));
}
else
{
Serial.println("Wrong Choice");
delay(500);
return;
}
return;
}

最佳答案

嗨,我注意到您在loop()函数中使用了C“else if”语句,但是您还没有完成else语句

if(boolean_expression 1)
{
/* Executes when the boolean expression 1 is true */
}
else if( boolean_expression 2)
{
/* Executes when the boolean expression 2 is true */
}
else if( boolean_expression 3)
{
/* Executes when the boolean expression 3 is true */
}
else
{
/* executes when the none of the above condition is true */
}

你能试试这个吗,我没有安装Arduino编译器

void loop() 
{
if(Serial.available() > 0)
{
str = Serial.readStringUntil(' ');
//x = Serial.parseInt();
//Serial.println(str);
if(str.equals (data))
{
Serial.println("Access Granted. ");
calfunc();
}

if(str.equals(data2))
{
digitalWrite(5, HIGH);
digitalWrite(13, HIGH);
Serial.println("Access Denied");
}
}
delay(100);
}

关于c - 在 Arduino 中读取多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24849124/

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