基于STM32点钞机控制系统设计与实现

2016-11-10 10:39刘白杨李柏林陈嘉伟
电子测试 2016年19期
关键词:点钞预置清点

程 钢,刘白杨,李 颖,李柏林,梁 叶,陈嘉伟

(邵阳学院,湖南邵阳,422000)

基于STM32点钞机控制系统设计与实现

程 钢,刘白杨,李 颖,李柏林,梁 叶,陈嘉伟

(邵阳学院,湖南邵阳,422000)

针对传统点钞机智能化程度低的问题,提出了基于STM32的智能点钞机控制系统设计方法,实现了对多种纸币计数、找零和长期不间断满负荷工作等功能,系统的创新点是设计并实现了简易电机驱动电路实现了电机长期不间断可靠控制,并且提出并通过程序实现了多种纸币鉴别和找零算法,实验结果表明基于STM32点钞机控制系统控制性能稳定、精度高、工作时间长和损耗小等特点。满足了大量多种纸币长期不间断计数工作的要求,有效地提高了纸币清点工作效率。

STM32;点钞机;电机驱动;多纸币识别

0 引言

点钞机是一种用来统计纸币数量和金额并进行鉴别的机器。随着时代的发展,点钞机的研究步伐也在加快,有多种多样的更加方便点钞机被开发者们研制出来。并且更加精确的验钞方案也体现在点钞机中,使得鉴伪更加精准。由于体会到现在社会中银行工作人员以及各大商店职员面对众多混合在一起的不同类型的纸币难于快速计算清楚金额,长时间的高强度工作导致人工疲劳,降低工作效率,容易出现错误,造成单位过个人财产的损失。为了能减少劳动强度,提高工作效率并减少错误率,我们设计了这款操作简便的多种纸币点钞机,从而解决工作中零散纸币清点困难的问题。

1 工作原理

本设计采用了ST意法半导体的STM32芯片,STM32采用了专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核,比较广泛的运用在平衡小车、四轴飞行器等控制系统。STM32CPU处理速度快,处理效率高,保证了点钞的时候不会出现漏点的情况,提高了点钞机的可靠性,并且STM32功耗较低,功能齐全,包含3个12位的ADC,运用它齐全的功能可以减少很多其它的外围模块的使用,提高了可靠性,并且拥有定时器中断和外部中断等丰富的中断系统。系统采用STM32作为控制与计算模块,检测部分运用红外对射传感器,运用外部中断检测纸币的存在,有纸币经过时会立即进入外部中断进行计数,杜绝了漏检的现象。接近开关用于检测启动电机点数的时机。显示部分运用了一块TFT液晶,可以显示丰富的内容,包括点钞详细信息和报警信息。传动模块通过单片机控制电机的启动与停止,纸币的出口与入口之间有红外对射管、磁检测传感器、荧光检测。纸币经过送钞板的时候会遮住红外对射管发出的红外线,当检测到的信息与真币相符合的时候点钞机进行计数,否则就会报警。

图1.1 整体框图

图2.1 红外对管

2 模块设计

2.1计数部分

计数模块通过单片机ADC通道1采集红外对管的电压变化判断纸币是否经过,单片机具有强大的数据处理和检测功能,可以简单方便的实现纸币的计数以及总额的计算。电路图如图所示

纸币经过时发射管发出的红外光被纸币遮挡之后反射被接收管接收,此时红外接收管导通,三级管导通,OUT端被接地输出低电平,检测到OUT端为低电平时即说明有纸币经过。此时若磁检测与荧光检测信息与真钞相匹配,则计数。

2.2显示部分

采用TFT屏,将不同面值的纸币分开显示 ,并显示出总额,方便工作人员清点零散纸币。检测到假钞或出现卡钞故障时会显示相应的警报信息。显示效果如图:

图2.2 TFT显示

2.3传动与启动部分

传动部分由一个交流电机和一个直流电机组成,通过接近光耦检测纸币的存在与否启动与停止。

启动部分由接近光耦组成。接近光耦由一个发光二极管、一个光敏二极管和一个三极管组成,输出端经过电阻连接STM32的ADC模块引脚PA3,发射管和接收管与单片机之间需要接一个400欧姆的上拉电阻限流,当二极管发出的光经过物体反射使光敏二极管导通,同时三极管也被导通,当有纸币放入时,由于纸币的反射,光敏二极管导通,OUT端输出低电平,说明已放入纸币,启动电机。反之停止电机。

交流电机通过传动带、传动轮,将动力输送给各传动轴,将纸币从进钞挡板上逐张捻走。直流电机负责接钞爪轮。

通过交流电机控制电路控制电机的启动与停止。当接近开关检测到有纸币放到进钞挡板上时,接近开关输出给单片机低电平,当单片机检测到电平变化的时候通过单片机的PB0和PB2口控制交流电机正转和反转,PB0闭合的时候通过电阻R3给D2双向晶闸管门级一个电压,使双向晶闸管导通,电机正转。若PB2闭合,则D1双向晶闸管导通,电机反转。检测到有纸币的时候闭合PB0使电机正转,开始点钞。需要将纸币退出的时候闭合PB2使电机反转,没有纸币的时候交流电机停止。交流电机驱动电路如图所示:

直流电机通过降压整流电路将220V的交流电降压后整流为9V的直流电。用于带动接钞爪轮的直流电机,直流电机的速度不能太快,也不能太慢,太快会出现飞钞现象,太慢了与交流电机进钞的速度不匹配会导致纸币出钞时几张纸币重叠在一个爪上,并且纸币会撞击到接钞爪的底部,不利于对纸币的保护,可以通过单片机PWM调节直流电机的转速。链接单片机的PB1口。当检测到有纸币的时候启动直流电机,没有纸币的时候停止。

图2.3 交流电机驱动电路

3 软件设计

3.1计数与验钞部分

计数函数分为预置数计数函数和非预置数计数函数,在计数函数中完成纸币张数的计数和计数总面额的计算以及纸币真伪的检验。使用STNM32的外部中断提高纸币的检测速度,红外传感器检测到纸币经过时,输出高电平,此时立即进入中断进行计数以及真伪检测,减少漏检的几率,即使是一毛的纸币也不会出现漏检,以达到可以清点十元以下的纸币的目的(清点十元以下的纸币的时候会自动关闭验钞功能)。

由于预置数和非预置数的时候条件会不一样,所以不能放在一起。

红外检测:通过对红外对管信号的采集判断时候有纸币经过,并且采集红外线的透射率,人民币与普通纸张对红外线不同波长的吸收能力是不一样的,1999年版的100元对300nm波长的平均透射率大概为17%,然而假币的平均透射率只有5%左右。假设有一束光强为I0的入射光,透过一反射率为K,介质吸收系数为α,厚度为d的介质后透射光强为I,则I=I0(1-K)exp(-αd)。利用这个特性通过ADC采集信号判断水印部分对红外线的透光率,透光率与真钞对比作为辨别真伪的判据之一。

荧光检测:人民币使用专业纸张,含棉成分较高,紫外线照射只会产生微弱的荧光。而假钞一般使用的是通过漂白处理的普通纸张,在紫外线的照射下会产生荧光反应,通过检测荧光的强度来辨别真钞与假钞,假钞的荧光强度会比真钞强。荧光强度作为真伪判据之一。

磁性检测:人民币印刷油墨中含有磁性物质,并且油墨的分布有一定的规律,以油墨的分布情况作为辨别真伪的依据,通过在送钞板上放置5个磁性传感器对人民币的左、左中、中间、右中、右五个部分的磁分布情况进行检测,把检测的信号通过放大滤波之后送给单片机进行对比。

当上面的数据都与真钞的相符合,单片机会计数并计算面值,否则会报警停止点钞。

3.2电机控制部分

电机控制分为预置数控制和默认控制。

停止电机:1、接近开关检测到纸币清点完的时候停止电机。2、预置数模式下点钞数目达到预置数的时候停止电机。

启动电机:1、接近开关检测到纸币放入的时候启动电机。2、预置数模式下达到预置数时停止电机后从出钞挡板取出纸币的时候启动电机(条件是进钞挡板上还有纸币没点完)。

3.3按键部分

将按键扫描放在循环里面,每执行一次程序就会执行一次按键扫描。当检测到相应的按键则执行相应的功能,包括设置预置数、复位、清零。

图3.1 程序流程图

4 功能简介

4.1预置点钞

放置纸币前,可以通过按键启动预置数模式,并设置张数,清点到预置张数,点钞机会自动停止,取走出钞的时候点钞机会自动清零上次计数并继续点钞,直到计数再次达到预置数或者纸币清点完的时候停止。按下预置数清零按钮可以清零预置数,这时可以重新设置预置张数。

4.2延时数钞

当纸币放入点钞机的时候,点钞机不会马上启动电机,延时一秒以保证已准备好,一秒之后开始点钞,有助于保护纸币,保证纸币不会在没有放正的时候就被捻钞胶圈捻走。

4.3丰富显示

利用TFT可以显示更加丰富的内容,包括每次点钞的总额、当前点钞面值、每种面值的张数。预置数模式下会显示当前设置的预置张数。显示多种警报信息,检测到假钞会显示当前假钞的面值,发生警报会显示发生警报的原因。

4.4点多种面额

可以点任意的面额,最小的可以点一毛的纸币,点小于10元的人民币关闭验钞功能。方便零钱的清点。

4.5卡钞保护

验钞的时候难免出现验钞机故障导致钱币卡在验钞机里面的情况,为了不损坏纸币,卡钞的时候立即停止电机并显示警报。

4.6自动点钞

每次将纸币放入进钞挡板上时,点钞机会自动清零上次计数并开始点钞,不用人员手动复位清零。

5 功能实现程序设计

5.1预置点钞

预置点钞主要实现了点到预置的数目点钞机自动停止,当取走出钞口的纸币时会自动启动点钞机并且清零计数后点钞。其中遇到的问题在于:⑴预置数模式下的条件比正常模式复杂。因此将预置数的函数与非预置数函数分开写,启动预置数模式的时候调用预置数函数,默认为正常模式。(2)当点钞达到预置数停止电机的时候往往会还有一张纸币会

留在送钞板上,这时程序会卡在在计数与检测函数的while(PA1)循环中无限循环,直到纸币被送出来,但是循环不会启动电机,导致程序没有办法继续启动电机,所以可以加一句if(yzs==num) PA1=0;(yzs为预置数,num为点钞机计数,PA1判断是否有纸币),在达到预置数的时候通过这条指令跳出循环。

5.2延时数钞与自动点钞

为了保证纸币不会在还没有放好的时候就被捻走,在检测到有纸币放入之后延时一秒再启动电机。并且每次放入纸币的时候都会自动清零计数。由于程序每执行一次循环都会检测是否有纸币存在,为了避免每次循环都会执行延时和清零,需要给延时和清零加一个条件。if(PA2&&(delay_flag<3)&&(CLR_flag<3))

{CLR_flag=CLR_flag+1;delay_flag=delay_flag+1; },(PA2为判断是否有纸币放入进钞挡板)只有在delay_flag==1和CLR_flag==1的时候才延时和清零,执行一次后下一次循环flag等于2,就不会再延时清零了。Flag加到3的时候不再进入if,这样保证了flag不会因为加到变量的上限值而被自动清零,也可以少执行几个语句。然后在数完取走纸币之后再将delay_flag与CLR_flag清零,以保证下次放入纸币的时候延时和清零函数会再次被执行。

图6.1 点钞机实物结构图

6 作品测试

控制系统设计好之后需要通过实物进行测试,进行调试以及功能的进一步完善。

经测试,本点钞机可以很好地完成零散纸币的清点,不会出现漏检的情况,可以完整地记录下当前清点的纸币的总额以及每种金额的张数,这正是我们想要实现的功能,为零散纸币的清点提供方便。

7 结束语

该智能多种纸币点钞机以STM32作为控制芯片,通过ADC采集数据。以解决零钱清点困难的问题,降低工作人员工作强度以及降低成本为核心,对零钱进行分类计数。完成了对零散纸币进行清点计数功能,更加适合超市、商店等需要对零钱进行清点的场所。

制作过程中也遇到了多种困难,最初因为单片机检测纸币频率过慢导致纸币漏检,后来通过外部中断提高了纸币检测效率,杜绝了纸币漏检现象。传感器的稳定性也为点钞机的设计带来了困难,设计新的电路之后解决了传感器稳定的问题。电机驱动部分也花了不少功夫。目前点钞机还不能很好地分辨每种纸币的面值,以后还将继续完善。

[1] 李国华.基于 TMS320F2812的小型纸币鉴伪/清分机[J].电子技术,2004,(8):24-26

[2] 陶学恒,芦金石,赵 昕,等.新型点钞机的技术原理及可视化设计[J].机电产品开发与创新,2006,19(5):77-83.

[3] 洪承煜,沈 哲,洪志全.小型智能点钞机的研制[J].工业控制计算机,2008,21(10):66-67

[4] 王爽.点钞机控制系统及伪币鉴别方法研制[D]. 北京:北方工业大学, 2013. 1-46

[5] 冯继刚.第五套人民币防伪特征的研究[J].中国人民公安大学学报2004,(2):31-33

[6] 高正中,龚群英,宋森森.基于STM32的智能平衡小车控制设计[J].现代电子技术,2016,39(14):47-48

程钢,(1994年3月-)男,汉族,四川省泸州市,本科生,研究方向:电器自动控制系统分析与设计

刘白杨(通讯作者),(1987年3月-)男,汉族,河北省邢台市,硕士,讲师,研究方向:电气自动化控制系统分析与设计

Design of Currency Counter Control System Based on STM32

Cheng Gang,Liu Baiyang,Li Ying,Li Bolin,Liang Ye,Chen Jiawei
(Shaoyang University,Shaoyang,422000,China)

Aimed at the traditional currency counter score badly on control performance,a method of currency counter control system design based on STM32 is proposed.This system can run in over load.The simple motor driver circuit is improved to meet motor performance in continue term working.the experimental results show that control performance of control system is stable,high precision,long hours and low dissipation. The improved currency counter system meets long term operation, uninterrupted work counting and currency counting efficiency is improved effectively.

STM32; currency counter; motor driver; currency notes detection

校企合作电气类专业人才培养省级示范基地建设项目(湘教通〔2015〕274号);2015年度湖南省大学生研究性学习和创新性实验计划项目(湘教通[2015]269号)

猜你喜欢
点钞预置清点
基于排队论的水下预置反舰导弹部署优化
《手持式多指多张点钞法》教案
原位清点法应用于术前物品清点的效果研究*
提高中职财会专业学生点钞技能的思考
细节决定成败——谈谈手工点钞实训课程的教学方法
互联网对商业银行零币清点工作的实证分析
可预置工作点脉动直流工况电感测量仪研制
多级网络物资预置—前送模型及改进布谷鸟搜索算法研究
预置缝线减张缝合法预防低位直肠癌术后吻合口瘘效果观察
现代图书管理系统中的动态清点工作——以 MELINETS为例