彭冬玲
摘 要:单片机的电压测量器系统是以STM32芯片为核心,通过测量信号和标准电压比较,输出脉冲值,并进行液晶显示的电压测量系统。该电压测量器采用模数转换,通过硬件电路和软件程序相结合思想来实现,可自定义量程测量±15V以内的电压;电压格式的显示和精度的改变通过软件控制;具有人机交互体验好、电路简单、性能稳定和性价比极高等优点。
关键词:自量程电压测量器;STM32;ADC采样;TFT触摸屏
中图分类号:TM247 文献标识码:A
1 引言
在电子产品设计调试或者使用过程中,电压测量往往是一个必不可少的环节。原始的电压测量器为指针式,存在容易磨损、测量精准不足、人为误差较大、及读数困难等各种缺陷。随着单片机技术的飞速发展,由微控制器和A/D转换器结合形成的数字式电压测量器逐渐占据了市场。数字电压测量器(Digital Voltmeter)简称DVM,它是将测量的电压与标准电压进行比较,然后将数据转换为数字信号并显示出来。数字电压测量器由于运用了数字化测量技术,显示清晰直观、准确度高、分辨率高、测量速率快、抗扰能力强。同时运用了单片机技术,具有可扩展性强、集成化高、功耗小,同时还可以与PC机进行及时通信等特点。
2 电压测量原理
本设计是基于STM32单片机的自量程的电压测量电路,电路主要包含两部分:硬件电路及软件程序。而硬件电路以STM公司的STM32F103ZET6作为主处理器,系统主要由自量程信号输入电路、STM32单片机和内部A/D转换、数据处理输出、TFT触摸液晶屏显示器等几个功能模块构成。系统框架图如图1所示。
电压测量器能测量30V以下的电压,当电压小于3V时能自动选择小量程来提高测量精度,精度不小于0.01;当电压大于3V时,自动选择大量程,从而避免了手动调节量程的麻烦,提高使用方便度。
3 电压测量器系统设计
3.1 自量程信号输入电路
自量程信号输入电路的作用是把不同大小的被测电压规范到A/D转换器所要求的电压值。单片机数字电压表所采用的STM32内部的12位逐次逼近式ADC,它要求输入电压为0-3.3V。电路设计如图2。
自量程电路可以自动选择测量电压量程,本仪表可以测±15V以内的电压,当电压在±1.5V以内的时候。自动跳到±1.5V小量程,精确到可以达到0.001,从而提高精度;当被测电压超过±1.5V时,自动跳到±15V大量程,从而扩大量程。全过程不需要手动调节,从而使该数字电压测量器的使用领域变得更加广泛、使用更加简单方便。
3.2 输入电路分析
电路(见图2)主要由继电器选量程电路、电阻分压电路、电压跟随电路和差分升压电路组成。
电路采用5V继电器来控制量程,当电压在±1.5V以内时,单片机PF7给出高电平信号驱动三极管Q1导通,此时继电器线圈带电驱动K1开关合并,被测电压直接经过AR1电压跟随器进入到AR2运算放大器与负5V经R6和R8峰压得到的负1.5V作差运算得到正电压,再到STM32单片机的ADC电压处理模块。被测电压U1=U2-1.5。U1是测量输入电压,U2是ADC采集到的电压。此时精确到为0.001,满足设计要求。
当电压大于1.5V小于15V(或者时小于-1.5V大于-15V),PF7引脚输出低电平,三极管Q1不导通继电器不工作,K1开关不导通,此时被测电压经R1,R2两个电阻分压,然后经过电压跟随器进入差分升压电路再到STM32单片机ADC处理模块。被测电压U1=(U2-1.5)* (R1+R2)/ R1=10*(U2-1.5)。U1是测量输入电压,U2是ADC采集到的电压。此时测量精度为0.004,满足设计要求。
用AR1741运算放大器做双电源电压跟随器,使得系统的输入阻抗可以达到几兆欧,对被测电压的影响可以忽略不计,又能有效的减少的输入电路对后面单片机的影响,从而提高了测量精度,在测试过程中,发现电压跟随器是必不可少的,不然在测量的小电压的时候,误差很大。
AR2运算放大器的作用是通过差分电路把前面的输入电压抬高1.5V,使得测量负电压时也能满足单片机ADC采集电压0到3.3V的输入要求。
继电器K1是输入电路部分的执行机构,也是选量程的核心部位,这里没有选三极管作为开关的原因是三极管的不导通电阻只有4兆欧左右,其与输入衰减网络是并联使用的,而衰减网络的电阻也有1兆欧左右的电阻,对电路会产生很大影响。故选择了继电器,继电器属于机械开关型,有非常高的不导通电阻。
二极管D1起续流保护作用,D1为肖基特快速反应二极管。由于继电器内部开关动作是由线圈完成的,而线圈是储能元件,所以在下一次动作前,必须要释放线圈上的电荷,才能保证下一次动作正常进行,也保护器件烧坏的风险。
二极管D2起过压保护作用,当电压大于3V时,回流给3.3V电源,防止STM32单片机引脚过压烧坏。
R3是一限流电阻,阻值为1kΩ,避免三极管在烧坏的情况下,保护单片机引脚不被烧坏。
电阻R1与R2组成电压衰减电路,可以扩大测量电压范围,在测试过程中,电阻阻值不能取的太大,但电阻大于一兆欧时,对小测量小于1V的电压有误差。这里选取900k和100k的精密电阻。
该部分是整个设计的核心,电路设计新颖,结构简单,成本低,工作稳定性非常高,达到了高性价比要求。
3.3 TFT触摸液晶屏显示器
TFT-LCD全称为:Thin Film Transistor-Liquid CrystalDisplay,即薄膜晶体管液晶显示器。显示器具有320×240 的分辨率,16 位真彩显示,自带触摸屏,可以用来作为控制输入。显示器电路如图3所示。
该液晶的控制芯片是ILI9341。ILI9341液晶控制芯片自带显存,其显存总大小为172800(240*320*18/8),即18位模式(26万色)下的显存量。在 16位模式下,ILI9341采取RGB565格式存储颜色数据。从图3中可以看出,ILI9341在16 位模式下面,数据线有效的是:D17~D13和D11~D1,D0和D12没有用到,ILI9341的 D17~D13和D11~D1对应MCU的D15~D0。
处理器的16位数据,最高5位为红色,中间6位为绿色,最低5位代表蓝色。数值越小,表示该颜色越浅。此外, ILI9341全部的指令都是8位的(高 8 位无效),且参数除了读写 GRAM 的时候是 16 位,其他操作参数,都是 8 位的。通过0XD3,0X36,0X2A,0X2B,0X2C,0X2E这6条指令来控制液晶显示。一般TFT液晶显示屏使用步骤如图4所示。
4 电压测量器程序设计流程
自定义量程液晶显示电压测量器的软件程序由主程序,A/D转换子程序、触控子程序、触摸中断子程序和液晶显示程序组成,如图5所示。
5 总结
电压测量器设计的原理主要是利用自量程输入电路采集待测电压信号送给STM32内置12位的ADC处理,然后输出数字信号给STM32内部数据处理单元处理。最后,单元进行处理通过2.8英寸的TFT觸摸屏显示待测电压的数值,实现自动选量程的双量程电压测量目的,实用性更强。
参考文献:
[1] 谭浩强.C程序设计(第四版)[M].北京:清华大学出版社,2010.
[2] 张海藩.软件工程导论(第五版[M].北京:清华大学出版社,2008.
[3] 李瑞. Atium Designer 14 电路设计与仿真[M].北京:人民邮电出版社,2014.
[4] 杨素行.模拟电子技术基础简明教程(第三版)[M].北京:高等教育出版社,2006.
[5] 康华光.电子技术基础模拟部分第四版[M].北京:高等教育出版社,1999.
(本文审稿 李正发)