久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7305|回復: 37
打印 上一主題 下一主題
收起左側

用兩個BMP280測試室內外壓差發現壓差不穩定老是變化很大!

[復制鏈接]
跳轉到指定樓層
樓主
用的BMP280
bmp280_WriteByte(0xf4, 0xff);
  bmp280_WriteByte(0xf5, 0x1c); //000 111 00  

溫度和壓力測量精度最高,然后濾波開最高,正常模式,主循環里100ms讀取一次。
做項目的時候發現壓差不穩定,根本沒法標定使用。比如早上相差+10pa,到了下午就變成+50帕。或者有的直接從+100變成-100.請問有遇到過類似問題的嗎?


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:277550 發表于 2021-7-2 16:02 | 只看該作者
氣壓差,在不同的時間測試,是存在的。除非測試的環境是封閉的。
回復

使用道具 舉報

板凳
ID:825140 發表于 2021-7-2 16:04 | 只看該作者
devcang 發表于 2021-7-2 16:02
氣壓差,在不同的時間測試,是存在的。除非測試的環境是封閉的。

您好!可是兩個傳感器都是緊挨在一起放著的,然后外面拿帶洞的殼子罩著放在一起的
回復

使用道具 舉報

地板
ID:825140 發表于 2021-7-2 16:06 | 只看該作者
devcang 發表于 2021-7-2 16:02
氣壓差,在不同的時間測試,是存在的。除非測試的環境是封閉的。

bmp280相對精度±12pa,按理說同樣兩個傳感器的壓差不應該變化這么大。
回復

使用道具 舉報

5#
ID:825140 發表于 2021-7-2 16:19 | 只看該作者
devcang 發表于 2021-7-2 16:02
氣壓差,在不同的時間測試,是存在的。除非測試的環境是封閉的。


這個是測試的一組數據
回復

使用道具 舉報

6#
ID:825140 發表于 2021-7-2 16:22 | 只看該作者
devcang 發表于 2021-7-2 16:02
氣壓差,在不同的時間測試,是存在的。除非測試的環境是封閉的。

這是測的一組數據,今天測跟明天測都不一樣

U594`[S73FWFT}F$TM4(VSR.png (837.23 KB, 下載次數: 114)

U594`[S73FWFT}F$TM4(VSR.png
回復

使用道具 舉報

7#
ID:825140 發表于 2021-7-3 09:34 | 只看該作者
根據測試情況來看好像每組傳感器,有的組氣壓差變化不大,挺穩定,有的組中其中一個傳感器會突變,就像上圖的第一個傳感器,相差300pa,然后有時候又變回去。這會是什么問題呢?傳感器工作模式?I2C讀寫時序?還是說傳感器需要循環得重新給F4和F5寫數據配置工作狀態?
回復

使用道具 舉報

8#
ID:401564 發表于 2021-7-3 21:29 | 只看該作者
我看了一下這傳感器的數據手冊,像你這個數據是正常的呀
不是看相對精度的,要看絕對精度的最大誤差是±1.7hPa ,±1.2hPa是典型值,還不包括溫度漂移,你可以試下用摸一下或者發熱的東西試一下,嘗試讓其中一個傳感器溫度產生比較大的變化,看一下
早上大氣壓和下午的大氣壓不一樣,這不是正常的嗎?你是做這個項目的,你不會不知道每天大氣壓都是不一定的嗎?一天的大氣壓相關三五百Pa是正常的呀
回復

使用道具 舉報

9#
ID:825140 發表于 2021-7-5 10:37 | 只看該作者
本帖最后由 triggerfan 于 2021-7-5 10:42 編輯
Y_G_G 發表于 2021-7-3 21:29
我看了一下這傳感器的數據手冊,像你這個數據是正常的呀
不是看相對精度的,要看絕對精度的最大誤差是±1.7h ...

  您好,我這個相差很大的是兩個傳感器的差值,兩個傳感器測的都是絕對大氣壓然后相減,絕對大氣壓變化肯定大,但是差值變化很大那是相對精度的問題,手冊上說相對精度±12pa,所以不管絕對值怎么變,差值這一個相對值都是不應該這么大的。
  我發現了一個問題然后我做了一些修改。現在穩定多了。給您過目一下。
  我原本對傳感器的測量模式之類的初始化是放在主函數之前:
void bmp280_Init(void);
int main() {
    mainInit();
    CLRWDT();
    datainit(); /////////BMPinit函數放在這個datainit函數中
    init_TM1638();
    INTE = 1; //外部中斷允許
    INTEDG = 0; //外部中斷下降沿觸發

    RLED = 1;
    TLED = 1;
    ALERTLED = 1;

    while (1) {
        rtuConnect();
        updateData();
        //        KeyAction();
        //        showDeviceCode();
        CLRWDT();
    }
}

這樣的初始化就是只初始化了一次。后來我將初始化就是傳感器工作模式(周期性)過采樣之類的初始化放在主循環里面每隔半分鐘就重新寫一次初始化。這樣操作之后得出來的數值就穩定很多(測了兩天)
附上傳感器測量值的圖,可以看到的是差值基本穩定在-110pa,上下波動基本在10pa以內。
這就奇怪了,按照0xF4 0xF5周期模式難道只寫一次不夠?只寫一次接收不到命令?這個傳感器一定要循環寫命令嗎?

%[D}NR3%FWWC}[{B071K5CE.png (906.58 KB, 下載次數: 77)

%[D}NR3%FWWC}[{B071K5CE.png
回復

使用道具 舉報

10#
ID:401564 發表于 2021-7-5 16:50 | 只看該作者
這個IC我沒有用過,所以,并不是很懂
對于壓力傳感器,兩個傳感器之間的比對,我們這一般取的是絕對精度,并不是取相對精度,只要不超過這個范圍值,我們都認為是正確的,但大多數的時候,壓力傳感器還是和相對精度差不了多少的
我這用的是MS5805,這個精確有比BMP高很多,海拔最大精度是0.02米,但我們在生產中測試數據是以不超過1米來進行生產的
BMP280采集到數據之后,要把測量值和內部的校準值進行計算之后,才能得到真正的數值
不知道你是用51還是STM32
不會STM32,不知道
如果是Keil C51的話,Keil C51只支持最大32位整型數據,而這個傳感器的計算需要用到64位數據的運算的,需要在Keil環境下.使用32位數據進行64位運算才行的
回復

使用道具 舉報

11#
ID:825140 發表于 2021-7-5 17:21 | 只看該作者
Y_G_G 發表于 2021-7-5 16:50
這個IC我沒有用過,所以,并不是很懂
對于壓力傳感器,兩個傳感器之間的比對,我們這一般取的是絕對精度,并不 ...

感謝老哥的意見,我用的pic單片機,手冊上有關于八位單片機的計算公式,不過由于加了其他傳感器,所以我把傳感器內部修剪參數和得到的數據都交給上位機讓上位機來計算了。現在測量的時候差值還是不穩定,還是有點往一個方向飄,頭疼,感覺這樣根本做不了產品。考慮是不是溫度的影響呢,可是手冊上也沒看到要對溫度進行補償的講解。不知道測量溫度然后根據手冊上計算出來的t-fine是不是溫度補償。
回復

使用道具 舉報

12#
ID:401564 發表于 2021-7-5 19:43 | 只看該作者
triggerfan 發表于 2021-7-5 17:21
感謝老哥的意見,我用的pic單片機,手冊上有關于八位單片機的計算公式,不過由于加了其他傳感器,所以我 ...

壓力傳感器這一塊,其實誤差是相對比較大,它不比電阻電流這些參數
正常來說,1%的誤差是正常的,我們這有一個瑞士進口的校準的機子,我看到品檢抽檢的時候誤差也是有些大
你現不用去考慮什么溫度的,這個肯定是有影響的,一個溫度漂移性能好點的電壓基準源IC都要十幾塊錢
這壓力傳感器才幾塊錢,內部的參考電壓穩定也不會是軍工級的了,參考電壓一變化,ADC的結果就變化了

你最好是先確認程序的正確性,讀取和處理函數一定得是正確,這一點才是最重要的
確定了這一點,你再看一下其它的問題
回復

使用道具 舉報

13#
ID:825140 發表于 2021-7-6 08:06 | 只看該作者
Y_G_G 發表于 2021-7-5 19:43
壓力傳感器這一塊,其實誤差是相對比較大,它不比電阻電流這些參數
正常來說,1%的誤差是正常的,我們這有一 ...

謝謝哥的寶貴意見,我今天繼續研究研究
回復

使用道具 舉報

14#
ID:825140 發表于 2021-7-8 12:36 | 只看該作者
本帖最后由 triggerfan 于 2021-7-8 12:45 編輯

飄得不行,每一組傳感器都是放在同一個盒子里密封好的。網上論壇也好帖子也好我看都是單獨的傳感器讀出來就完事兒了就覺得沒問題了。根本看不到有誰是拿兩個放在一起比較過的。不夠嚴謹。
程序最后修改是t過采樣2 p過采樣16,IIR濾波16,周期模式。

  bmp280_WriteByte(0xf4, 0x5f); //t * 2   p*16
    bmp280_WriteByte(0xf5, 0x3c); //001 111 00


定時器每250ms讀一次,每兩分鐘重新對F4 F5寫入數據。

    if (SystemBits.bmp_start_flag) {
        SystemBits.bmp_start_flag = 0;
        while (BmpGetState(0x01) != 0);//如果是零,則轉換完成
        CLRWDT();
        while (BmpGetState(0x08) != 0);
        CLRWDT();
       adc_t_p[0].MemoryData = bmp280_MultipleReadThree(BMP280_TEMP_ADDR);
        //CLRWDT();
        //DelayMs(10);
        adc_t_p[1].MemoryData  = bmp280_MultipleReadThree(BMP280_PRESS_ADDR);
        CLRWDT();
        MemoryData[20].MemoryData = adc_t_p[0].DataHighByte;
        MemoryData[21].MemoryData = adc_t_p[0].DataLowByte;
        MemoryData[22].MemoryData = adc_t_p[1].DataHighByte;
        MemoryData[23].MemoryData = adc_t_p[1].DataLowByte;
        
        WritebmpCount++;
        if(WritebmpCount > 480){ //4*250 1s 480 4*120 120s 兩分鐘寫一次
            WritebmpCount = 0;
             //重新寫寄存器
            bmp280_WriteByte(0xf4, 0x5f);
            DelayMs(20);
            bmp280_WriteByte(0xf5, 0x3c); //001 111 00  
        }
        
    }

51hei圖片20210708123215.jpg (2.52 MB, 下載次數: 134)

51hei圖片20210708123215.jpg

51hei圖片20210708123212.jpg (2.89 MB, 下載次數: 119)

51hei圖片20210708123212.jpg

51hei圖片20210708123207.jpg (2.97 MB, 下載次數: 134)

51hei圖片20210708123207.jpg

51hei圖片20210708123201.jpg (2.56 MB, 下載次數: 140)

51hei圖片20210708123201.jpg
回復

使用道具 舉報

15#
ID:825140 發表于 2021-7-12 13:44 | 只看該作者
難道就沒有人用過bmp280來做壓差的嗎?
回復

使用道具 舉報

16#
ID:883242 發表于 2021-7-12 16:24 | 只看該作者
按datasheet,你的數據已經很好了。非要強迫癥想追求完美,那就買更貴的傳感器好了,買不起就要忍著。
回復

使用道具 舉報

17#
ID:825140 發表于 2021-7-15 15:54 | 只看該作者
Hephaestus 發表于 2021-7-12 16:24
按datasheet,你的數據已經很好了。非要強迫癥想追求完美,那就買更貴的傳感器好了,買不起就要忍著。

謝謝老哥的意見。如果這傳感器真是這樣那我是真的松口氣了,就怕我是不是程序哪沒搞對,想看看其他人的經驗
回復

使用道具 舉報

18#
ID:975054 發表于 2021-10-30 09:25 | 只看該作者
首先:設計目的?就是想用在哪里?
其次:傳感器的氣壓測試精度一般足夠了的,就看具體想怎么應用了。
氣壓傳感器計算得到的高度一般用在短周期內的(海拔高度)相對值。比如坐垂直電梯,電梯啟動前記錄一個高度,電梯上升到3層,記錄一個高度,兩個高度的高度差是準確的。
如果需要用在絕對場合,可以輸入當前位置的高度作為計算的初始值,然后運動觀察高度變化就是準確的。不過如果時間長了,也會容易出現高度漂移的問題。如果項目要求長時間獲取準確高度值且頻率要求高,就需要融合其他傳感器進行處理,比如GPS。氣壓傳感器精度本身足夠高的,誤差主要是長時間工作后的正常溫漂,而轉換后的高度誤差最大的來自大氣壓日差、年差(緯度不同、天氣不同,早晚往往變化很大的都有10hPa了,對應海拔高度都有80-100米了,可以搜關鍵詞“氣壓日差或年差”,你可以看看手機里面的天氣預報,里面就有氣壓一項)。
我之前有個小項目持續改進研究了一年,跟這個氣壓直接有關。模擬氣壓傳感控制最簡方案的搞完了,現在想超低功耗數字化改進一下。。。MS5611或BMP380+STC8G+后面的控制執行裝置。。。。。。也在頭疼中(本人是老射頻工程師,編程沒怎么搞過,也硬著頭皮上!找外協又不合適,反正不著急,自己抓緊玩就是了。。。。。。精度和輕量化倒不是主要問題了、設備的可靠性才是關鍵(以前老看別人天天上班就pin包、拷機,現在我也拼一拼,呵呵)。。。共勉。。
回復

使用道具 舉報

19#
ID:975054 發表于 2021-10-30 09:28 | 只看該作者
氣壓傳感器計算得到的高度一般用在短周期內的(海拔高度)相對值。比如坐垂直電梯,電梯啟動前記錄一個高度,電梯上升到3層,記錄一個高度,兩個高度的高度差是準確的。
如果需要用在絕對場合,可以輸入當前位置的高度作為計算的初始值,然后運動觀察高度變化就是準確的。不過如果時間長了,也會出現高度漂移問題。如果項目要求長時間獲取準確高度值且頻率要求高,就需要融合其他傳感器進行處理,比如GPS。氣壓精度本身較高,誤差主要是長時間工作后的溫漂,而轉換后的高度誤差最大的來自氣壓日差(往往有10hPa了)。。。。。。研究了一年有關技術。。。
回復

使用道具 舉報

20#
ID:975054 發表于 2021-11-21 22:20 | 只看該作者
終于搞清楚了,我用的是STC8 硬件I2C+BMP280方案,暫時只需要氣壓讀數。不知道你們具體用的什么MCU? 軟硬件I2C又不同,具體細節太多。。。。

testBMP280ID:
bmp280 id is right...
0101 1000
temp                    press
0000 0000 0000 0001 1000 1011 1000 1111
回復

使用道具 舉報

21#
ID:975054 發表于 2021-11-23 02:27 | 只看該作者
今天廣州實測海拔比天氣預報的多約940Pa相當于低80米,短時間變化約5Pa倒很好了。拿小軟管堵住孔稍微大力吹吸氣約相差2.5-3Kpa很正常。
回復

使用道具 舉報

22#
ID:975054 發表于 2021-11-23 21:00 | 只看該作者
我用的是STC8H+280硬件I2C,11.0592MhZ:發現I2C總線速度設置對讀數有一定影響:100Kbit/S左右時較好,200Kbit/S左右時最差。原因不明。
回復

使用道具 舉報

23#
ID:975054 發表于 2021-11-23 21:01 | 只看該作者
測試記錄:1123:102080(13℃/1015):+580+10樓360總誤差+940Pa約80米,短時間才飄5Pa、吸氣99337-2743吹氣105016+2936:很正常!
//                  101931(13℃/1017):+231+10樓360總誤差+591Pa約50米,算比較準了(設置改2f、50后)飄1pa。
//                總線速率原來80K(E0)改100K(DA)后:101987(1019)更準確!總差不到+400pa33米!最漂亮!后面先用100Kbit/速率!
//                                                        第2次:102060(1014)+1Kpa誤差稍大,猛吹氣107059(+5Kpa正常)猛吸氣97215(+4.8Kpa正常)。可歸位ok;  注意當時預報變化極大。
//                總線速率原來80K(E0)改 50K(F2)后:101993(1019)也準確!總差不到+400pa33米!吹氣中死機scl常低可重寫也不行,后來拆下280插回后又可以了,可能吹氣太猛壓到了?以后留意。
//                                                        第2次:102050(1018)+0.5Kpa40米不錯!猛吹氣105121(+3.1Kpa正常)猛吸氣96468(+5.6Kpa正常)。可歸位ok;
//                總線速率原來80K(E0)改120K(D5)后:102162(1015)+1.02Kpa80米偏大!猛吹氣104924(+2.8Kpa正常)猛吸氣 98210(+3.9Kpa正常)。可歸位ok;
//                                                        第2次:102107(1019)+0.57Kpa47米不錯!猛吹氣104793(+2.7Kpa正常)猛吸氣 98260(+3.8Kpa正常)。可歸位ok;
//                總線速率原來80K(E0)改200K(CC)后:120840(1016)+19Kpa誤差太大! 猛吹氣123732(+2.9Kpa正常)猛吸氣115154(+5.7Kpa稍大)。可歸位ok;
//                                                        第2次:120840(1016)           誤差太大!不知道原因??
//                總線速率原來80K(E0)改400K(C5)后: 99120(1019)-2.78Kpa誤差大! 猛吹氣101528(+2.4Kpa正常)猛吸氣 93656(+5.5Kpa稍大)。可歸位ok;
回復

使用道具 舉報

24#
ID:401564 發表于 2021-11-24 00:14 | 只看該作者
ax6808 發表于 2021-11-23 21:00
我用的是STC8H+280硬件I2C,11.0592MhZ:發現I2C總線速度設置對讀數有一定影響:100Kbit/S左右時較好,200K ...

幾個月前就是這個帖子,讓我下決心去學C語言的,還買了3片回來對比
IIC只要是時序對了,給器件足夠的響應時間,速率對數據是沒有影響的,只要每次讀取之前先檢測一下ADC完成標志位就可以了
每片之間的數據誤差還是有的,總體來說,也就對得起那幾塊的元件吧
MS系列的就要高端一些了,我用過MS5805,誤差就要小很多,當然,價格就得在后面加個0了
回復

使用道具 舉報

25#
ID:975054 發表于 2021-12-7 02:56 | 只看該作者
Y_G_G 發表于 2021-11-24 00:14
幾個月前就是這個帖子,讓我下決心去學C語言的,還買了3片回來對比
IIC只要是時序對了,給器件足夠的響應時 ...

我全部程序優化弄完了(加了很多比較判斷、顯示及控制的代碼)。結果:氣壓數據之前總是偏高5hpa,現在卻總是偏低約1KPa,莫名其妙查半天沒查出來。另外,溫度始終顯示十幾二十幾度,不對,沒有小數點。公式應該沒有錯,反復試了有符號無符號的變化。  還有I2C總線速度影響還是很大,不過100K以下都很穩定,200K以上幾乎亂來了。也不知道哪里原因。有些地方加了個延遲幾百ms,代碼就不往下執行了。。。。。。
回復

使用道具 舉報

26#
ID:975054 發表于 2021-12-7 03:01 | 只看該作者
串口顯示:Program Size: data=23.2 xdata=111 code=7105;
         Hello!...                                                      //問候語;
         test......OK!                                                //自檢結果:OK,否則告警:"test...error";
         SW1=OFF......SW2=OFF..........Hset = 100m            //撥碼開關設置狀態(1:OFF,0:ON);
           T = 00000000 00000000 00010111 ...T = 22℃            //初始溫度:二進制,十進制;       
         P0= 00000001 10000111 00101100 ...P = 100140Pa( 96m) //初始氣壓:二進制,十進制,海拔;
           ---------------------------------------------------- //以下循環顯示;
         T = 00000000 00000000 00010110 ...T = 22℃                 //實時溫度(二進制+十進制);
         P = 00000001 10000111 00100101 ...P = 100133Pa( 97m) //實時氣壓(海拔):二進制,十進制;                       
                                            P0 = 100141Pa( 96m) //初始氣壓(海拔):二進制,十進制;
重新下載前幾天的代碼氣壓都高1000pa,反復核對了很多設置幾乎一樣。3片280模塊都一樣。莫名其妙。
回復

使用道具 舉報

27#
ID:975054 發表于 2021-12-7 03:05 | 只看該作者
ax6808 發表于 2021-12-7 03:01
串口顯示:Program Size: data=23.2 xdata=111 code=7105;
         Hello!...                                                      //問候語 ...

我家里海拔大概40米,溫度大概16度
回復

使用道具 舉報

28#
ID:401564 發表于 2021-12-7 12:10 | 只看該作者
ax6808 發表于 2021-12-7 02:56
我全部程序優化弄完了(加了很多比較判斷、顯示及控制的代碼)。結果:氣壓數據之前總是偏高5hpa,現在卻 ...

估計是你代碼的問題,這個片子是支持高速IIC的,人家支持3.4MHZ的,就算是縮水,也不會縮水那么多的
回復

使用道具 舉報

29#
ID:975054 發表于 2021-12-23 10:07 | 只看該作者
我項目需要,專門研究過氣壓早晚日差、年差等等。正常的變化。普通測量恩本用不到那么絕對準確,只要相對穩定就好,具體誤差可以直接自己加一個適當的修訂值。
回復

使用道具 舉報

30#
ID:975054 發表于 2021-12-23 10:10 | 只看該作者
ax6808 發表于 2021-11-23 21:01
測試記錄:1123:102080(13℃/1015):+580+10樓360總誤差+940Pa約80米,短時間才飄5Pa、吸氣99337-2743吹 ...

總線速率問題搞清楚了:原來我為了偷懶,把延時及其他函數里的變量i,j數據類型定義到全局變量里了, 改回局部變量后,好多問題都一并解決了,包括總線速率.
回復

使用道具 舉報

31#
ID:975054 發表于 2021-12-23 10:17 | 只看該作者
Y_G_G 發表于 2021-12-7 12:10
估計是你代碼的問題,這個片子是支持高速IIC的,人家支持3.4MHZ的,就算是縮水,也不會縮水那么多的

謝謝!最后查清楚了,確實是STC8的代碼問題,讀修訂參數變量前,得延時一下就不會有問題了,不然讀數會不準(數值往往減少一點).....對所有變量值進行顯示逐一排查才找到問題所在.
回復

使用道具 舉報

32#
ID:975054 發表于 2021-12-23 10:31 | 只看該作者
Y_G_G 發表于 2021-7-5 19:43
壓力傳感器這一塊,其實誤差是相對比較大,它不比電阻電流這些參數
正常來說,1%的誤差是正常的,我們這有一 ...

關于280的兩個浮點和定點計算公式,我STC8G都可以實現了,特別注意變量數據類型定義不同。定點的都定義為long,浮點公式var1,var2, T,p為double代碼還少了400多字節,為了穩定,還加了static...;
static long    t_fine,adc_T, adc_P,var1,var2, T, p;        //定點公式用;
//static double var1,var2, T,p                               //浮點公式四個改double;
最后很穩定,但定點公式計算結果總是不能轉換為顯示小數點1位就好,小數點里面具體值總是0,其他都很正常;
回復

使用道具 舉報

33#
ID:401564 發表于 2021-12-23 11:22 | 只看該作者
ax6808 發表于 2021-12-23 10:31
關于280的兩個浮點和定點計算公式,我STC8G都可以實現了,特別注意變量數據類型定義不同。定點的都定義為lo ...

在keil雖然可以聲明double類型,但數據實際上還是float
stc8g有1K的SRAM,進行BMP280的運算是沒有什么問題的,不需要加static的
我都是直接復制數據手冊中的代碼用,測試一段時間,暫時沒有發現什么問題
但這玩意好像也沒啥用,因為我自己手上就有MS5805,感覺BMP280就低檔了很多,你說當個溫度計看嘛......自己又DIY了一個HDC1080,HDC1080溫度精度是0.2攝氏度,要比這高出很多......所以,這玩意就當擺設了...
回復

使用道具 舉報

34#
ID:500183 發表于 2021-12-23 11:57 | 只看該作者
學習到了 還是要了解啊
回復

使用道具 舉報

35#
ID:975054 發表于 2021-12-23 16:55 | 只看該作者
Y_G_G 發表于 2021-12-23 11:22
在keil雖然可以聲明double類型,但數據實際上還是float
stc8g有1K的SRAM,進行BMP280的運算是沒有什么問題 ...

嗯!就是就是。
顯示精度都足夠的了,只是絕對誤差問題(我都是自己直接加修訂值了)。
之前不知道,公式里外變量都得帶類型,最后顯示也有多種格式,還好只是顯示問題,不影響原來數值的比較判斷等應用。
回復

使用道具 舉報

36#
ID:975054 發表于 2022-2-10 17:51 | 只看該作者
目前基本正常,最后的主要問題:
(1) dig_P1 為unsigned short,但我讀出來顯示總是負數(但好像不影響最終結果),其他參數都正常; 不知道哪里錯了,統一定義和讀取顯示的。
(2)計算氣壓時,已加手冊公式里的一句:if (var1 == 0) { retune 0};
但最后一個var1不知為何讀出來都總是0,于是我又在后面再加了一句“if (var1 == 0) { retune0};不然繼續算下去最終讀數總是低1850Pa(但沒用到dig_P7、8、9);
P: var1 = ...;
var2 = ...;
var2 = ...;
var2 = ...;
var1 = (((double)dig_P3)*var1*var1/524288.0+((double)dig_P2)*var1)/524288.0;
var1 = (1.0+var1/32768.0)*((double)dig_P1);
if (var1 == 0.0) return 0; //avoid exception caused by division by zero避免被零除異常;
p = 1048576.0-(double)adc_P;
p = (p-(var2/4096.0))*6250.0/var1;
var1 = ((double)dig_P9)*P*P/2147483648.0; //這個 var1讀出來總是0???
if (var1 == 0.0) return 0; // 于是自己再加了1句:更準了(后面2句無效)!
var2 = p*((double)dig_P8)/32768.0;
p = p+(var1+var2+((double)dig_P7))/16.0;
return p;
(3)GY-63模塊如此便宜,真不敢相信是否原裝貨?
(4)其實16位足夠一般人用了,用BMP180也夠了,模塊還小不少,價錢倒還貴一點停產了,不知道什么庫存或拆件?MS5611也試過只接4腳就可用,但貴很多很多暫無必要。
回復

使用道具 舉報

37#
ID:1097583 發表于 2023-10-28 00:48 | 只看該作者
ax6808 發表于 2021-10-30 09:25
首先:設計目的?就是想用在哪里?
其次:傳感器的氣壓測試精度一般足夠了的,就看具體想怎么應用了。
氣 ...

長時間使用后(最近這天氣降溫),高度漂移確實明顯,不知道老哥有沒有什么方法處理
回復

使用道具 舉報

38#
ID:883242 發表于 2023-10-28 14:00 | 只看該作者
jylhy 發表于 2023-10-28 00:48
長時間使用后(最近這天氣降溫),高度漂移確實明顯,不知道老哥有沒有什么方法處理

你查下氣象臺的氣壓數據就知道怎么回事了,氣壓高度本來就不準,如果準了這個世界就沒有“風”這個東西了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲高清网 | 一区二区在线观看免费视频 | 羞羞视频网站在线观看 | 亚洲综合在| 久久成人免费观看 | 在线视频a | 高清国产一区二区 | 欧美成人一区二区 | av影片在线 | 日韩欧美中文字幕在线视频 | 午夜精品久久久久久久久久久久 | 国产高清视频在线观看 | 一区二区三区国产 | 国产精品日日摸夜夜添夜夜av | 国产精品久久久久久久久久久久午夜片 | 亚洲精品影院 | 欧美日韩视频在线第一区 | 亚洲精品乱码久久久久久黑人 | 久久久亚洲一区 | 久久综合av | 日本一区二区三区在线观看 | 99精品久久久久久中文字幕 | 一级做a爰片性色毛片16 | 午夜不卡福利视频 | 成人久久久久 | 久久99久久99久久 | 精品国产乱码久久久久久丨区2区 | 中文字幕在线一区二区三区 | 欧美国产日韩在线 | 91精品国产91久久久久久 | 成年免费在线观看 | 日本a视频 | 国产激情91久久精品导航 | 亚洲欧美激情精品一区二区 | 久久久久久av | 欧美黄色网 | 先锋影音资源网站 | 欧美a∨| 一区二区在线免费观看 | 91视频网 | 夜夜爽99久久国产综合精品女不卡 |