1前言
美国Microchip公司的PIC16系列单片机是一种新型的CMOS工艺的8位单片机。因其功耗低,超小型,低成本,功能完整,因而是一种非常适合在各种便携式设备中使用的高性价比的单片机,并已经得到了越来越广泛的应用。
笔者开发的小型空气压缩机采用直流电磁铁驱动机构作为驱动源,它具有体积小(35 mm×26 mm×75mm)、重量轻(94 g)、动作频率高(6 480次/min)和流量脉动小等特点,可内藏于机器人的腕部实现对手指关节的直接驱动。以PIC16F873单片机为核心构成该小型空气压缩机的控制装置,研制出了价廉、小巧和具有良好控制性能的控制装置,文中介绍了该控制装置的硬件电路、程序框图和工作原理。
2硬件电路
如图2—1所示,控制装置的硬件电路由PIC16F873单片机、电源、液晶显示器、压力传感器和线圈驱动回路组成。通过软件编程,利用端口B的RB1和RB2引脚产生两个脉冲信号作为线圈的驱动信号,用于切换线圈中电流的流动方向,实现对电磁铁驱动机构往复直线运动的控制。在该驱动信号的控制下,电磁铁驱动机构以一定的频率做往复直线运动。由于气缸的活塞杆与电磁铁驱动机构直接相联,活塞在电磁铁驱动机构的推动下也做往复运动。伴随着活塞的往复运动带来的气缸腔室容积的变化,空气被吸入或被压缩,从而实现了空气压缩机的功能。
空气压缩机在运行中输出压力的大小由压力传感器检测,并由液晶显示器显示出来。当输出压力值达到预先设定的目标压力值时,空气压缩机停止运行,从而实现对空气压缩机的控制。以下就各构成部分的原理和特点进行叙述。
①PIC16F873单片机
PIC16F873微处理器属于PIC系列单片机的中级产品,28引脚。具有4K×14闪速程序存储器、可多次修改程序,使用起来特别方便。192字节片内数据存储器除RAM外,还有128字节的EEPROM,可以当作一般的或非易失性的数据存储器使用,简单方便。3个I/O端口(RA、RB和RC),具有13个中断源、3个定时器、2个CCP(捕捉/比较/PWM)模块,集成了5路8位A/D转换器。它还具有片内上电复位、延时电路、看门狗电路等。
PIC系列单片机可工作于不同的振荡器方式,有4种振荡方式可供选择。为了得到快速、精确和稳定的时钟信号,选择了高速晶体振荡HS方式。选用10 MHz石英晶体振荡器和2只20 pF的电容组成振荡电路,连接到单片机的OSC1/CLKIN和OSC2/CLKOUT引脚上,因此可产生10 MHz的时钟频率。在此高速振荡方式下,应在回路中接入一只100Ω~1 kΩ大小的电阻R2,以提高振荡的稳定性。
②电源部分
PIC系列单片机功耗极低,动作电压范围宽(2.5~5.5V),可用电池驱动。为了简化电源部分,采用PIC16F873和负荷(线圈)共用一个电源的供电方案。因线圈已选用镍氢可充电电池驱动,故用4节镍氢可充电电池(公称电压4×1.2 V)作为供电电源。考虑到线圈带电时引起的电源电压波动,会影响PIC16F873的正常工作,所以在回路中接入DC-DC转换器(MAX631),使PIC16F873获得一个稳定的供电电压,如图2—2所示。
③液晶显示器(LCD)
使用液晶显示器来显示小型空气压缩机运行中输出压力的大小。选用的液晶显示器型号为SC1602BSLB(SUNLIKE公司),如图2—3所示。
SC1602BSLB为16文字2行显示,5V电压供电,消耗电流(0.35~0.6 mA)极小,可与PIC单片机直接相连,适合用电池驱动。该液晶显示器数据的传送由4字节和8字节两种工作模式可供选择。因可供使用的引脚富裕,故选择了8字节的数据传送工作模式。端口C(RC0~RC7)与液晶显示器的8根数据线(DB0~DB7)对应相连。用3根控制信号线(E,R/W,RS)来实现对显示器的读/写操作控制,其分别与端口B的RB3~RB5相连。10 k的可变电阻用来调节显示器的亮度。
液晶显示器的上行显示目标压力设定值,下行显示空气压缩机运行中输出压力测定值。改变图2—1中可变电阻阻值,可调节目标压力设定值的大小。
④压力传感器
为了检测小型空气压缩机运行中输出压力的大小,选用可直接安装在电路板上的微型压力传感器(XN-PN200,FUJIKURA公司),如图2—4所示。该压力传感器消耗电流为10 mA以下,使用电压为5 V,可与PIC共用一个电源。压力测定范围为0~120kPa,满量程电压为4.5±0.1 V。PIC16F873的RA1/AN1引脚作为压力传感器的电压模拟信号的输入端使用。另外,RAO/ANO引脚作为可变电阻的电压输入端使用,其功能是用来设置目标压力值。
⑤线圈驱动回路
用4只场效应管构成线圈的桥式驱动回路,并前置场效应管驱动芯片(MAX620),实现对线圈中电流流动方向的切换,如图2—5所示。在线圈驱动信号(FORWARD/REVERSE)的控制下,来切换线圈中电流的方向。驱动信号FORWARD为线圈正向加压信号,当置高电平时,产生正向电流和磁力,驱动活塞向一侧移动;而驱动信号REVERSE为线圈反向加压信号,当置高电平时,产生负向电流和磁力,驱动活塞向另一侧移动。两驱动信号为低电平时,磁力消失,活塞在复位弹簧力的作用下从两端返回中位。这样活塞在两驱动信号的控制下,以一定的频率做周期性直线往复运动。
3动作顺序和程序框图
3.1动作顺序
首先把SW1滑动开关置于ON位,电源接通。调节可变电阻完成对目标压力值的设置。按一下SW2按钮开关,空气压缩机就进入工作状态。空气压缩机运行中输出的压力值由压力传感器检测,并由液晶显示器显示出来。压力值一旦达到目标压力值,就自动停止运行。另外,在工作途中,如果按了SW2按钮开关,空气压缩机也会停止运行。在空气压缩机停止运转状态下,可再次设置目标压力值。工作完毕,应把SW1滑动开关置于OFF位,切断电源。这样空气压缩机在控制装置的控制下,能够自动地追踪设定的目标压力值。
3.2程序框图
控制装置的整个程序包括PIC和LCD的初始化、A/D采样、数据转换、数据显示、按键响应判断、线圈驱动等子程序,其程序框图如图3—1所示。在这里,利用PIC16F873的CCP(捕捉/比较/PWM)功能中的比较功能产生中断,来制作出驱动线圈的脉冲信号。在比较工作方式时,16位比较寄存器的值一直与定时器TMR1寄存器的值相比较,一旦相等,就产生中断。该机可精确地产生出时间间隔,而没有时间滞后现象。所以从程序框图中可以看出是用开、关中断来控制空压机运行和停止的。中断许可时产生驱动线圈的脉冲信号,空压机就运行;中断禁止时不产生驱动线圈的脉冲信号,空压机就停止运行。
4结论
笔者以PIC16F873单片机为核心开发出了价廉、小巧和便于携带的小型空气压缩机的控制装置,实验证明控制性能良好。实现了所研制的小型空气压缩机整体结构的小型、轻量化,使其可内藏于机器人的腕部,实现对手指关节的直接驱动成为可能。
[参考文献]
[1]李学海.单片机硬、软件及应用讲座[J].电子世界,2001(1)~2001(6).