热度 4
2022-5-20 16:01
2860 次阅读|
0 个评论
接着昨天的第二个实验, 程序已经上传到面包板社区了 (昨天真是忘了面包板就可以分享了),注意这个链接里的文件不全,面包板不可以更新上传文件,我又重新单独上传了每天的程序。 Arduino程序以“55”为帧头以便于上位机区分当前接收到的数据为采集的电压值,这里要注意Arduino UNO的AD采样范围是5v以内。 int sensorValue=0; // 定义变量,用于存放AD转换的数字量 float float_sensorValue; // 定义变量,用于存放浮点型电压值 void setup() { // put your setup code here, to run once: Serial.begin(9600); // 定义串口波特率为9600 } void loop() { // put your main code here, to run repeatedly: sensorValue = analogRead(A0); // 读取模拟口A0的数字量 float_sensorValue=(float)sensorValue/1023*5.00; // 将数字量换算为浮点电压值 Serial.print("55"); // 发送帧头,表示此帧为有效帧 Serial.print(float_sensorValue,2); // 保留两位小数发送数据 delay(1000); // 一秒刷新一次 } LabVIEW上位机软件负责接收Arduino Uno控制板发送来的电压数据,并将其显示在前面板上,如图3-90所示。 LabVIEW程序框图如图3-91和图3-92所示。首先,从串口缓冲区读取2个字节的数据,然后判断是否为所设置的帧头,若为所设置的帧头,则从串口缓冲区中读取4个字节,最后将字符串转换为数值,将所测量的电压显示在仪表盘上。 这里需要提醒一下,如果用的是国产的Arduino板子,可能串口芯片用的也是国产的,通常可能是CH340,别忘了装驱动,驱动网上一搜一大把这里就不放了。 最后这个程序的测试直接把板子上的3.3v、5v接到A0口即可验证程序的功能。