|
|
最近使用了基于hx711的電子秤進(jìn)行小實(shí)驗(yàn),我是直接從淘寶上買(mǎi)的現(xiàn)成的模塊。從賣(mài)家那里得到的程序,發(fā)現(xiàn)根本不能直接用,我前后買(mǎi)了兩個(gè),發(fā)現(xiàn)不同的傳感器使用的參數(shù)的不一樣的。網(wǎng)上買(mǎi)的現(xiàn)成的測(cè)量模塊主要由雙橋組成的應(yīng)變片和hx711 24位A/D轉(zhuǎn)換器組成,基本的思路是:通過(guò)電橋不穩(wěn)定,輸出不同的電壓,得到不同的重量。也就是說(shuō),對(duì)于整個(gè)模塊來(lái)說(shuō),1克的重量對(duì)應(yīng)1個(gè)A/D輸出。由此我發(fā)現(xiàn),不同的模塊,A/D輸出是不一樣的。我也參考了了很多網(wǎng)上有關(guān)程序的分析,發(fā)現(xiàn)都是理論分析,但是一用到實(shí)物中根本不太合適。因此,我通過(guò)寫(xiě)這一個(gè)小帖子,用一點(diǎn)小技巧更快對(duì)基于hx711電子秤的實(shí)現(xiàn)。
首先,必須記住一點(diǎn):實(shí)際重量與hx711輸出值成正比。那么首先寫(xiě)一個(gè)程序子程序?qū)崿F(xiàn)不同重量下A/D輸出的具體值,我做實(shí)驗(yàn)是采用的是不放東西上去時(shí)記下當(dāng)前A/D的輸出值x1,接著放一個(gè)標(biāo)準(zhǔn)重量為y1克的物體,記下當(dāng)前A/D輸出值x2。接著就可以粗略計(jì)算出重量與A/D輸出值的線(xiàn)性關(guān)系,即:G=(d-x1)/(x2-x1/y1)。其中(G為實(shí)際的重量,單位為克,d為hx711的輸出值)。那么再寫(xiě)一個(gè)程序,根據(jù)重量與A/D輸出值的線(xiàn)性關(guān)系,只要根據(jù)hx711實(shí)際輸出值就可以知道物體實(shí)際的重量。另外,如果還有一點(diǎn)誤差,根據(jù)實(shí)際情況,調(diào)整x1會(huì)得到更好的效果。
這是我最近做小項(xiàng)目時(shí)用到的一點(diǎn)點(diǎn)小技巧,可能存在一些不合理的地方,請(qǐng)大家多多包涵。具體實(shí)現(xiàn)代碼,看附件的文本的文檔。
單片機(jī)源程序如下:
- #include "HX711.h"
- #include "HX711.h"
- #include “reg52.h”
- sbit HX711_DOUT=P3^1;
- sbit HX711_SCK=P3^0;
- //****************************************************
- //延時(shí)函數(shù)
- //****************************************************
- void Delay__hx711_us(void)
- {
- _nop_();
- _nop_();
- }
- //****************************************************
- //讀取HX711
- //****************************************************
- //返回值為實(shí)際重量
- int get_Weight(void) //增益128
- {
- long count;
- unsigned char i;
- float weight=0;
- HX711_DOUT=1;
- Delay__hx711_us();
- HX711_SCK=0;
- count=0;
- // while(HX711_DOUT);
- for(i=0;i<24;i++)
- {
- HX711_SCK=1;
- count=count<<1;
- HX711_SCK=0;
- if(HX711_DOUT)
- count++;
- }
- HX711_SCK=1;
- Delay__hx711_us();
- HX711_SCK=0;
- weight=((long)(count-47625))/129; //式子中的參數(shù)根據(jù)實(shí)際測(cè)試參數(shù)進(jìn)行調(diào)整,獲取方法參照另外一個(gè)文檔。count對(duì)應(yīng)帖子中的d,47625對(duì)應(yīng)x1,129對(duì)應(yīng)(x2-x1/y1)。參數(shù)不合 //適時(shí)一般通過(guò)調(diào)整x1,可以完成微調(diào)。
- return(weight);
- }
復(fù)制代碼
0.png (5.64 KB, 下載次數(shù): 31)
下載附件
2019-5-17 03:28 上傳
所有資料51hei提供下載:
基于hx711電子秤改進(jìn)代碼.rar
(1.16 KB, 下載次數(shù): 49)
2019-5-15 19:53 上傳
點(diǎn)擊文件名下載附件
基于hx711電子秤改進(jìn)代碼 下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|