mioyo 发表于 2018-8-28 19:43:55

在使用HX711进行压力测量时遇到的一个问题

本帖最后由 弘毅 于 2018-8-29 11:44 编辑

我通过HX711模块(选择转换频率为80Hz)将压力传感器(500kg)与Arduino 2560连接起来,想要做一个压力数据的采集,同时将采集到的压力数据存储到SD卡中。
代码如下:
/*型号(mega2560)
功能:采集并存储压力数据
创建:0803
修改:0824
正在使用的版本*/
#include <HX711.h>            //压力传感器AD转换芯片的库文件
#include <SD.h>
const int button=6;                //开关,控制程序执行
const int SD_cs =15;               //15号引脚为SD卡使能引脚
unsigned long run_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。出现一个可以理解,但接连出现好几个我就有点不理解了。恳请各位大神赐教。不胜感激。

弘毅 发表于 2018-8-29 11:16:39

是不是读写SD卡占用时间?
页: [1]
查看完整版本: 在使用HX711进行压力测量时遇到的一个问题