本帖最后由 弘毅 于 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。出现一个可以理解,但接连出现好几个我就有点不理解了。恳请各位大神赐教。不胜感激。
|