你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于stm32f103的双模式的电子秤

[复制链接]
STMCU小助手 发布时间:2022-9-4 16:54
1.系统设计目标# Y, A) ]1 ]. ?" ^- d

5 d' {' [6 _& f5 m* A5 ?: X% `, Y本文所设计的智能电子秤系统可以首先能够进行模式的切换,能够切换到模式1:物品称重模式和模式2:药品称重模式。在模式1下,可以通过按键设置物品单价,从而计算出总金额;在模式2下,可以通过按键来设置上下限阈值,提高称重的精准度。同时,在这两种模式下都能够对称重的物品或者药品实时显示重量,并且能够实现去毛重,控制精度等功能。
( f$ r1 W/ k6 ?0 p# Q9 N
" J$ ^! }7 w  y0 \' c  u6 q; o0 \. w% r) j根据设计要求,系统具体实现功能如下:. N. a. z7 Z$ r! f! T) I5 F5 s
显示功能:SSD1315能显示称重的质量、单价、总金额以及上下限额。. ]) T/ p+ {3 U8 K1 X6 ^5 b
模式切换功能:通过独立按键可以进行模式的选择,可以选择模式1:物品称重模式和模式2:药品称重模式
, _2 I1 `  p! \- K. X: {称重功能:由HX711压力传感器来实现称重的功能,通过A/D转换将压力信息转换成重量信息,可以实时反馈称重结果。9 I# n; j% S. }4 {: ]) |' I! J; Z
去毛重功能:可以通过独立按键来控制去毛重的功能。
2 V' k$ ~' `( U) ~8 w1 o校准功能:在模式选择完成后,进入称重模式以后会进行自动校准,将未放置重物的称重盘设置为0g。2 q7 I) |; |+ j  Y  a" j. q/ q: u
报警功能:可以设置称重的阈值上限和阈值下限,若超过阈值上限或者阈值下限,可以进行报警。
/ W+ x8 h; k7 z4 w3 S  i5 q2.具体硬件实现1 z$ H& K1 l; W. j% G
$ R1 A# J; X0 J- h
2.1主控芯片
7 N1 s$ G7 C+ z, \
. `! d; @9 V7 m" dSTM32是ST公司基于ARM Cortex-M内核开发的32位微控制器,STM32常应用在嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等,STM32功能强大、性能优异、片上资源丰富、功耗低,是一款经典的嵌入式微控制器,在单片机和嵌入式领域被广泛应用。图3-1所示为stm32f103c8t6最小系统板。8 s, h5 l& A5 q: w" H$ I3 i! e

' k& C0 _+ l- ~( v 2R(S0`U20VZ~Z[EXSI_P8Q1.png + E+ m2 a9 F! F! i7 q

1 N; l0 ?$ X) F0 \2.2称重传感器( n& ^# Z3 I' i8 e
3 t0 P" H  m. V! {
采用HX711压力传感器芯片,HX711压力传感器芯片一款高精度的24位A/D转换器芯片。该芯片集成了稳压电源、片内时钟振荡器等外围电路,能够很好地将物品的压力信号转换成数字信号传输给MCU,MCU在经过一系列的算法将最后的重量信息在SSD1315显示屏上进行显示。HX711压力传感器有四个引脚,在此次设计中,GND引脚接低电平、VCC引脚接3.3V高电平、SCK引脚接PB0用来实现时钟输入、DT引脚接PB1用来A/D转换数据的输入。HX711压力传感器的具体电路图如图3-5所示。  B' g  E5 N/ X6 N+ W0 G) k

. h/ U+ ]: t, a# {9 z4 AHX711压力传感器主要特点如下
& g, _5 S2 L; w" m& W8 v应用和测量范围广,通过应变片可以制作成各种机械传感器。4 _: ]. C. K) S, }; T
分辨力和灵敏度高,精度较高。0 J/ n; ~: ~6 N& w4 i5 g5 d( m
结构轻小,对试件影响小, 对复杂环境适应性强,可在高温、高压、强磁场等特殊环境中使用,频率响应好。% Z, F/ ?" i& ?( q0 I, Q
商品化,使用方便,便于实现远距离、自动化测量。  M; p# ]4 i' J. j2 q0 \) k0 z
/ h- x7 ]. x0 e, p- m. P8 n
@X)IH{M2N)ZIVRD`WJV]{2A.png 5 b5 V: j# w( D* a

7 h% V+ k) R# m, e1 ~" [. |' t/ n2.3SSD1315OLED显示屏
  ?1 I! G; t2 ?, A& P9 h/ T1 f( R5 e- A5 `) S0 F
        采用SSD1315显示屏,SSD1315 是一款单芯片 CMOS OLED,带有用于有机/聚合物发光的控制器,二极管点阵图形显示系统。 它由 128 个段和 64 个公域组成。SSD1315 直接从其内部 128 x 64 位图形显示数据 RAM (GDDRAM) 显示数据。数据/命令通过硬件可选 I2C 接口从通用 MCU 发送,SSD1315内嵌的256级对比度控制和振荡器减少了外部的数量组件,适用于需要紧凑尺寸和高输出的便携式应用亮度,如机顶盒、汽车音响、可穿戴电子产品等。
: H* ~' O$ ?/ c% s: k  E1 B8 z
0 P( e. B4 p/ Q( P' f在此次设计中采用的是IIC通信的4针脚0.98寸OLED屏幕,其中GND和VCC分别接0V和3.3V,SCK接PB8用以时钟信号的输入,SDA接PB9用以数字信号的输入' x( o# f# r# S9 E6 U. J

2 [) t) u3 Y) g- Q 9XI_CT(G{1]S}RE(@D`@PMT.png   u' A/ s# y: N) M$ _( h* E8 O
# b! X) f9 k2 w5 ?( a" P- W
2.4按键电路; j# m! G8 |4 j$ a! `0 l: j+ t
) g$ L& T, r$ r( `
      本次设计使用了较多的独立按键, 有的按键是通过按键的下降沿来控制外部中断,其中K1是接在PA4口,用以引发外部中断线4来实现启动称重的功能;K2是接在PB12口,用以引发外部中断线12,在模式1下用以设置单价,在模式2下设置阈值上限;K3是接在PA8口,用以引发外部中断线8,在模式2下主要是用来设置阈值下限;K4接PA1口,用以引发外部中断1,主要是用来进行去毛皮功能的实现。还有一些按键主要是通过循环检测的方式来发挥作用的,其中K5是接在PA2口,在模式1中主要的功能是进行单价的设置,在模式2中主要的功能是用来对阈值上下限的设置。所以独立按键在此次的设计中占有很大的比重。
6 f4 _! B0 h0 M4 v+ u
4 M- Q3 n: u& Y% H Q[DT(_LIFUACC{LZC%W)ME4.png + `: H" G3 Y* p) u
8 |5 {6 H) l, e' D) M6 B" ^
2.5报警电路$ X1 b1 A) w9 H7 E5 f

. `, E8 l. \0 S6 f' g" j- U, @        报警电路的功能是在药品称重模式下,如果称重值超过阈值上限或者低于阈值下限就会发出报警声。主要是通过有源蜂鸣器来实现,当称重值超出预期后,会持续给有源蜂鸣器低电平,使蜂鸣器发出报警声,当数值恢复阈值范围内后,蜂鸣器报警声停止,其中蜂鸣器模块的GND和VCC分别接0V和3.3V,I/O接PA11用以控制蜂鸣器的报警声。报警电路的设计主要是应用于需要比较高精度的测量的场合,在这种场合下,可以对测量物品的上下限进行设置,从而对测量的物品有更好的把握空间。; g; t$ g9 D! u8 E5 x1 W

& `2 X& w0 t  M  | `}FXW5%$YAYGB)HV%0[T4$D.png ! S! U, K; {4 f: g
2 p: K$ e, T/ `8 Z/ ^3 ?+ V! F. V
3.软件设计
% h( P( L( {' Q/ O: E7 n

( U7 G* y+ d. T! |! l- G; G9 d3.1主程序模块
1 J1 y! f9 J9 y4 r& r& _" Q: @: y. }5 O& t5 W
        主程序的功能是进行对模式1:物品称重模式、模式2:药品称重模式、延时程序、显示程序进行初始化,在此基础上执行程序对称重的具体模式进行选择。因为所有的执行程序基本都封装成较为完成的库,所以主程序的执行是比较简单的程序。
, Y! w$ V  m0 ?$ N
8 }+ o9 [6 t7 g8 q9 b1 B X$)9U_CCE(~06NAE`UTZ[SD.png
5 m" X2 }; g$ W- ]9 @
* [% B+ y9 O: P! f0 x4 _5 R7 {3.2模式一
& W3 S( z. \  }0 G' u- h( S9 {0 C3 o- q1 e4 T9 b* l( x3 V
        物品称重模式主要是对物品进行称重,在物品称重模式下,相当于是模式1的主程序,所以此次设计的大部分功能的初始化都要在这个程序中进行实现,同时,物品称重模式还包括了对HX711压力传感器的数据处理、物品单价的设置、进入模式1后的对空的称重盘的校准、去毛重功能的实现以及计算总金额的功能等,是在生活中常用的一种模式。& l  K8 R+ g7 P# n: O
& t' L% O: q6 c) Y. c
7_TXKHNO%$~ERL][Y44%0}9.png
0 \7 \' s5 f% e# j5 D9 i
, y, E. ^6 `. g7 I( S3.3模式二
  V8 a) p* h, Y0 p1 \8 T% f* }  f* Q' K3 Z' W6 i) x7 B
        在药品称重模式下,主要是针对需要高精度的场所,比如说在配置药品剂量的情况下,这样的情况下需要十分精准的电子秤来完成相应的工作,基于这样一种需要,我设计了药品称重模式,这个模式相当于是模式2的主程序,所以模式2所需功能的初始化都需要在此次模式下完成。并且在这个模式下还需要进行对HX711压力传感器数值的处理、对称重质量的上下限阈值的设定、超出阈值的报警设定、进入模式后的校准工作以及完成去毛重的工作等。这个程序的设计主要是针对在需要配置药品时需要精确测量质量的情况下所完成的。
  Z% E0 Y! S  D4 O! A( e
" ]) h$ h9 \! V3 @ AI(@]GO7RQ91[KC]DTZZF{R.png ! V7 w/ v& ^9 T( Y1 B  ^4 B, o* E

' I( [( ?! v5 K7 z3 {: I' S2 G' z3.4进入模式自动清零
0 i& @2 t" Q0 [6 J3 a- |. y% o0 C4 e
4 ^  A; E6 @8 k! {' _& k- f! ~进入模式以后可以进行自动清零的操作,主要做法就是将压力传感器的变化值设置为变量,在进入模式一或者模式二中可以获取压力传感器最初值,然后减掉,可以实现上电清零的操作
1 Z, x3 L! p# g9 D8 D1 I- K, u3 p6 g' X  C
4.效果
; I* J: M7 L  V6 R. H2 U! n% ?
' a5 I7 ~* f" s4.1程序选择模式
# G0 `% k( k! `' }1 B* D! \5 R! {5 t6 ^% p; D0 @, P7 t7 f
系统开机上电后,首先会进入模式选择界面。0 I# v% |# F8 `# h2 a- ^7 @

' _& H& t9 p& `- I8 Y硬件方面,SSD1315显示模块会显示“选择模式”四个字,然后通过独立按键K5来进行模式的选择,通过独立按键K6来选择是否进入称重模式。
/ t% s) e/ P' }1 B
& `/ t# I8 C$ ]/ @6 I7 k软件方面,在模式选择这一软件设计中,会首先进入循环检测的程序中,通过检测PA2口是否有低电平触发来检测是否切换模式。在模式切换完成后,会持续检测PA3口,通过PA3口是否有低电平触发来检测是否进入选择的称重模式。' G  L- `( `' U

4 e5 M6 X' ]9 Q4 f! q6 S8 L. Q J[TT13W185LN)}YNMAOPKRU.png : _0 h, |$ j" {8 p1 z
9 M7 @$ |; ]- K5 G) n: H7 L, v( W
4.2模式14 O+ N$ @- |& x, p2 N% `& L
2 X0 q0 S  y# d5 S; Q" m
在模式选择界面选择完成后,进入模式1后,会首先进行界面的初始化。' z$ B2 R/ ]+ z$ v1 f; b: |

  H/ W" s" h/ e$ T1 H# D& `硬件方面,SSD1315显示模块会首先显示“重量”、“单价”、“总金额”等信息,在未开始称重之前,这三个信息都显示为“0”;HX711压力传感器模块首先会进行初始化,将未放置重物的空的称重盘设置为0g。后续显示和称重功能会等待独立按键K1和K2触发外部中断线4和外部中断线12。
7 e5 x! Q% z0 _; [- c" j4 z0 R; y0 l
8 j' u( P- X& t" |( W: \软件方面,进入模式1后,首先会进行电子秤的校准功能,将空的称重盘设置为0g。若无操作,界面保持初始化界面;若按下独立按键K2会触发外部中断线12,进入单价设置模式,可以通过K5和K6对单价进行设置;若按下独立按键K1会触发外部中断线4,进入重量实时显示模式,会在显示模块中显示实时称重质量,并会实时计算此重量在相应单价下的总金额。
! F/ T2 `; q0 B: G1 U  U
1 i6 K6 d, R# T! l  [4 Q1 X5 u `8A8J5~1ECS9@W{_9Y7L1~H.png
& d) q  V" N9 \  O2 O" f; {) I, o- R8 _# [7 @
4.3模式2
' t& X* G3 X4 Y( z9 A8 Z( g
/ O8 C6 g2 E1 ]1 H- J在模式选择界面选择完成后,进入模式2后,会首先进行界面的初始化
; j8 s  h' d, g5 [# j
/ q8 X+ L9 w2 n! B* t+ Q  m* ]# _6 k硬件方面,SSD1315显示模块会首先显示“重量”、“上限”、“下限”等信息,在未开始称重之前,在三个信息都显示为“0”;HX711压力传感器模块会首先进行初始化,将未放置重物的空的称重盘设置为0g;蜂鸣器模块进行初始化,PA11口置高电平,蜂鸣器进入准备阶段。后续显示功能、称重功能和报警功能会等待独立按键K1、K2、K3触发外部中断线4、外部中断线12和外部中断线8。  M3 d  x6 L2 h2 ?; P% E5 C) V

0 ?6 ^2 Q. O! d软件方面,进入模式2后,首先会进行电子秤的校准功能,将空的称重盘设置为0g。若无操作,界面保持初始化界面;若按下独立按键K2会触发外部中断线12,进入上限设置模式,可以通过独立按键K5和K6对称重的阈值上限进行设置;若按下独立按键K3会触发外部中断线8,进入下限设置模式,可以通过独立按键K5和K6对称重的阈值下限进行设置;若按下对按键K1会触发外部中断12,进入实时重量显示界面,此时,若称重的值在阈值范围外,蜂鸣器就会进入报警模式;若称重的值在阈值范围内,蜂鸣器停止报警模式。8 A& H3 g5 Y. w" Y& Y3 I
: u* t/ X; H0 H7 B; z
M9K4ALP@V_L2[DY`~D9SNYF.png
( r! \, A: u* x* Y) k
% t$ I( `$ W8 m4 o; h5.改进和说明
1 g  Y! ^" x  o$ l8 O% J" y  g' F3 _2 g/ e1 n$ z
5.1改进5 s3 Y0 |1 X7 s
) x* ]/ q& J. K+ O) ^, |+ H
在制作过程中也进行了具体的改进,具体就是在模式一中,将设置金额的单个按键设置为了3*4的矩阵键盘。从而可以将以1元为单位的金额设置改成可以设置成小数。
5 b  n# s' _7 L! k! l
1 }2 O) R0 A3 ^- }& P1 O ON}OH8BEN4}]$T5)[N15}_H.png
5 s3 ]& _, F, A- V/ k
$ |" ]" d( `( Z! m; i& V 5.2不足
4 F# K% r# f! v( t4 f' @0 x
1 l) f$ L# A5 b$ \; W5.2.1+ Y0 q9 |9 \+ r' W

- j4 n8 M: T/ E- g首先一点不足就是在模式一和模式二中传感器没有换,然后精度都是1g的精度,其实可以换一下传感器,将模式二换成更高精度的数值;或者将模式一中的重量去掉一个一位,设置为10g精度的传感器,这样就是比较好的,可以体现模式一和模式二精度的差别。2 e: l5 W  ^. ~% v
0 p! d9 `5 q  h+ e9 ?( e4 m
5.2.22 i) H- ^/ r; b) J
7 o7 K) A; G0 B
其次,没有设置返回选择界面的按键,因为实现这些功能用了六个独立按键,如果再加一个按键实现返回选择界面,按键太多,我就没有加,直接用reset键来实现返回选择界面,如果要实现独立按键返回选择界面的话,就直接加一些代码然后直接加个独立按键就完事了。0 d* a1 b) P% G' T+ w+ m
: b; ^' @; }! B6 v. D6 D8 z
5 ]( ^. `9 u) s* R8 ]. J2 u
用矩阵键盘设置单价的源码在下面的链接,其中包括以下内容
, j" {3 N* h: Z; Z- e; H, O+ R5 u6 G0 A& }; ^
FNN[5WI`9NV6@CJ9]}E.png
- [) S  n; u. E( J9 m
. ~5 c: g' U/ O; e! p9 a2 N/ K————————————————
6 j& \' D  p& {' ~% B. l版权转载自:嵌入式进阶之路
; n- }( \4 U7 n% F/ p1 U
& x; a2 S7 M  F0 `5 z1 w0 [3 ?* r4 W% K! h* w& T9 d
收藏 评论0 发布时间:2022-9-4 16:54

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版