標(biāo)題: 網(wǎng)上看的單片機(jī)電子秤程序,有幾點(diǎn)疑問(wèn)請(qǐng)教各位大神 [打印本頁(yè)]

作者: zhth1979    時(shí)間: 2022-4-27 19:20
標(biāo)題: 網(wǎng)上看的單片機(jī)電子秤程序,有幾點(diǎn)疑問(wèn)請(qǐng)教各位大神
這段就是電子秤的標(biāo)定程序,原理我是懂了,主要是保存兩個(gè)坐標(biāo)值到EEPROM,這段程序他是做到主程序里了,并加兩個(gè)獨(dú)立按鍵用于校準(zhǔn)但有兩個(gè)問(wèn)題沒(méi)弄明白:?jiǎn)栴}1:這段程序我能不能獨(dú)立出來(lái),放進(jìn)24C02里, 要校準(zhǔn)時(shí)我外接24CO2校準(zhǔn)?  問(wèn)題2:這兩個(gè)獨(dú)立按鍵能不能省掉,用開(kāi)機(jī)鍵和去皮鍵共用?另外關(guān)于壓力傳感器的標(biāo)定程序網(wǎng)上資料很少,哪位大神對(duì)這方面有研究或有這方面的資料能分享一下嗎?在這里先謝謝了!

單片機(jī)源程序如下:
while(1)
        {
                if(Key_1)//去皮后的值保存到EEPROM里面,必須在5V環(huán)境下 校準(zhǔn)專(zhuān)用
                {
                        Key_1 = 0;
                        LED2 = 0;//燈亮
                        Main_Loop = 10;
                        while(Main_Loop--)
                                Tare = Read_18Bit_AD();//讀取出CS1237的數(shù)據(jù),5V情況下
                        Main_Loop = 10;
                        while(Main_Loop--)
                                BGA_EEPROM = Get_BGA();//在5V供電情況下,保存BGA參數(shù)
                        Wr_20_Long(0XD3B8,EEROM_20Long);//保存數(shù)據(jù)到EEPROM
                        LED2 = 1;//關(guān)燈
                }
               
                if(Key_2)//放上一個(gè)500g砝碼,用于校準(zhǔn)誤差,必須在5V供電環(huán)境下
                {
                        Key_2 = 0;
                        LED2 = 0;//燈亮
                        Main_Loop = 10;
                        while(Main_Loop--)
                                Weight_500g = Read_18Bit_AD();//讀取出500G的數(shù)據(jù)
                        Weight_Coe = Weight_500g -  Tare;//除去皮重的ADC數(shù)值
                        Weight_Coe = 500000 / Weight_Coe;//放大1000倍的斜率
                        Tare_Coe = Weight_Coe * Tare;//皮重的重量,放大1000倍之后的
                        Wr_20_Long(0XD3B8,EEROM_20Long);//保存數(shù)據(jù)到EEPROM
                        LED2 = 1;
                }


作者: Hephaestus    時(shí)間: 2022-4-27 19:50
按鍵當(dāng)然可以省,但是你要如何操作才能把去皮、開(kāi)機(jī)和校準(zhǔn)功能都給實(shí)現(xiàn)呢?我感覺(jué)硬件去掉兩個(gè)鍵,軟件復(fù)雜度要增加10倍。
作者: zhth1979    時(shí)間: 2022-4-27 21:35
Hephaestus 發(fā)表于 2022-4-27 19:50
按鍵當(dāng)然可以省,但是你要如何操作才能把去皮、開(kāi)機(jī)和校準(zhǔn)功能都給實(shí)現(xiàn)呢?我感覺(jué)硬件去掉兩個(gè)鍵,軟件復(fù)雜 ...

這個(gè)例程中的key1 和key2鍵就是標(biāo)定使用,其它時(shí)間不用!我想用開(kāi)機(jī)和去皮鍵代替這兩個(gè)鍵標(biāo)定。
作者: yzwzfyz    時(shí)間: 2022-4-28 12:42
CPU讀到的是電壓值V,輸出的是重量W,就必須有一個(gè)V-W的表或公式。
程序只要根據(jù)讀的的V,經(jīng)公式計(jì)算或查表就可以得到對(duì)應(yīng)的W值。
通常用表比較方便。
你當(dāng)然可以將這個(gè)V-W轉(zhuǎn)換表放進(jìn)24C02里,屆時(shí)你只要會(huì)從24C02取表查尋就可以了。
如果是公式,直接計(jì)算出結(jié)果就可以了。其它就不必了。
作者: lkc8210    時(shí)間: 2022-4-28 12:47
加長(zhǎng)短按檢測(cè)就可以了~
作者: 鄭漢松    時(shí)間: 2022-4-28 17:42
用不同重量砝碼多次測(cè)量記錄AD值,用MATLAB算出曲線公式
作者: zhth1979    時(shí)間: 2022-4-29 09:22
yzwzfyz 發(fā)表于 2022-4-28 12:42
CPU讀到的是電壓值V,輸出的是重量W,就必須有一個(gè)V-W的表或公式。
程序只要根據(jù)讀的的V,經(jīng)公式計(jì)算或查 ...

可能我表達(dá)的不清楚,我現(xiàn)在是用公式y(tǒng)=kx+b計(jì)算的,這個(gè)傳感器是線性的,只要我用兩個(gè)按鍵按下,在這條斜線上取兩點(diǎn)求斜率就行了,上面例程是取兩點(diǎn)的數(shù)據(jù)保存在EEPROM里,主程序的功能我都寫(xiě)好了,按鍵按下顯示按鍵的值,不按閃三秒就返回顯示實(shí)時(shí)壓力值。如果在不動(dòng)或不影響主程序的情況下實(shí)現(xiàn)標(biāo)定,兩個(gè)方案:A.直接外接一個(gè)24c02加組合按鍵來(lái)實(shí)現(xiàn),并實(shí)時(shí)顯示標(biāo)定的兩個(gè)點(diǎn)的AD值。B.如例程一樣,直接把這個(gè)標(biāo)定程序放進(jìn)main函數(shù)里,但這種方式我嘗試過(guò),會(huì)出現(xiàn)兩個(gè)問(wèn)題:1.不能顯示兩個(gè)點(diǎn)的AD值,顯示時(shí)會(huì)和主程序要顯示的內(nèi)容沖突(例程序是用兩個(gè)小燈指示解決)。2.組合鍵或單按鍵都不能把這兩點(diǎn)值保存到EEPROM(其它按鍵如加減可以把加減的數(shù)字保存到EEPROM)不是很明白!
作者: zhth1979    時(shí)間: 2022-4-29 09:24
鄭漢松 發(fā)表于 2022-4-28 17:42
用不同重量砝碼多次測(cè)量記錄AD值,用MATLAB算出曲線公式

可能我表達(dá)的不清楚,我現(xiàn)在是用公式y(tǒng)=kx+b計(jì)算的,這個(gè)傳感器是線性的,只要我用兩個(gè)按鍵按下,在這條斜線上取兩點(diǎn)求斜率就行了,上面例程是取兩點(diǎn)的數(shù)據(jù)保存在EEPROM里,主程序的功能我都寫(xiě)好了,按鍵按下顯示按鍵的值,不按閃三秒就返回顯示實(shí)時(shí)壓力值。如果在不動(dòng)或不影響主程序的情況下實(shí)現(xiàn)標(biāo)定,兩個(gè)方案:A.直接外接一個(gè)24c02加組合按鍵來(lái)實(shí)現(xiàn),并實(shí)時(shí)顯示標(biāo)定的兩個(gè)點(diǎn)的AD值。B.如例程一樣,直接把這個(gè)標(biāo)定程序放進(jìn)main函數(shù)里,但這種方式我嘗試過(guò),會(huì)出現(xiàn)兩個(gè)問(wèn)題:1.不能顯示兩個(gè)點(diǎn)的AD值,顯示時(shí)會(huì)和主程序要顯示的內(nèi)容沖突(例程序是用兩個(gè)小燈指示解決)。2.組合鍵或單按鍵都不能把這兩點(diǎn)值保存到EEPROM(其它按鍵如加減可以把加減的數(shù)字保存到EEPROM)不是很明白!
作者: zhth1979    時(shí)間: 2022-4-29 09:27
Hephaestus 發(fā)表于 2022-4-27 19:50
按鍵當(dāng)然可以省,但是你要如何操作才能把去皮、開(kāi)機(jī)和校準(zhǔn)功能都給實(shí)現(xiàn)呢?我感覺(jué)硬件去掉兩個(gè)鍵,軟件復(fù)雜 ...

是的,我現(xiàn)在打算不省這兩個(gè)按鍵或用組合鍵(如up+unit和down=unit)來(lái)取這兩點(diǎn),不知道可行不?
作者: zhth1979    時(shí)間: 2022-4-29 09:32
lkc8210 發(fā)表于 2022-4-28 12:47
加長(zhǎng)短按檢測(cè)就可以了~

一開(kāi)始我也是這樣處理的,但這種會(huì)出現(xiàn)誤操作把斜率系數(shù)改變掉!還有就是我按上面的例程總是保存和顯示這兩個(gè)AD值,(按下按鍵1顯示0點(diǎn)的AD值并保存,按下按鍵2顯示500g的AD值并保存)




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