本文介绍的基于PIC16F84单片机制作的电池电压计,可用于监测汽车电池和充电系统的运行状况。由于采用了PIC16F84单片机,使得电路整体大大减小,能将整个电路装入很小的盒子内。并且,利用单片机电路,使电路制作更加容易。
汽车电池耗尽,通常会在最不方便的时刻、最不适合的地点以及不完全令人满意的气候下出现。电池可能是新型车辆中最不可靠的组件。为了减轻这个问题的影响,有些电池制造商在同一外盒内装入后备装置,让车辆可以在主要装置失灵时启动应急工作。
汽车电池只有获得适当的保养才能够产生峰值性能。这个保养工作不仅要监测电池电解液的液面高度,还要保证充电电压处于严格的范围内。也就是说,12V电池的充电电压在13.8V~14.4V之间,24V电池的充电电压在27.6V~28.8V之间。
如果12V电池充电时电压达不到13.8V,可能是充电电压太低,或者电池将被淘汰。这就是说,如果电池要在启动时,尤其是在寒冷气候下产生足够的电流,它才是勉强合格的。与之相反,如果电池过充电,电解液就会产生过多的气体,因而使电池板干枯,降低电池的容量。
这样不仅会大大缩短电池的寿命,而且在严峻的情况下(例如稳压器失灵),还可能损坏车中的其他电子设备或器件。那么,怎样才能使汽车电池获得合适的充电以及处于良好的条件运行呢?
本文介绍的电池电压计即可帮你解决这一问题。本电池电压计可实时监测电池两端电压,从而正确指示出充电电压。
1.最小保持装置
观察电池电压的重要时间就是启动时。在这段时间内,启动电机要消耗大量电能,所以电池电压会降至低于12V的标准值之下。在车辆启动时,能够准确地监测最低的电池电压,不是很好吗?利用这个电池电压计,就可以轻松这样做到。因为它装有保持最小值的装置。你在启动后的任何时刻按动Min/hold(最小值/保持)按钮,就会显示出最小的测量值。放开按钮之后,显示器就会到正常模式。存储在易消失RAM中的最小电压值就会在下一次关掉点火系统时自动消失。
通常,如果使用良好的电池,启动发动机时,电压应该只降至10.5V左右,不过该数值是由温度、启动电流以及电池本身条件等多种因素决定的。在任何情况下,这个工作只不过是使用Min/hold按钮为汽车电池生产基准的最小电压,然后偶尔检查一下以确定电池处于良好条件。
不过要注意,在寒冷气候下电压降低是正常的,所以要怀疑有毛病的电池之前要记得这点。
简而言之,有很好的理由去仔细监测电池电压,而这个装置就很适合这个工作。它宣称具有高准确度,温度的漂移可以忽略不计,而且用三位数码管显示12V模式,即可以读取接近0.1V的精度。还可以自动使显示器调节随着环境亮度变化的亮度。只需要三根导线连接该设备到汽车的接线(+12V、0V和电池+Ve),调节一个微调电位器就可以很容易校准该装置。第二个微调电位器用于调节夜里的最低显示亮度。
2.电路原理
电路见附图。PIC16F84单片机(IC1)是这个电路的基础与核心。该器件接受来自电池和开关S1的输入,处理这些信息和驱动数码管显示器。电压检测是以IC2为基础的。电池电压连接到由10kΩ、1.8kΩ电阻及1kΩ微调电位器VR1串联而成的分压器上,输入到IC2a的②脚。工作时,IC2a把①脚上输入的电压和③脚输入的直流电压比较。IC1的RA3输出的脉宽调制方波信号通过10kΩ电阻接1μF电容就得到一个直流电压。结果,只要它的②脚电压大于③脚电压,IC2a的①脚就变为低。并通过3.3kΩ限流电阻把该信号送往IC1的RB0端。当IC2a的输出变为高而达到标准的12V时,这个电阻限制经由IC2a流过的电流,而在RB0内部箝位二极管则限制该引脚的电压在5.5V左右。
3.模/数转换器
这个电路大部分的复杂性都隐蔽在单片机IC1及其内部程序中,不过IC1还具有模/数转换器的功能。它在工作时,把RB0输入的比较器信号变为数码值后用来驱动三位数码显示器。这里所用的模/数转换器有点不寻常,它只需要在单片机上有两个连接点。如上所述,在RA3的输出产生脉宽调制信号,它以1.953Hz信号工作,占空比0.075%~90%。需要注意的是,输出高电平是+5V,而输出低电平是0V。10kΩ电阻和1μF电容把RA3的输出滤波而产生等于占空比波形平均值的直流电压。这就是说,如果占空比是50%(即方波),输出电压是5V的50%,亦即2.5V。
这个电压接IC2a的③脚。使用不同占空比周期就可以得到其他直流电压。这个直流电压连接到比较器的IC2a的③脚。
这个模/数转换器的工作如下:起初,RA3输出以50%的占空比波形工作,该占空比设定IC2a③脚的电压在2.5V。与此同时,IC1中的8位寄存器把它的最高位调高而使其数值为10000000。
IC1产生大约65.5ms的50%占空比信号,然后由RB0输入监测比较器的输出(IC2a的①脚)。如果在②脚分压后的电池电压大于2.5V,IC2a的①脚就为低,如果该电压低于2.5V,IC2a的①脚输出就为高电平。这时出现的情况是:如果分压后的电压低于2.5V,相当于低的比较输出,RA3的输出就增大占空比至75%,而产生3.75V电压输出,于是就把寄存器调到11000000,最大有效位数表示2.5V和50%的占空比,下一位表示1.25V和25%的占空比(这两位相加,就得到3.75V,即75%占空比)。这时,在65.5ms之后,再检查比较器的电平,然后单片机加或减12.5%的占空比(0.625V)以及在根据分压后的电压再检查。接着,如果输入电压高于脉冲宽度电压,就把寄存器调到X1100000(依照以前的操作确定X的数字是1还是0)。如果输入电压低于脉宽调制器电压,就把寄存器调到X0100000。这个过程连续进行8个循环,单片机加或减较小数值的电压(0.3125V、0.156V、0.078V、0.039V和0.0195V),而把8位寄存器的较低位调到1或0而获得8位的模/数转换。因此,模/数转换在最低有效位具有大约19mV(0.0195V)的分辨率。8位寄存器还具有256个可能的数值,即从00000000(即0)到11111111(即255)。不过实际上,把范围限在19至231之间。这是因为,软件必须有时间进行内部处理以便在RA3的输出产生波形以及检测RB0输入。该两数字(19和231)相当于12V测量模式的1.9V和23.1V。这个限制测量范围对于汽车电压计并非真的是个问题,因为对于12V的电池来说,我们只需要在6至16V的窄范围内进行测量。在模/数转换过程后,必须把存储的8位寄存器内的二进制数转换成十进制数后才能够在三位数码显示器上显示出来。这个工作又是在PIC单片机中进行。需要注意的是,在24V模式中,8位寄存器的数先乘以2,然后才转换为十进制数。这样就使测得电压得到200mV的分辨率。模/数转换器要依靠几个因素才产生前后一致的读数。首先,基准电压必须保持稳定。这就是说,RA3的输出必须在正电源和地电位之间摆动。否则,RA3的滤波输出就会改变,产生不正确的结果。
基于同样的原因,RA3输出的脉宽调制波形的占空比必须在65.5ms周期内保持正确。在这种情况下,基准使用LM2940t-5稳压器产生的电源,该电源具有很好的长期稳定性。它的温度变化在100℃的范围为+20mV。此外,RA3的输出是COMS型,无负载时,其输出电压仅为几毫伏。
至于占空比周期这方面,它是由软件设定,并且用4MHz晶体振荡器在IC1(15)和(16)脚上进行控制。这就是说,本电压计的读数应该准确到1位(24V操作下则为2位数字)。
在RA4输入上检测保持最小值的开关S1。通常,RA4通过接5V电源的10kΩ电阻保持高电平。当该开关闭合时,它把RA4输入拉低。这时,由软件检测读数的7段数据装入显示器的寄存器。放开S1之后,又再拉高RA4,当时的电池电压再显示出来。
4.发光二极管显示器
ICI产生的7段显示数据在RB1~RB7输出出现。这些输出通过150Ω的限流电阻直接驱动发光二极管,而RA0~RA2输出分别通过开关管Q1~Q3驱动各显示器。以多路传输方式驱动显示器,利用IC1依次把RA0、RA1和RA2线路转为低,实现实时监测数据显示。
5.显示器的亮度
使用IC2b控制显示器亮度,该运算放大器连接成电压跟随器,以及驱动负反馈回路中晶体管缓冲器Q4。光敏电阻LDR1根据周围的光电平控制IC2b⑤脚输入的电压。IC2b驱动Q4,Q4则控制接显示器驱动器(Q1~Q3)的射极。在白天时段,⑤脚上的电压接近+5V,因为光敏电阻在强光下具有低电阻。这就是说,Q4的射极也接近+5V,所以这些显示器以全亮度发光。相反,随着光电平下降,光敏电阻的电阻值增大,引起IC2b⑤脚的电压下降。实际上,完全黑暗时,⑤脚上的电压是由调节最小亮度的微调电位器VR2的设定值确定的。和前述一样,这个电压在Q4的射极上出现,于是这些显示器都是在降低的亮度下驱动的。在实际操作中要注意,要获得显示器在夜晚所需的亮度,可调节VR2。
6.时钟信号
和晶体X1与两只15pF电容一起工作的内部振荡器电路提供IC1的时钟信号。安装电容是为了提供晶体的正确负载以及保证可靠的启动。晶体频率在内部被分割产生适合单片机和显示器多路传输的时钟信号。
7.电源
电路的电源通过点火开关从汽车电池获得。一个10Ω1W的电阻和一只22雾电容用于这个电压的退耦,而20V的齐纳二极管ZD1则保证这个电路不受高于该电压值的瞬态电压尖峰影响。接着把退耦的点火电源线接到产生+5V电源线的稳压器REG1上,使用这路电源为IC2以外的所有电路供电,而IC2则直接由退耦的点火源供电。使用一只47雾的电容和一只0.1雾电容作稳压器的输出滤波和退耦。
如果是24V的系统,就通过外部的150Ω10W电阻产生电压降去限制稳压器中的功耗,以该电阻接电源的输入。要注意的是,使用低降压的稳压器就可以让电压计为12V的系统在低至5.5V左右下工作。标准的稳压器在开始降低调压之前,只可以测量低至8V。