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