我正在为Scilab(类似于MATLAB的软件)模拟环境工作一个图形块。应该有称为AI(模拟输入),AO,DO的块。此外,将有两个程序:1)在Scilab一侧,一个发送和接收数据; 2)在Arduino一侧,发送和接收数据。
现在我正在研究Arduino端代码。代码应该从6个输入读取电压值,并通过串行将它们发送到Scilab,并在从Scilab获取数据时同时将1/0写入其输出。根据我的理解,发送/接收的数据应该包含有关引脚号的信息(知道它应该影响什么引脚)和值本身。此外,它应该同时读取和接收。
我有什么想法可以做到吗?非常感谢帮助。谢谢。
答案 0 :(得分:1)
您可以使用timer interrupt读取值并通过串行发送它们并照常处理来自loop()
中Scilab的命令。
我不能100%确定在Serial.read()
期间是否可能出现问题。在这种情况下,您可能必须在读取请求时禁用中断(在Serial.available()
之前检查是否有要阅读的内容)。