標(biāo)題: 求助:LED數(shù)字浮力計(jì)的程序設(shè)計(jì)問題? [打印本頁]

作者: fbzsn    時(shí)間: 2017-3-31 09:12
標(biāo)題: 求助:LED數(shù)字浮力計(jì)的程序設(shè)計(jì)問題?
本帖最后由 fbzsn 于 2017-4-1 10:25 編輯

      各位大神好!我想設(shè)計(jì)一個(gè)用LED數(shù)碼管+89S51+HX711完成浮力的測(cè)試。構(gòu)思:1、可用它測(cè)試重力大。2、用一只按鍵切換重力和浮力的測(cè)量,開機(jī)初始化后不按按鍵測(cè)試重力,按一下按鍵切換為浮力的測(cè)量,同時(shí)清零,數(shù)碼管顯示“0000”,將物體浸入液體中,受到浮力的作用逐漸增大時(shí),數(shù)碼管顯示的讀數(shù)也逐漸增大。重力測(cè)量的問題也解決,就是浮力測(cè)量程序存在疑惑,不知道怎樣將載荷值清零(就是當(dāng)轉(zhuǎn)化為浮力測(cè)量模式將掛有重物時(shí)數(shù)碼管顯示的重力G變?yōu)?000。也就像imxuheng師傅所說的那樣:“當(dāng)切換到了浮力測(cè)量模式,傳感器采集的力是F,于是浮力為G-F。當(dāng)沒有浸入液體時(shí),F(xiàn)=G,此時(shí)數(shù)碼管顯示0000,相當(dāng)于清零”)?敬請(qǐng)各位大神不吝賜教!給點(diǎn)思路,謝謝!!

作者: imxuheng    時(shí)間: 2017-3-31 22:27
是用下面這張圖里的做法測(cè)浮力嗎?
假設(shè)物重為G(你之前已經(jīng)測(cè)出來了),現(xiàn)在你切換到了浮力測(cè)量模式,傳感器采集的力是F,于是浮力為G-F。當(dāng)沒有浸入液體時(shí),F(xiàn)=G,此時(shí)數(shù)碼管顯示0000,相當(dāng)于清零,不知道你所說的載荷值清零是什么意思。

無標(biāo)題.png (5.6 KB, 下載次數(shù): 114)

無標(biāo)題.png

作者: yzwzfyz    時(shí)間: 2017-4-1 02:24
構(gòu)思未說得明白,
作者: fbzsn    時(shí)間: 2017-4-1 10:08
imxuheng 發(fā)表于 2017-3-31 22:27
是用下面這張圖里的做法測(cè)浮力嗎?
假設(shè)物重為G(你之前已經(jīng)測(cè)出來了),現(xiàn)在你切換到了浮力測(cè)量模式,傳 ...

就是利用你下面這張圖的原理測(cè)量浮力的大小,載荷值清零就是你所說的那個(gè)意思,當(dāng)切換到了浮力測(cè)量模式,傳感器采集的力是F,于是浮力為G-F。當(dāng)沒有浸入液體時(shí),F(xiàn)=G,此時(shí)數(shù)碼管顯示0000,非常感謝你的賜教!不知道怎樣處理傳感器兩次采集的力的數(shù)據(jù),使G-F=0? 還望多多指點(diǎn)!謝謝!
作者: admin    時(shí)間: 2017-4-14 02:47
問題解決得怎么樣了?
作者: XIN_XIN    時(shí)間: 2017-4-14 14:51
查看接收到的數(shù)據(jù)
作者: XIN_XIN    時(shí)間: 2017-4-14 14:55
在多機(jī)通信中,主機(jī)必須要能對(duì)各個(gè)從機(jī)進(jìn)行識(shí)別,在51系列單片機(jī)中可以通過SCON寄存器的SM2位來實(shí)現(xiàn)。當(dāng)串口以方式2或方式3發(fā)送數(shù)據(jù)時(shí),每一幀信息都是11位,第9位是數(shù)據(jù)可編程位,通過給TB8置1或置0來區(qū)別地址幀和數(shù)據(jù)幀,當(dāng)該位為1時(shí),發(fā)送地址幀;該位為0時(shí),發(fā)送數(shù)據(jù)幀。 在多機(jī)通信過程中,主機(jī)先發(fā)送某一從機(jī)的地址,等待從機(jī)的應(yīng)答,所有的從機(jī)接收到地址幀后與本機(jī)地址進(jìn)行比較,若相同,則將SM2置0準(zhǔn)備接收數(shù)據(jù);若不同,則丟棄當(dāng)前數(shù)據(jù),SM2位不變。
作者: fbzsn    時(shí)間: 2017-4-15 11:15
謝謝大家的指點(diǎn)!問題已得到解決。當(dāng)按鍵清零時(shí) compensate2=ReadCount(); 在浮力測(cè)量函數(shù)中這樣 寫就可以了:
          XS3=ReadCount();         
      if(XS3>compensate2)
             fuli=0;               
      else
             fuli=compensate2-XS3;       
作者: fbzsn    時(shí)間: 2017-4-15 11:19
謝謝大家的指點(diǎn)!問題已得到解決。當(dāng)按鍵清零時(shí): compensate2=ReadCount();在浮力測(cè)量子程序中,這樣寫就可以了:unsigned long  XS3;
          XS3=ReadCount();         
         if(XS3>compensate2)
             fuli=0;               
         else  
             fuli=compensate2-XS3;
作者: imxuheng    時(shí)間: 2017-4-15 15:15
fbzsn 發(fā)表于 2017-4-15 11:19
謝謝大家的指點(diǎn)!問題已得到解決。當(dāng)按鍵清零時(shí): compensate2=ReadCount();在浮力測(cè)量子程序中,這樣寫就 ...

good。。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1