我通過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。出現一個可以理解,但接連出現好幾個我就有點不理解了。懇請各位大神賜教。不勝感激。
|