基于555多谐振荡器及STM32的简易智能阻值测量仪
编者按:以提高元件检测效率为目的,开发了一款简易的电阻测量仪。该仪器可同步测量多个元器件的阻值,避免使用万用表对元器件一个个地检测,节约了检测时间。该仪器集成了多个555多谐振荡器作为阻值检测电路以及STM32最小系统作为控制部分,实现了对阻值的自动检测。
0 引言
在电子世界中小到电阻,大到功率器件每一个元器件都有自己的阻值和阻抗,且大部分元器件是以阻值来衡量该元器件是否正常。在元件检验工作中经常使用万用表对元件进行检测,有时为了满足生产而对一批元器件进行全检,涉及的数量比较大,使用万用表进行检测需要重复进行,降低了检验效率。
制作一款简易智能阻值测量仪能在一定程度上提高检测效率,由于全检检测时的阻值在一个范围内波动,使用555 多谐振荡器作为阻值检测电路无需频繁转换电容,价格低廉,结构及原理简单。阻值异常的元件会让此检测电路出现异常,以此筛选出异常的元件。
图1 测量仪系统
1 测量仪方案设计
该测量仪的硬件测量系统由STM32、555 多谐振荡器、按键、显示模块等组成。如图1 所示。
1.1 555多谐振荡器模块
555 多谐振荡器不需要外加起始触发信号,即可产生一定频率和一定幅度的矩形波信号,其频率与外接的阻值和容值有关。
在给555 多谐振荡器模块加电时,由于外接的电容电压不能突变,则555 集成芯片处在置位状态,输出电平U=1,集成芯片内部的放电管Td 截止,Vcc 通过外接R1 和待测元件R2 对电容C 进行充电;当Uc 上升到2/3Vcc 时,输出电平U0=0,放电管Td 导通,电容电压通过待测元件R2、放电管Td 对地放电;当Uc 下降到1/3Vcc 时,输出电平U0 由0 变成1,放电管Td 截止,Vcc 再开始对电容充电,此过程循环往复,在输出端U0形成连续的矩形脉冲[1]。其555 多谐振荡器模块工作波形图如图2 所示。
图2 555多谐振荡器工作波形
其中:T1 ≈ 0.7(R1 + R2)C,T2 ≈ 0.7R2C。
1.2 STM32控制模块
该仪器使用STM32F 系列单片机作为主控芯片,相比51 单片机,该芯片有51 个I/O 口,集成了8 个TIM定时器,除了TIM6、7 外都具有输入捕获功能[2],可以用来测量脉冲宽度,满足进行多个元件测量的需求,如图3 所示。该芯片集成了多个定时器且有多个通道可对外部信号源进行测量,可以实现对555 多谐振荡器的频率测量,并且通过软件计算求得测量阻值,接收通过按键电路输入的阻值阈值,与测量的阻值进行比较,若超过设定范围则报警。
图3 STM32及AT51单片机
1.3 USB模块
该系统使用通用串行总线方式下载程序,该总线采用RS-232 标准,因此需要将通信电平USB 和TTL 电平相互转换。采用CH640G 集成芯片设计USART 串口模块,且在此模块中已将数据的接收发送引脚相互交叉连接,给程序下载提供了一个可靠的路径,如图4 所示。
图4 USB模块
1.4 电源模块
系统中STM32 需要3.3 V 电压工作,而555 多谐振荡器的工作电压为5 V,需要一个电源模块分别供电;在该仪器中集成了灯光报警和多个555 多谐振荡器,需要用负载能力强的电源模块。采用LM7805 电源芯片实现12 V 外部供电电压,外接μF 滤波电容和防止大电压输出的保护二极管将12 V 电压降到5 V[3],给多个555多谐振荡器和LCD1602 显示屏供电,如图5 所示。
图5 12 V转5 V
采用ASM1117 集成电源芯片的固定输出版本能高效地将电压线性地从5 V 转为3.3 V。外接稳压二极管使电路输入端电压稳定在5 V 左右,避免浪涌电压将损坏芯片;为了达到输出比较稳定的目的,输出端接上一个220 μF 电容,组成典型的降压电路,将5 V 电压降到3.3 V,给STM32 控制器和灯光报警电路供电,如图6 所示。
图6 5 V转3.3 V
1.5 按键模块
该系统中的按键模块采用矩阵形式,4 行4 列16 个键,其中有代表0~9 数字的按键,1 个输入确认按键,3 个为阻值单位(Ω,kΩ,MΩ),1 个为输入清除按键。按键电路通过8 根线连接到单片机I/O 口,让单片机对这些I/O 口轮流检测,以确定行数和列数,最后通过软件求得输入值,如图7 所示。
图7 按键模块
1.6 显示模块
该系统用LCD1602 作为显示屏,显示屏为ASCII码字符,只能显示字符,一行可以显示16 个字符,总共有2 行[4],用来显示按键电路输入的值、测量值。其工作温度符合仪器要求且价格低廉,适合在该系统内使用。由于STM32 的I/O 口可以配置上拉电阻,在使用时无需外接上拉电阻。
在第3 引脚接上可调电阻器,以调节LCD1602 显示屏的对比度,通过配置LCD1602 的4、5、6 引脚的电平状态可以读取和写入LCD1602 显示屏的状态、数据和指令。第15、16 引脚为LCD1602 显示屏的背光电源正负极,而剩余的第7 至第14 引脚为数据口,如图8 所示。
图8 显示模块
2 测量仪的软件设计
上电开始时,该系统首先最STM32 初始化,接着进入键盘输入子函数,等待输入阈值;然后通过STM32 控制给555 多谐振荡器测试电路上电开始测试,通过输入捕获测量测试电路的频率,再通过软件计算得出测量阻值(如图9)。
图9 软件流程图
2.1 STM32初始化
该系统的初始化主要为系统时钟初始化、串口初始化和输入捕获初始化等。
2.1.1 系统时钟初始化
该系统中555 多谐振荡器的频率较高,且需要进行多个快速测试,则需要STM32 进行快速反应,故STM32 选取外部高速时钟源,可进行PLL 锁相环倍频,让工作频率达到72 MHz[2]。其流程图如图10 所示。
图10 时钟初始化
2.1.2 串口初始化
初始化主要是对传输数据速率等进行设置,需要设置相关的时钟、引脚的输入输出模式和传输数据格式,另外还需设置中断服务函数来读取数据,如图11 所示。
图11 USART串口初始化
2.1.3 输入捕获初始化
当输入捕捉到跳变电平时,将当前定时器的值存放到对应的寄存器中,完成一次对脉冲宽度的计算。因此需要开始定时器和I/O 口的时钟,初始化定时器,配置定时器的计时频率和计算周期;初始化输入捕获,定义其触发捕获的对象及其上升或下降沿;最后还要编写一个中断服务函数,用来计算脉冲宽度和开启其他通道的输入捕获。
图12 输入捕获初始化
2.2 键盘输入
先让1 个连接键盘行的I/O 口为低电平,剩下的3个行I/O口均为高电平,接着对4 个列I/O口各检测一次,查看其列I/O 口是否有低电平,若检测到某一列为低电平,则可以确定哪一行、哪一列的按键被按下。以同样的方法依次将行I/O 口设为低电平,再各自检测一次列I/O 口是否为低电平。将最终值作为阈值与测试的值比较,显示在LCD1602 显示屏上。其流程如图13 所示。
图13 键盘输入
2.3 LCD1602显示屏
上电使能LCD1602 显示屏,选择写命令形式,设置显示模式为16×2,5×7 点阵和8 位数据指令接口,接着将显示屏设置为开显示和不显示光标状态,每写1 个字符地址指针自动加1,清屏后将屏幕设置为写数据形式。显示键盘输入的值后重新把数据指针定位到屏幕的第2行,用来显示测试的值和测试结果。在使能、对屏幕设置和数据写入后要进行延迟操作,保证屏幕的稳定性。
3 结束语
阻值测量在电子元器件的检验中使用的次数及其频繁,若要对成千上万的元器件进行检测,需要花费相当长一段时间,非常耗时费力,使用该仪器进行测量节省了时间和人力。该仪器电路简单,测量误差不大,适合实际使用。智能化仪器是现代工业的迫切需求,本文提供了一个设计实现大量检测阻值的仪器思路,可以在较短时间、较少人力条件下实现元器件全检目的,未来可以考虑使用ABB 机器人和该系统联动,达到全自动高效检验的目的。
参考文献:
[1] 任骏原.555单稳态触发器的触发特性分析[J].吉林大学学报(信息科学版),2013(2):170-172.
[2] 丁力,宋志平,徐萌萌,等.基于STM32的嵌入式测控系统设计[J].中南大学学报:自然科学版,2013(S1):260-265.
[3] 张永瑞,杨林耀,张雅兰.电路分析基础[M].西安:西安电子科技大学出版社,2000.
[4] 于志赣,刘国平,等.液显LCD1602模块的运用[J].机电技术,2009(3):21-23.
(本文来源于必威娱乐平台
杂志2021年7月期)
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码