数字和模拟读取来自Labview上的arduino

时间:2017-05-19 04:50:14

标签: arduino labview

我正试图在Labview上可视化温度并绘制arduino的电压模拟读数,但是一段时间之后,请购单和波形图减慢了。我正在使用DS18B20传感器,这是我在arduino上的代码:

#include <OneWire.h>
#include <DallasTemperature.h>
#define Pin 2                      
OneWire ourWire(Pin);                
DallasTemperature sensors(&ourWire); 

void setup() {
delay(1000);
Serial.begin(9600);
sensors.begin();                    
}

void loop() {
sensors.requestTemperatures();       
int sensorValue = analogRead(A0);  
float voltage = sensorValue * (5.0 / 1023.0);
Serial.println(sensors.getTempCByIndex(0)); 
Serial.print(",");
Serial.println(voltage);
delay(100);                        
}

注意:我将arduino的数据发送到同一行,但以逗号enter image description here分隔

我做错了什么?或者我如何才能使波形图更快?

1 个答案:

答案 0 :(得分:1)

您可以更改一些内容以改善效果,所有内容都在下面的红框中:

  1. 将while循环中的VISA Configure Serial Port.vi 移到之外。您只需在打开端口后配置一次端口,而不是每次读取端口。
  2. 调整read timeout
  3. 确认您的VI和Arduino程序使用相同的termination character
  4. 现在,您的Arduino程序会为每个传感器读取发送两个终止字符,但您的VI期望只有一个。

    每次拨打Serial.println()都会发送CRLF character sequence

    Serial.println(sensors.getTempCByIndex(0)); // EOL here
    Serial.print(",");
    Serial.println(voltage);                    // EOL here
    

    VI更新

    enter image description here