博客專(zhuān)欄

        EEPW首頁(yè) > 博客 > 如何利用稱(chēng)重傳感器和微控制器建立稱(chēng)重秤

        如何利用稱(chēng)重傳感器和微控制器建立稱(chēng)重秤

        發(fā)布人:電子資料庫(kù) 時(shí)間:2022-09-07 來(lái)源:工程師 發(fā)布文章

        在這個(gè)項(xiàng)目中,使用C8051微控制器開(kāi)發(fā)套件、稱(chēng)重傳感器和Simplicity Studio IDE制作一個(gè)稱(chēng)重秤。測(cè)量的重量將顯示在LCD屏幕上。

        液晶顯示器

        該項(xiàng)目中使用的液晶顯示器是硅實(shí)驗(yàn)室的一部分CP2400丹麥克朗開(kāi)發(fā)工具包

        image.png

        圖1Silicon Labs CP2400DK開(kāi)發(fā)套件(C8051微控制器和LCD控制器)。圖片由數(shù)字鍵.

        LCD設(shè)備本身的制造商零件號(hào)(圖2)為VIM-878-DP-RC-S-LV. 如果您包括小數(shù)點(diǎn)和撇號(hào)(每個(gè)數(shù)字),這個(gè)“14段”LCD顯示器將變成16段顯示。當(dāng)把8位數(shù)的16段相加時(shí),我們看到總共128段。這種128段顯示器要求使用128段驅(qū)動(dòng)程序,硅實(shí)驗(yàn)室決定使用驅(qū)動(dòng)程序p/nCP2400型(圖3)

        image.png

        圖2液晶屏,8位數(shù)字各有16段(共128段)。圖片由數(shù)字鍵.

        image.png

        圖3128段LCD驅(qū)動(dòng)程序。圖片由硅實(shí)驗(yàn)室(第1頁(yè)和第22頁(yè))。

        稱(chēng)重傳感器

        我選擇使用的稱(chēng)重傳感器是由 Uxcell公司,型號(hào)# a14071900ux0057 .

        image.png

        圖4稱(chēng)重傳感器。圖片由亞馬遜.

        這種特殊的稱(chēng)重傳感器通常稱(chēng)為直桿式稱(chēng)重傳感器或平行梁式稱(chēng)重傳感器。通常情況下,此類(lèi)負(fù)載為額定負(fù)載;本項(xiàng)目中使用的最大重量為10公斤(或22磅)。其廣告額定輸出為1±0.15mV/V。這意味著,當(dāng)稱(chēng)重傳感器施加其最大額定重量(本例中為10kg)時(shí),每1V施加在稱(chēng)重傳感器勵(lì)磁上的輸出電壓為1mV(±0.15mV)(見(jiàn)下圖)。當(dāng)我說(shuō)電壓是“施加在測(cè)壓元件上”時(shí),電壓實(shí)際上是施加在惠斯通電橋應(yīng)變計(jì)的勵(lì)磁引線上。同樣的,這就是惠斯通應(yīng)變計(jì)產(chǎn)生輸出電壓(見(jiàn)下圖)。

        image.png

        圖5稱(chēng)重傳感器的惠斯通電橋應(yīng)變計(jì)示意圖。

        對(duì)于這個(gè)項(xiàng)目,我將采用5V作為勵(lì)磁;因此,當(dāng)向稱(chēng)重傳感器施加10kg負(fù)載時(shí),其輸出將為5.0mV(±0.75mV)。因?yàn)?.0mV是一個(gè)很小的電壓,它需要在被發(fā)送到微控制器之前被放大。

        旁注:一些微控制器不是在這個(gè)項(xiàng)目中使用的有差分ADC輸入;單端輸入被認(rèn)為是大多數(shù)微控制器的標(biāo)準(zhǔn)輸入。當(dāng)使用帶有單端ADC輸入的微控制器時(shí),當(dāng)傳感器提供差分輸出信號(hào)時(shí),一個(gè)差分放大器必須利用。這種類(lèi)型的放大器將差分信號(hào)轉(zhuǎn)換為單端信號(hào),可使用標(biāo)準(zhǔn)單端ADC進(jìn)行測(cè)量。

        儀表放大器

        我選擇使用的差分放大器實(shí)際上被稱(chēng)為儀表放大器,或安培。我用INA126PA公司輸入安培數(shù)德州儀器-我買(mǎi)了這個(gè)裝置從Digi Key3.15美元。但是,當(dāng)它不能像廣告中所說(shuō)的那樣運(yùn)行時(shí),經(jīng)過(guò)大約一個(gè)小時(shí)的故障排除,我決定轉(zhuǎn)移到B計(jì)劃:使用AD627型(來(lái)自模擬設(shè)備),我也買(mǎi)了。我買(mǎi)了這個(gè)零件鈥數(shù)量一-從Digi Key以一個(gè)驚人的價(jià)格 $8.45! 我不知道這些安培表要花這么多錢(qián)!幸運(yùn)的是,這個(gè)裝置工作正常。因此,我想我將來(lái)會(huì)使用模擬設(shè)備中的in-amp器件,而不是TI部件,盡管一般來(lái)說(shuō),我是TI部件和價(jià)格的粉絲。設(shè)置這兩個(gè)單位的增益很簡(jiǎn)單:只需要一個(gè)外部電阻。此外,TI和模擬設(shè)備部分都被宣傳為單電源或雙電源設(shè)備,我更喜歡使用單電源。

        image.png


        圖6模擬設(shè)備儀表放大器(AD627)簡(jiǎn)化示意圖。圖片由模擬設(shè)備(第14頁(yè)).

        項(xiàng)目#

        描述/來(lái)源

        成本(每個(gè))

        其他信息

        1

        C2400DK開(kāi)發(fā)套件

        $148.75

        用戶指南
        快速入門(mén)指南
        C8051F930產(chǎn)品介紹
        注:示意圖見(jiàn)
        用戶指南

        2

        試驗(yàn)板

        $8.98

        或同等產(chǎn)品

        3

        跨接導(dǎo)線套件

        $6.20

        或同等產(chǎn)品

        4

        10kg稱(chēng)重傳感器

        $8.14

        或同等產(chǎn)品

        5

        儀表放大器

        $8.45

        數(shù)據(jù)表

        6

        1 kΩ電位計(jì)

        $2.41

        數(shù)據(jù)表

        7

        機(jī)螺釘(M4-0.7 x 25mm)。
        數(shù)量2

        $0.76

        或同等產(chǎn)品

        8

        機(jī)用螺釘(M5-0.8 x 25mm)。
        數(shù)量2

        $0.76

        或同等產(chǎn)品

        連接/示意圖

        微控制器使用SPI公司用于與LCD驅(qū)動(dòng)程序通信的接口(SPI通道1)如下圖7所示,Simplicity Studio的硬件配置GUI顯示了如何配置C8051的SPI。

        image.png

        圖7SPI接口配置

        選擇儀表放大器的增益

        如前所述,施加在稱(chēng)重傳感器上的勵(lì)磁電壓為5.0VDC,將產(chǎn)生5mV的輸出電壓(滿載22 lbs)。雖然微控制器的ADC的輸入范圍是0到3.3V,但我希望3V對(duì)應(yīng)于全負(fù)荷(22磅)。這將為稱(chēng)重傳感器的過(guò)載提供一些凈空,即滿載的120%,或26磅。在這些條件下,我可以計(jì)算出所需的放大器增益,然后選擇適當(dāng)?shù)脑鲆骐娮柚担≧G ).

        5mV?Gain=3000mV

        Gain=3000mV/5mV=600

        RG公式(perAN627產(chǎn)品介紹第22頁(yè)):

        RG=200kΩ Gain?5

        RG=336Ω

        image.png

        圖8連接圖。重要的是去耦電容器(Cone)盡可能靠近AD627的電源插腳

        配置微控制器開(kāi)發(fā)工具包

        在給微控制器開(kāi)發(fā)套件通電之前,在完成所有連接后,請(qǐng)確保按如下方式配置:

        跳線:

        • J11:VBAT到GND

        • J12:VDD到VIO

        • J17:VBAT_引腳到VBAT

        開(kāi)關(guān):

        • SW4:設(shè)為“2單元”

        • 電源開(kāi)關(guān)(SW5)置于“關(guān)閉”位置

        電纜:

        • 將帶狀電纜調(diào)試適配器連接到J9

        • 將USB調(diào)試適配器連接到電腦。

        • 向接頭P2施加5.0 VDC電壓。

        連接稱(chēng)重傳感器底板

        令我驚訝的是,測(cè)壓元件本身有螺紋孔。這使得在將稱(chēng)重傳感器連接到底板時(shí)非常方便。再一次,令我驚訝的是,一組洞比另一組大。嗯,我不知道制造商為什么這么做,但是,盡管如此,我還是在當(dāng)?shù)氐奈褰鸬暾业搅撕线m的螺絲。

        • 數(shù)量2:機(jī)械螺釘,M4-0.7 x 25mm

        • 數(shù)量2:機(jī)用螺釘,M5-0.8 x 25mm

        • 注:這四個(gè)螺釘(25毫米)的長(zhǎng)度取決于墊片和底板本身的厚度。

        image.png

        圖9稱(chēng)重傳感器安裝在底板上。

        圖10完整的稱(chēng)重傳感器系統(tǒng)(sans 5VDC電源)。點(diǎn)擊放大.固件

        類(lèi)似于我的另一個(gè)項(xiàng)目(在轉(zhuǎn)速表和速度表上增加LCD和鍵盤(pán)),在這個(gè)項(xiàng)目中,我充分利用了Silicon Lab的示例LCD項(xiàng)目(CP240x_LCD_example),這使我的固件編寫(xiě)任務(wù)更加容易。

        輸入放大器的輸出連接到端口0.6,這是微控制器ADC的輸入。下面是我在固件中加入的特性/優(yōu)點(diǎn)的列表:

        • 固件在將數(shù)據(jù)發(fā)送到LCD屏幕之前,采集并平均200個(gè)測(cè)量電壓的樣本。

        • 如果施加的負(fù)載大于或等于23磅,LCD將顯示“過(guò)載”

        • 當(dāng)系統(tǒng)首次通電時(shí),固件將顯示皮重(即啟動(dòng)時(shí)的重量變?yōu)榱阒亓浚?/span>

        • LCD配置為在小數(shù)點(diǎn)后顯示一位數(shù)字。

           //----------------------------------
           // Main Application Loop
           //----------------------------------
           while (1)
           {         //-----------------------------------------------------------------------
                 // Measure Analog Value
                 //-----------------------------------------------------------------------
                 //
                 // Take ADC conversion.
                 //
        
                 // Initiate a Conversion
                 AD0INT = 0;                         // clear ADC0 conv. complete flag
                 AD0WINT = 0;                        // clear window detector flag
                 AD0BUSY = 1;                        // initiate conversion
        
                 // Wait for conversion to complete
                 while(!AD0INT);         //                           Vref (mV)
                 //   measurement (mV) =   --------------- * result (bits)
                 //                       (2^10)-1 (bits)
        
                 mV =  ADC0;
                 mV *= VREF;
                 mV /= 1023;
                 lbs = (float) (mV * 22.0 / 300.0); // The multiplying factor is actually 22lbs/3000mV, but 300
        					    // is used for displaying one digit after the decimal point.
                 if(zero_scale == 0)		    // Used for zeroing the scale during power-up.
                 {
                	 zero_offset = lbs;
                	 zero_scale = 1;
                 }
                 lbs = (lbs - zero_offset);
                 AverageAccumulator += lbs;	    // Add the current lbs measurement to the accumulator.
                 AverageMeasurements--;		    // Decrement the measurement counter.
                 if(AverageMeasurements == 0)
                 {			// Calculate the average value: divide the summed AverageAccumulator by the
        			// number of measurements.
        			lbsAverage = (AverageAccumulator / 200.0);
        
        
        			AverageAccumulator = 0;	   // Reset
        			AverageMeasurements = 200; // Reset
        			if(lbsAverage >= 230)	   // If the measured weight is greater than equal to
        						   // 23.0 lbs, then display "OVERLOAD" on the LCD screen.
        						   // The load cell is rated at 10kg (or 22 lbs), with
        						   // safe overload of 120%, or 12kg (26 lbs).
        			{				sprintf(display_string, "OVERLOAD");
        			}			else sprintf(display_string, "d lbs ", (unsigned int) lbsAverage);
                 }         //-----------------------------------------------------------------------
                 // Update LCD
                 //-----------------------------------------------------------------------
                 //
                 // Update the LCD Display
                 //
                 LCD_OutString(display_string);
           }

        這個(gè)項(xiàng)目的所有代碼都可以從下面的鏈接下載。

        生成并加載代碼,并驗(yàn)證刻度的準(zhǔn)確性

        稱(chēng)重稱(chēng)重秤

        在下載、構(gòu)建和加載代碼之后,我使用廚房秤作為測(cè)量體重的參考/比較。如視頻(下圖)所示,我放置了各種重量樣本(我大學(xué)時(shí)的舊課本!)首先是廚房秤,然后是稱(chēng)重傳感器系統(tǒng)。正如你所觀察到的,兩個(gè)刻度在顯示的測(cè)量值上非常接近。

        制造真正產(chǎn)品的下一步

        如果您或我決定使用定制的PCB設(shè)計(jì)基于此項(xiàng)目制作一個(gè)實(shí)際的重量測(cè)量系統(tǒng),請(qǐng)務(wù)必遵循中所述的接地和布局建議數(shù)據(jù)表(第20頁(yè))。此外,用金屬板代替木制底板將增加物理設(shè)計(jì)的穩(wěn)定性和穩(wěn)健性。

        稱(chēng)重快樂(lè)!


        *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



        關(guān)鍵詞: 稱(chēng)重 傳感器

        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 祁阳县| 扶绥县| 泰兴市| 钦州市| 朝阳县| 葫芦岛市| 东丽区| 新野县| 亚东县| 洛阳市| 淅川县| 莎车县| 夏河县| 吴堡县| 绿春县| 马山县| 苍山县| 呼玛县| 溧水县| 昭苏县| 惠来县| 商都县| 香港 | 忻城县| 安远县| 凤凰县| 林口县| 元朗区| 利川市| 沿河| 获嘉县| 栾城县| 开封县| 榆林市| 盖州市| 樟树市| 宜春市| 蕲春县| 巴塘县| 康乐县| 康定县|