我通过HX711模块(选择转换频率为80Hz)将压力传感器(500kg)与Arduino 2560连接起来,想要做一个压力数据的采集,同时将采集到的压力数据存储到SD卡中。
代码如下:
/*型号(mega2560)
功能:采集并存储压力数据
创建:0803
修改:0824
正在使用的版本*/
#include <HX711.h> //压力传感器AD转换芯片的库文件
#include<SD.h>
const intbutton=6; //开关,控制程序执行
const int SD_cs=15; //15号引脚为SD卡使能引脚
unsigned longrun_time0; //采集压力与之对应的时间
HX711 hx(9, 10,128, -0.115); //压力传感器AD转换芯片的库函数调用
void setup()
{
Serial.begin(9600);
pinMode(53,OUTPUT);
pinMode(button,INPUT_PULLUP); //给button加一个上拉电阻
hx.set_offset(-16000); //压力传感器AD转换芯片的库函数调用
Serial.println("安装SD卡");
if(!SD.begin(SD_cs))
{
Serial.println("安装失败!");
return;
}
Serial.println("安装完成.");*/
}
void loop()
{
while(digitalRead(button)==HIGH){}
run_time0=micros(); //获取程序运行时间,该时间对应压力
double F=0.01*(hx.bias_read())-2; //获取压力
File dataFile=SD.open("data.txt",FILE_WRITE);
if(dataFile)
{
dataFile.print(run_time0);
dataFile.print(",");
dataFile.println(F);
dataFile.close();
}
else
{
Serial.println("ERROR!");
}
}
实验结束后读取存储到SD卡中的压力数据。在EXCEL内分析获取一个压力所需要的时间,如下图所示:

可以看到,获取一个压力数据的间隔大概是14ms。
但是在之后的数据中,也发现也有时间间隔是18ms的。我不是很理解。因为AD转换用时应该都一样的吧?那么获取一个压力数据的间隔应该都是18ms。出现一个可以理解,但接连出现好几个我就有点不理解了。恳请各位大神赐教。不胜感激。



代码如下:
/*型号(mega2560)
功能:采集并存储压力数据
创建:0803
修改:0824
正在使用的版本*/
#include <HX711.h> //压力传感器AD转换芯片的库文件
#include<SD.h>
const intbutton=6; //开关,控制程序执行
const int SD_cs=15; //15号引脚为SD卡使能引脚
unsigned longrun_time0; //采集压力与之对应的时间
HX711 hx(9, 10,128, -0.115); //压力传感器AD转换芯片的库函数调用
void setup()
{
Serial.begin(9600);
pinMode(53,OUTPUT);
pinMode(button,INPUT_PULLUP); //给button加一个上拉电阻
hx.set_offset(-16000); //压力传感器AD转换芯片的库函数调用
Serial.println("安装SD卡");
if(!SD.begin(SD_cs))
{
Serial.println("安装失败!");
return;
}
Serial.println("安装完成.");*/
}
void loop()
{
while(digitalRead(button)==HIGH){}
run_time0=micros(); //获取程序运行时间,该时间对应压力
double F=0.01*(hx.bias_read())-2; //获取压力
File dataFile=SD.open("data.txt",FILE_WRITE);
if(dataFile)
{
dataFile.print(run_time0);
dataFile.print(",");
dataFile.println(F);
dataFile.close();
}
else
{
Serial.println("ERROR!");
}
}
实验结束后读取存储到SD卡中的压力数据。在EXCEL内分析获取一个压力所需要的时间,如下图所示:

可以看到,获取一个压力数据的间隔大概是14ms。
但是在之后的数据中,也发现也有时间间隔是18ms的。我不是很理解。因为AD转换用时应该都一样的吧?那么获取一个压力数据的间隔应该都是18ms。出现一个可以理解,但接连出现好几个我就有点不理解了。恳请各位大神赐教。不胜感激。



