试图用我手机中的一些数据编写一个 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
帮助将不胜感激。