什么是電子秤
電子秤(英文名:electronic balance)是衡器的一種,是利用胡克定律或力的杠桿平衡原理測定物體質量的工具。按結構原理可分為機械秤、電子秤、機電結合秤三大類。
電子秤主要由承重系統(如秤盤、秤體)、傳力轉換系統(如杠桿傳力系統、傳感器)和示值系統(如刻度盤、電子顯示儀表)3部分組成。
基于stm32的電子秤方案大全(一)
基于STM32的多功能電子秤設計
題目要求:
1、基本部分:
(1)能用鍵盤設置單價,稱重后能同時顯示重量、單價和總額;電子計價秤:最大稱重為10.000公斤,重量誤差不大于±0.1%;
a、重量顯示為5位數碼,單位為公斤,最大重量顯示值為99.999公斤;
b、單價金額顯示為5位數碼,單位為元,最大單價金額顯示值值為999.99元;
c、總價金額顯示為6位數碼,單位為元,最大總價金額顯示值值為9999.99元, 總價金額誤差不大于0.01元;
(3)具有去皮功能和總額累加計算功能;
(4)能預存10種商品的單價;可以隨意調出使用
(5)測量并顯示環境溫度,溫度測量誤差不大于1℃;
(6)稱量0-10kg稱重;
(7)語音播報測量結果
2、發揮部分:
(1)具有實時時鐘顯示并具有掉電保護,可顯示日歷時鐘(年、月、日、時、分、秒);
(2)擴展高精度A/D轉換器,提高電子計價秤測量精度,測量誤差不大于±0.01%;
(3)能預存10種商品的名稱(或代號)和商品的單價;
單元模塊設計:
1、主控芯片模塊
2、TFT液晶屏模塊
3、稱重模塊
4、語音播報模塊
5、24bitAD HX711轉換模塊
6、軟件部分
模塊介紹:
1、主控芯片模塊
在該制作中,我們采用了STM32為主控芯片,主要是考慮到HX711是24bit的AD,運算量大,且我們的制作還加設了TFT彩色液晶模塊,語音播報模塊等的外設,普通的MCU的刷屏和運算速度是不夠的,所以我選擇了STM32作為主控芯片。下面是關于芯片的主要介紹:STM32F103xC 、STM32F103xD 和STM32F103xE 增強型系列使用高性能的ARM? Cortex?-M3 32位的RISC內核,工作頻率為72MHz,內置高速存儲器( 高達512K字節的閃存和64K 字節的SRAM),豐富的增強I/O 端口和聯接到兩條APB總線的外設。所有型號的器件都包含3個12位的ADC、4個通用16位定時器和2 個PWM定時器,還包含標準和先進的通信接口:多達2 個I2C 接口、3 個SPI接口、2個I2S 接口、1個SDIO接口、5個USART接口、一個USB接口和一個CAN接口。
2、TFT彩色液晶模塊
TFT-LCD即薄膜晶體管液晶顯示器。其英文全稱為:Thin Film Transistor-Liquid Crystal Display。TFT-LCD與無源TN-LCD、STN-LCD的簡單矩陣不同,它在液晶顯示屏的每一個象素上都設置有一個薄膜晶體管(TFT),可有效地克服非選通時的串擾,使顯示液晶屏的靜態特性與掃描線數無關,因此大大提高了圖像質量。TFT-LCD也被叫做真彩液晶顯示器。該模塊有如下特點:
1、320×240的分辨率。
2、16位真彩顯示。
3、自帶觸摸屏,可以用來作為控制輸入。
4、通用的接口,除了ALIENTEK MiniSTM32開發板,該液晶模塊還可以使用在優異特、 STMSKY、紅牛等開發板上。
這里在硬件上,TFTLCD模塊與IO口對應關系如下:
LCD_LED對應PC10;
LCD_CS對應PC9;
LCD _RS對應PC8;
LCD _WR對應PC7;
LCD _RD對應PC6;
LCD _D[17:1]對應PB[15:0];
TFTLCD顯示需要的相關設置步驟如下:
1) 設置STM32與TFTLCD模塊相連接的IO。
這一步,先將我們與TFTLCD模塊相連的IO口設置為輸出,具體使用哪些IO口,這里需要根據連接電路以及TFTLCD模塊的設置來確定。
2) 初始化TFTLCD模塊。
其實這里就是上和上面OLED模塊的初始化過程差不多。通過向TFTLCD寫入一系列的設置,來啟動TFTLCD的顯示。為后續顯示字符和數字做準備。
3) 通過函數將字符和數字顯示到TFTLCD模塊上。
觸控部分:
電阻式觸摸屏利用壓力感應進行控制。電阻觸摸屏的主要部分是一塊與顯示器表面非常配合的電阻薄膜屏,這是一種多層的復合薄膜,它以一層玻璃或硬塑料平板作為基層,表面涂有一層透明氧化金屬(透明的導電電阻)導電層,上面再蓋有一層外表面硬化處理、光滑防擦的塑料層、它的內表面也涂有一層涂層、在他們之間有許多細小的(小于1/1000英寸)的透明隔離點把兩層導電層隔開絕緣。 當手指觸摸屏幕時,兩層導電層在觸摸點位置就有了接觸,電阻發生變化,在X和Y兩個方向上產生信號,然后送觸摸屏控制器。控制器偵測到這一接觸并計算出(X,Y)的位置,再根據獲得的位置模擬鼠標的方式運作。這就是電阻技術觸摸屏的最基本的原理。
電阻屏的特點有:
1)是一種對外界完全隔離的工作環境,不怕灰塵、水汽和油污。
2)可以用任何物體來觸摸,可以用來寫字畫畫,這是它們比較大的優勢。
3)電阻觸摸屏的精度只取決于A/D轉換的精度,因此都能輕松達到4096*4096。
3、稱重模塊
滿量程輸出電壓=激勵電壓x靈敏度2.0mv/v
例如:供電電壓是5v乘以靈敏度2.0mv/v=滿量程10mv
接線:紅線輸入電壓+,黑線輸入電壓-,綠線輸出信號+,白線輸出信號- 安裝方式:懸臂梁安裝方式
4、語音播報模塊
WT588D 語音芯片是一款功能強大的可重復擦除燒寫的語音單片機芯片。WT588D 讓語音芯片不再為控制方式而尋找合適的外圍單片機電路,高度集成的單片機技術足于取代復雜的外圍控制電路。配套 WT588D VoiceChip 上位機操作軟件可隨意更換 WT588D語音單片機芯片的任何一種控制模式,把信息下載到 SPI-Flash 上即可。軟件操作方式簡潔易懂,撮合了語音組合技術,大大減少了語音編輯的時間。完全支持在線下載,即便是 WT588D 通電的情況下,一樣可以通過下載器給關聯的 SPI-Flash 下載信息,給 WT588D語音芯片電路復位一下,就能更新到剛下載進來的控制模式
本作品的語音播報模塊使用了一線串口控制模式,可通過發碼端控制語音播放、停止、循環播放和音量大小,或者直接觸發 0~219 地址位的任意語音,發碼速度 600us~2000us; 有兩種輸出方式:PWM 和 DAC ,PWM 輸出可直接推動 0.5W/8Ω的揚聲器,DAC 輸出外接功放,音質好。由于本作品對音質沒有過高要求,所以使用PWM輸出方式。
使用WT588D語音播報模塊時需要使用語音合成軟件合成語音,然后通過Voice_Chip_V-B軟件將語音對應特定地址編譯成bin文件下載進WT588D模塊中。
5、24bitAD HX711轉換模塊
HX711 采用了海芯科技集成電路專利技術,是一款專為高精度電子秤而設計的 24 位 A/D 轉換器芯片。與同類型其它芯片相比,該芯片集成了包括穩壓電源、片內時鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應速度快、抗干擾性強等優點。降低了電子秤的整機成本,提高了整機的性能和可靠性。
該芯片與后端 MCU 芯片的接口和編程非常簡單,所有控制信號由管腳驅動,無需對芯片內部的寄存器編程。輸入選擇開關可任意選取通道 A 或通道 B,與其內部的低噪聲可編程放大器相連。通道 A 的可編程增益為 128 或 64,對應的滿額度差分輸入信號幅值分別為±20mV或±40mV。通道 B 則為固定的 64 增益,用于系統參數檢測。芯片內提供的穩壓電源可以直接向外部傳感器和芯片內的 A/D 轉換器提供電源,系統板上無需另外的模擬電源。芯片內的時鐘振蕩器不需要任何外接器件。上電自動復位功能簡化了開機的初始化過程。 特點:
? 兩路可選擇差分輸入
? 片內低噪聲可編程放大器,可選增益為 64 和128
? 片內穩壓電路可直接向外部傳感器和芯片內A/D 轉換器提供電源
? 片內時鐘振蕩器無需任何外接器件,必要時也可使用外接晶振或時鐘
? 上電自動復位電路
? 簡單的數字控制和串口通訊:所有控制由管腳輸入,芯片內寄存器無需編程
? 可選擇 10Hz 或 80Hz 的輸出數據速率 ? 同步抑制 50Hz 和 60Hz 的電源干擾
? 耗電量(含穩壓電源電路): 典型工作電流:《 1.7mA, 斷電電流:《 1μA ? 工作電壓范圍:2.6~ 5.5V
? 工作溫度范圍:-20~ +85℃ ? 16 管腳的 SOP-16 封裝
6、軟件部分 TFT驅動部分:
void LCD_WR_REG(u8 data) 寫寄存器函數
u16 LCD_ReadReg(u8 LCD_Reg) 讀寄存器
void LCD_WriteRAM_Prepare(void) 開始寫GRAM
u16 LCD_ReadPoint(u16 x,u16 y) 讀取個某點的顏色值
void LCD_DisplayOn(void) //LCD開啟顯示/ void LCD_Clear(u16 Color) 清屏函數
void LCD_Init(void) 初始化lcd
void LCD_DrawPoint(u16 x,u16 y) 畫點
void LCD_Fill(u16 xsta,u16 ysta,u16 xend,u16 yend,u16 color) 在指定區域內填充指定顏色
void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2) 畫線
void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2) 畫矩形
void Draw_Circle(u16 x0,u16 y0,u8 r) 在指定位置畫一個指定大小的圓
void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode) 在指定位置顯示一個字符
void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size) 顯示數字
void LCD_Show2Num(u16 x, u16 y, u16 num, u8 len,u8 size,u8 mode) 顯示2個數字
void LCD_ShowString(u16 x,u16 y,const u8 *p) 顯示字符串
WT588D部分:
void wt588d_init(void) WT588D初始化
void send_dat(u8 addr) 以一線串口方式發送數據到WT588D
void pronounce_num(u16 t) 整數部分數字發音 范圍(0~9999)
void pronounce_point3num(u16 t) 小數部分數字發音范圍(0~0.999)
void pronounce_point2num(u8 t) 小數部分數字發音范圍(0~0.99) HX711部分:
u32 Read_HX711(void) 該函數讀取HX711采集回來的經過放大以后的值
u32 Sampling(void) 該函數將AD采樣回來的值算術平均數字濾波,去掉最低和最高后的平均值
main.c部分:
void UI(void) 設置界面
main函數中整合各個模塊的函數實現電子秤稱重功能,TFT顯示功能等等。
評論
查看更多