基于ARDUINO的跨步电压检测报警装置研制
2015-03-23沈欢胜陆强颜加仁曾林
沈欢胜++陆强++颜加仁++曾林
摘 要:利用Arduino标准化单片机集成模块,从硬件和软件两方面论述了一种跨步电压检测报警装置,该装置通过导线将安装在绝缘靴底部的金属棒接到电压检测报警装置,引入两脚之间的电压量,再经过降压和AC/DC转换电路,利用 Arduino集成电路内部的AD转换功能实现电压量的检测,在检测电压高于特定数值时发出告警声音,并可通过LED数码管显示测量值。
关键词:Arduino 跨步电压 电压检测
中图分类号:TM76 文献标识码:A 文章编号:1672-3791(2014)10(c)-0104-02
我国东部沿海处于欧亚大陆与西北太平洋的过渡地带,属典型的亚热带季风气候区,是我国受台风、暴雨等灾害影响最严重地区之一。该地区220kV及以上变电站均为室外露天式变电站,各种高压设备和端子箱都是直接暴露在室外,容易受到潮湿和雨水淹侵影响,部分地势较低的变电站,道路和电缆沟特别容易积水。
按照变电站管理要求,恶劣天气后必须对变电站设备进行特巡,这样较容易发生跨步电压触电事故。当电气设备发生接地或漏电故障,接地电流通过接地体向大地流散,在地面上形成分布电位,这时若人在接地短路点周围行走,两脚之间的电位差,就是跨步电压[1]。当跨步电压达到40~50 V时,将有触电危险,特别是跨步电压会使人摔倒进而加大人体的触电电压,严重时会使人发生触电死亡。
但是变电站没有配置专门的检测跨步电压的装置,常用的绝缘靴也不具备跨步电压检测功能,为了降低变电站的跨步电压触电风险,本文利用Arduino标准化单片机集成模块,研制一种跨步电压检测报警装置,可以安装在常规绝缘靴上,当跨步电压值大于安全数值时发出告警,可提醒使用人员地面上是否有电,有利于及时地发现系统存在接地现象,警告人们远离漏电设备,并采取可靠措施,以便及时处理,消除人身安全威胁。
Arduino是一块基于开放源代码的Simple I/O平台,该平台由硬件和软件两部分组成,这两部分都是开源的,开发语言类似java、C语言,具有开发环境简单、易理理解的特点[2]。
1 系统构成
从系统结构上,跨步电压检测报警系统由前部电压采集端和电压检测报警装置两部分构成。
如图1所示,前部电压采集端主要由绝缘靴上的U型金属棒3、带有绝缘外皮的导线5,以及导线上的专用插头6等构成,其主要作用是将绝缘靴所处的两点电位通过导线引入电压检测报警装置9上。前部电压采集端利用带有魔术贴的绑带2和绑带4,将U型金属棒3绑在绝缘鞋1上。
电压检测报警装置9主要由Arduino标准化单片机集成模块及相关外围电路构成,并设有专用电源开关8、LED数码管10,以及挂绳孔11,通过挂绳孔11可以将装置挂到腰带或者钥匙扣上。
2 硬件设计
电压检测报警装置的原理如图2所示。通过电压检测报警装置上的专用插孔5,引入两脚之间的电压量(当电压过大时通过压敏电阻进行保护),再经过降压和AC/DC转换电路1,将交流电压量按比例转成0~5V的直流电压量,并接入Arduino标准化单片机集成电路4的模拟量输入口A0,经过Arduino内部的AD转换功能实现电压量的测量,并经比例系数调整后通过LED数码管2进行显示;再利用Arduino的判断逻辑,当测量电压值超过36V时,驱动蜂鸣器3发出告警声。
Arduino共有14组数字输入/输出端Digital 0~13和6组模拟输入/输出端A0~5,这里我们用Digital 0~7控制LED数码管的A~G和DP数据段,Digital 8~10控制LED数码管选通位DG1~3,Digital 11控制蜂鸣器,用A0采集电压量。
3 软件设计
Arduino把单片机编程中很多常用的功能,如延时、数据读写、中断等都被模块化封装成一个个子程序供开发者调用,开发者只需着眼于程序的逻辑结构,而不必关心底层函数的具体设计,从而大大降低了程编程的复杂程度[3]。
从功能上,电压检测报警装置主要有三段程序,分别是AD转换程序、数码管显示程序和蜂鸣器报警程序。
3.1 AD转换程序
Arduino有6个AD转换口,可以测量0~5V的直流电压,并将其转换为0到1023的数字量输出。经过前端的降压和AC/DC转换电路,将所需要测量的交流电压量转换为0~5V的直流电压量,以供Arduino的AD转换口测量。Arduino的AD转换具有10位的AD采样精度,相对于二进制而言有1024个单位(LSB),当模拟输入的电平为+5V时,其分辨率为每LSB为4.88 mV,相对误差为0.1%左右[4],可以满足一般的测量精度要求。借助于标准数字万用表,可以算出交流电压输入量和Arduino的AD转换输出量之间的系数,从而可以进行输出校准。同时,本装置还设置了一个精密可调电阻,也可以用于校准。
AD转换程序分两步,先读取模拟输入口A0的数值,然后按照比例系数调整输出。
ACinput=analogRead(0);//读取模拟口A0的电压值,数值从0到1023
ACoutput=map(ACinput,0,1023,0,500);//将读取到的电压值,按比例调整0到500
为了提高抗干扰性,得到更加稳定的度数,可以多次读取数据并计算平均值。
3.2 数码管显示程序
数码管显示程序可以按照以下步骤进行:
(1)定义三个全局变量digitalBit3、digitalBit2、digitalBit1,用于存放分解好的整数百位、十位和个位。
(2)定义一个函数void digitalBit(int ACoutput), 用于将一个999以内的整数分解为百位、十位和个位三个数字。ACoutput是需要分解的整数,分解后的百位、十位和个位数字分别存于3个全局变量digitalBit3、digitalBit2、digitalBit1中。endprint
(3)定义10个子函数,分别用于显示数字0~9,以下是用于显示数字“1”的函数。
void digital_1(void) //显示数字1
{
unsigned char j;
digitalWrite(0,HIGH);//给数字引脚0高电平,熄灭a段
digitalWrite(1,LOW);//给数字引脚1低电平,点亮b段
digitalWrite(2,LOW);//给数字引脚2低电平,点亮c段
for( j=3;j<=7;j++)
digitalWrite(j,HIGH);//给数字引脚3~7高电平,熄灭其余段
}
(4)在setup()函数中设置0~10引脚为输出模式
int i;//定义临时变量
for(i=0;i<=10;i++)
pinMode(i,OUTPUT);//设置0~10引脚为输出模式
(4)动态显示百位、十位和个位的数字。
先确定所要显示的数字,然后选通数码管的百位,并保持20ms,再取消数码管的百位。按照同样的原理,依次显示十位和个位数字。
3.3 蜂鸣器报警程序
蜂鸣器使用内部带有驱动电路的有源蜂鸣器,正极通过限流电阻接到电源上,负极接到Arduino数字输出引脚Digital 11上,当数字输出引脚Digital 11为低电平时,蜂鸣器发声。
4 结语
本跨步电压检测报警装置解决了变电站内使用的常规绝缘靴不具备跨步电压检测报警的功能的问题,同时该装置可以有效地测量两脚之间的跨步电压数值,并且当跨步电压值大于安全数值时发出告警,可提醒使用人员地面上是否有电,有利于及时地发现系统存在接地现象,以便及时处理,消除人身安全威胁。
同时,本实用新型跨步电压检测报警装置采用了Arduino标准化单片机集成电路板,方便开发和调试,降低了成本。
该成果目前已经申请了国家专利,具有较强的实用性,值得推广。
参考文献
[1] 袁小雷.浅谈跨步电压触电[J].建筑安全,2004(11):23-23
[2] 蔡睿妍.Arduino的原理及应用[J].电气设计工程,2012(16):155-156
[3] 纪欣然.基于arduino开发环境的智能寻光小车设计[J].现代电子技术,2012(15):161-163
[4] 陈倩诒.单片机片内A/D转换器应用于交流量的测量[J].电子技术,2003(10):21-23.endprint