0

试图用我手机中的一些数据编写一个 arduino 代码。当我从我使用 mit 应用程序发明者构建的手机应用程序发送我的 4 个整数时,程序将初始化。这些数字通过 hc-06 模块接收。 从 appinventor 发送块

我需要稍后在代码中使用这 4 个数字。当我使用 serial.read() 函数时,我能够在串行监视器中打印出所有 4 个值。

if(Serial.available() > 0)   {
Incoming_value = Serial.read(); 
Serial.println(Incoming_value);}}

在这种情况下,数字会打印在串行监视器中,但 Incoming_value 仅存储最后一个值,以便稍后在代码中使用。但是,为了能够稍后在代码中使用 4 个不同的值,我需要将它们存储在 4 个不同的变量中。我尝试使用带有数组的不同循环来将数字存储在不同的变量中,但是它们总是采用最后收到的数字的形式。

我还尝试使用 Serial.parseInt() 函数存储数据,如下所示:

  int InNumbers[] = {1,1,1,1};
void setup() {
Serial.begin(9600);
Serial.setTimeout(10000);
}

void loop() {
if (Serial.available()>0){
  delay(2000);
  InNumbers[0] = Serial.parseInt();
  InNumbers[1] = Serial.parseInt();
  InNumbers[2] = Serial.parseInt();
  InNumbers[3] = Serial.parseInt();

Serial.println(InNumbers[3]);
}
}

在这种情况下,除了“0”之外,我什么也得不到,打印出来。

我使用的 parseInt() 函数是错误的,还是有其他聪明的方法可以做到这一点。我需要发送的数字范围从 5 到 100

帮助将不胜感激。

4

0 回答 0