邹智恒,杨 莹
(湖南文理学院,湖南 常德 415000)
近年来单片机由于其特点和突出的性能被广泛应用于各个领域,随着社会的发展和技术的进步,各种新型单片机层出不穷,片内集成的功能模块越来越多,整体性能也越来越强大[1],其中最具有代表性且最基础的是51单片机。由于通信技术在移动通讯、无线通讯等方面的高速发展,以及嵌入式计算技术和传感器技术的日渐成熟,具有感知能力、计算能力和通信能力的微型传感器开始在世界范围内出现[2]。单片微型计算机是微型计算机发展的一个重要分支,是计算机发展史上的一个重要里程碑,开辟了嵌入式计算机领域[3]。
压力传感器在现代工业实践中是必不可少的,被广泛应用于各种工业自控环境中,包括水利水电、智能建筑、生产自控、航空航天、石化、电力、船舶、管道等行业[4]。但其在生活方面的应用较少,因此,本文结合单片机与压力传感器设计了一款楼房自动调速升降装置,该装置比现行运行速度恒定的装置更有应用前景。
控制器是电动机转速控制的核心部分,是电动机有效工作的保障。由于单片机具有灵活性好、成本低、易于产品化、抗干扰能力强、可构成各种智能式控制设备和智能仪器等特点[5],所以单片机适用范围较大,可用于处理功能较强、运行速度较快的系统中。此次设计选用AT89C51单片机作为系统控制器,当载物板上放有重物(≤20 kg)时,压力传感器和HX711模块将压力信号经A/D转换模块转化为电压信号传送给51单片机,单片机将循环判断压力传感器传送的信号以调节L298的启停频率,最终利用PWM波脉宽调制原理调节电机转速。PWM脉宽调制功率放大器,不仅消耗功率小,且调制精度高[6]。电机通过传动系统将物体运至目的地,其工作流程如图1所示。此设计采用按键与遥控相结合的方式,因为遥控方式更为便捷、简单;同时在单片机上设置按键也可避免其他因素的干扰。当载物重量大于20 kg时,系统会自动发出警报且电机不再运行,起到过载保护作用。
图1 控制流程图
此传动装置由直流减速电动机、联轴器、阶梯轴、轴承及轴承座、卷筒及钢丝绳(或其他承载能力符合要求的绳)等组成,其中钢丝绳一端固定缠绕在卷筒上,另一端通过定滑轮与接载物板相连从而达到传动的目的。
电动机采用24 V、35 W、30 r/min的大扭矩直流减速电动机。直流电机在现代社会中被广泛用于医疗设备、工业机械、通信雷达等各个行业中,虽然和交流电机相比,直流电机结构相对比较复杂,但其最大转矩以及启动转矩能够满足大部分系统的需求[7];且其支持正反转与脉冲宽度调制,满足本次设计的要求
联轴器采用刚性联轴器,其在承受负载时也无任何回转间隙,当有偏差产生负荷时,刚性联轴器还是刚性传递扭矩。且其构造简单、成本低、可传递转矩较大,具有免维护以及耐腐蚀的优点。当装置转速低、无冲击、轴的刚性大、对中性较好时,常采用此种联轴器。此处采用外径为32 mm、长度为32 mm、孔径为8×10 mm的刚性联轴器。
深沟球轴承主要承受径向载荷,也可同时承受小的轴向载荷;当量摩擦系数最小,极限转速高;在高转速且有轻量化要求的场合,可用来承受单向或双向轴向载荷[8]。此设计选用GB/T276-94深沟球轴承6201。
轴承座选用其内径与轴承外径相配、宽度大于轴承宽度的规格。
钢丝绳选用载重能力大于25 kg的304不锈钢钢丝绳,直径为1.5 mm、7×7规格。卷筒内径与轴直径相配即可,轴采用直径为10 mm、长度为180 mm的镀铬轴。
整个传动系统所选用的零件均为现有材料且能达到预期传动的目的,零件的承受负载能力皆大于设定质量,安装简单、易于实现。该传动装置示意图如图2所示。
图2 传动系统示意图
本设计主要由51单片机、压力传感器、HX711模块、L298模块、直流电动机和传动系统等器件组成。如图3所示,控制单片机P1.3端口的按键K1为电机正转开关,与P1.4相连的按键K2为电机反转开关,与P1.5相连的按键K3为急停开关,红外接口与单片机外部中断口0相连。利用中断程序解码后,通过定义不同数值的功能即可实现电机的正转、反转与紧急制动。蜂鸣器与单片机P1.7相连。HX711将检测到的压力信号通过DOUT串口数据输出,经P2.1口输入51单片机,SCK口为断电和串口时钟输入口,输入单片机的数据经单片机处理后经P1.2口产生PWM脉宽调制信号,该信号即为控制L298驱动模块输入端口ENA的启停频率,通过控制L298驱动模块的使能端也可实现电机正反转,且不同的压力数值对应不同的占空比,从而实现转速的调节。
图3 控制系统原理图
该系统软件设计程序流程图如图4所示。
图4 程序流程图
控制系统通过压力传感器来对物体产生的压力进行感应。电阻应变式传感器具有金属应变效应,即有外力存在时,金属会发生微弱的形变,从而改变其电阻值。电阻应变式压力传感器的主要布局形式有膜片式、筒式和组合式。其中,膜片式主要用于测低压,而筒式则用于测高压[9]。电阻应变式压力传感器具有结构简单,精度高,易于实现小型化的特点。对于大应变有较大的非线性的输出信号较弱[10]。
HX711芯片无需对芯片内部的寄存器进行编程。输入选择开关可任意选取通道A或通道B与其内部的低噪声可编程放大器相连。通道A的可编程增益为128或64倍,对应的满额度差分输入信号幅值分别为±20 mV或±40 mV;通道B则为固定的64倍增益,可用于系统参数检测[11]。
由于编写程序时是通过直接判断重物的大小来做出相应的处理,所以首先需要将A/D值反向转换为重力值,已知传感器供电电压为4.3 V。假设重力值为A kg(A≤20 kg),测量出来的A/D值为y。
下面给出将重力信号转换成模拟信号的运算过程(以便在keil软件中编码程序)。
发送给A/D转换模块的电压为:
A×V/M=0.215A
(1)
式中:A为假定重力值,V为传感器供电电压4.3 V,M为传感器最大承重20 kg。
经过128倍增益后,电压为:
V1=128×0.215A=27.52A
(2)
转换为24 bit数字信号为:
V1×224/V=107 374.1824A
(3)
在C语言程序中,因LONG型变量计算速率和存放空间时占用资源较多,因此,通过除以100将其缩放为INT型,方便后续计算,得到:
y=G×A/100=107.4A
(4)
式中:G为转换为24 bit后的数字信号值。
由式(4)可以得到:
A=y/107.4
由此,根据计算所得,keil软件中编码语句应为:
Weight_Shiwu=(unsignedlong)(float Weight_Shiwu/107.4);
修改部分代码用于校准[12](语句在程序开始处定义),可以增加或减小数值以校准传感器,该数值一般为4.0~5.0(即103.4~111.4)。此处取104,即程序中定义:
#define Gap Value 104
在Proteus软件中将画好的实物图连接完成且程序调试成功后点击仿真按钮,得到如图5所示的结果。如图6所示为电机转速随物体重量变化的仿真结果,结果表明:当无压力时为电机正常转速(30 r/min);而有压力存在时速度下降,以使整个运行过程更加平缓,且转速随着重量的改变而实时改变;当压力超过设定范围时电机立马停止运转,以实现保护电机的目的。
图5 有压力时电机转速
图6 电机转速变化曲线实物图
将控制系统所用元件的实物按照原理图连接好,得到如图7所示的实物图。通过程序烧录软件将编好的代码写入51单片机中;由于电机的额定电压为24 V而单片机无法提供此电压,所以此处使用24 V变压器通过L298模块与电动机和单片机连接从而控制电机运转;将HX711按照原理图与单片机连接好后开始测试。测试中有两台不同型号的电机均达到了随载物板重量改变而实时改变转速的目的。结果证明该设计可行。
图7 控制部分实物图
该设计采用循环判断重物重量来调节单片机输出频率以实现实时控制电机转速的目的。单片机中写有超重报警程序,当重物超过电机承受能力也就是大于设定值时停止运转,同时设置了急停按钮防止高空坠物等安全问题。该设计装置操作简单,价格低廉,尤其可为许多老人提供极大的帮助,可以为单元或者个人安装。此方案是以小区住户为主要应用群体而展开的传动系统与控制系统的设计,为以后楼房建设提供了新思路,且其应用范围较广,具有一定的实用价值。