我正在尝试使用arduino微控制器读取 potentionmeter 的数据(尝试了arduino UNO,arduino FIO)并使用串行通信接口将其用于 Simulink (我试过波特费率从57600-921600不等。
这是 Arduino 源代码:
/*
AnalogReadSerial
Reads an analog input on pin 0, prints the result to the serial monitor.
*/
#define ana_pin A0
void setup() {
analogReference(DEFAULT);
Serial.begin(57600);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(ana_pin);
// print out the value you read:
Serial.print(sensorValue);
// delay(500); // delay in between reads for stability
}
我将其与 Tera Term软件连接,并且对应于3 V或0V的值瞬时变化。
然而,当我尝试使用仪器控制工具箱将其与Simulink模型连接时:
当值从3V的ASCII表示变为0V
时,存在10秒滞后块采样时间为0.01
秒,模型配置参数也相应调整(我尝试了1秒钟或更长时间,延迟仍然存在。此外,我能够记录来自另一个传感器和 LPC1768 开发板的数据,没有任何延迟。
我也在Simulink中使用Arduino支持库进行了尝试:
似乎没有收到任何数据,因为您可以从png文件中的Scope1
看到状态信号始终为0
。我还在Simulink中附加了Arduino块的硬件实现属性:
你能帮我理解发生了什么以及如何解决这个问题吗?
答案 0 :(得分:0)
@Patrick Trentin - 当我使用230400,460800和921600的波特率时,我得到4秒的延迟。 对于波特率57600,115200,我得到10秒的延迟。 感谢您指出,我以前没有关注过。 但是,因为我将在一个应用程序中使用传感器,该应用程序每0.01秒准确读取一次。我不认为我能以4秒的延迟工作。