学习新人,最近在做一个项目,需要先做一些小实验,就是测力,用
labview和arduino配合,结果产生的波形是这个样子的,还有就是串口名称每次都是不一样的(如下图)有时还找不到串口,显示错误,搞了一下午没头绪,有没有大神帮忙解答一下!
arduino程序如下:
#define shenchu 0x01 //伸出推杆命令
#define shouhui 0x02 //收回命令
#include <HX711.h>
byte comdata[3]={0};
HX711 hx(9, 10, 128, 0.013741927);
void receive_data(void);
void test_data(void);
void read_f(void);
double a;
double sum1 = 0;
void setup()
{
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
Serial.begin(9600);
hx.set_offset(15960);
}
void loop()
{
read_f();
while (Serial.available() > 0) //不断检测串口是否有数据
{
receive_data(); //接受串口数据
test_data();
}
}
void read_f(void)
{
//delay(100);
for (int i = 0; i < 10; i++)
{
sum1 += hx.bias_read();
}
a = sum1/10/1000*9.8;
Serial.println(a);
}
void receive_data(void)
{
int j ;
for(j=0;j<3;j++)
{
comdata[j] =Serial.read();
//延时一会,让串口缓存准备好下一个字节,不延时可能会导致数据丢失,
delay(2);
}
}
void test_data(void) //验证命令的正确性
{
if(comdata[0] == 0x11) //0x11和0x22均为判断是否为有效命令
{
if(comdata[1] == 0x22)
{
switch(comdata[2])
{
case shenchu:
{
delay(100);
}
case shouhui:
{
delay(100);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,1);
}
}
}
}
}
-
-
安了
一周热门 更多>