找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3085|回复: 2
收起左侧

使用HX711与Arduino进行压力测量时遇到的一个问题不理解

[复制链接]
ID:326320 发表于 2018-8-28 19:54 | 显示全部楼层 |阅读模式
我通过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。出现一个可以理解,但接连出现好几个我就有点不理解了。恳请各位大神赐教。不胜感激。

微信图片_20180828193940.png
微信图片_20180828193935.png
微信图片_20180828193929.png
微信图片_20180828193908.png
回复

使用道具 举报

ID:139455 发表于 2018-8-28 23:47 | 显示全部楼层
你可以试着将采集的数据通过串口直接送到电脑上查看,不存储到SD卡,如果时间间隔相等,那么有可能是文件系统对SD卡访问时,SD卡响应时间不一致引起的,文件系统对SD卡访问是一个复杂的过程。你的程序里每次都打开文件,写入数据,然后关闭,这样操作不好,频繁向SD卡写入少量数据,SD卡是FLASH系统,扇区操作,改写一个数据也要按扇区擦除,这样每次响应的时间可能不一样,取决于硬件;你可以这样试一试,用次数限制数据,程序编写时,打开文件,循环写入压力数据,到一定数量时再关闭文件,或者检测到开关关闭再关闭文件。这样数据是写在缓存中的,累积到一定数量才写一次SD卡,这是由文件系统控制的。看下能解决问题不

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:326320 发表于 2018-8-29 07:23 | 显示全部楼层
lilao3 发表于 2018-8-28 23:47
你可以试着将采集的数据通过串口直接送到电脑上查看,不存储到SD卡,如果时间间隔相等,那么有可能是文件系 ...

好的。我去试试看。感谢你的热心帮助。好人一生平安
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表