摘要:本设计主要针对现有测速系统结构复杂、价格贵以及稳定性不够等问题,采用槽型光电传感器,通过采样其产生的与直流电动小车齿轮相对应的脉冲信号,计算每分钟内脉冲信号的数目,即电机对应的转速值,直流电机驱动采用了PWM控制技术,通过调节占空比来调节速度的快慢,最终系统通过LCD1602液晶显示屏实时显示电动小车的速度和里程。在监控单片机中设定一个速度值,电动小车速度会增加到监控单片机速度设定值,但不会超越监控所设定值。本系统结构简单、实用,测速稳定性及可靠性高。
关键词:槽型光电传感器;电动小车;速度监控;脉宽调制
现有小车测速系统存在结构复杂、价格贵以及稳定性不够等问题,本文介绍了一种光电传感器来测量直流电动驱动小车的速度的系统。这个系统能进行一定的调控速度和反馈调节,并且在液晶屏上显示速度的变化和路程。直流电动小车及光电传感器测速和调控系统是以单片机为核心,槽型光电传感器由发射器和接收器组成,当有物体经过发射器和接收器之间阻断光线时,形成开关信号,直接送入单片机控制模块进行控制计数。通过显示电路和蜂鸣器电路构成系统的输出模块,实现对直流电动小车的速度的测量、显示和报警控制。
1 整体方案设计
以单片机为核心,利用槽型光电传感器电路作为信号的输入模块。根据系统需求,可分为数据采集模块、控制器模块、测速模块、显示模块、时钟模块等。其中数据采集模块由槽型光电传感器组成,光线中断后将信号送给控制模块,由单片机完成对该信号的处理,系统设计框图如图1所示。
2 核心电路设计
2.1 直流电动小车测速和调速模块设计
在直流电动小车的轮胎上的齿轮中安装一个传感器装置,要求检测距离超过一个小车齿轮的宽度,当小车齿轮在不同的时间速度转动时,能够及时的把信号发送给单片机。
槽型式光电传感器通常采用标准的U字型结构,其发射器和接收器分别位于U型槽的两边,并形成一个光轴,当被检测物体经过U型槽并且阻断光轴时,光电开关就产生了开关量信号。
本设计选择使用槽型光电传感器来进行电动小车速度测量,槽型光电传感器是一款红外线感应光电产品,由红外线发射管和红外线接收管组合而成,而槽宽则决定了感应接收信号的强弱与接收信号的距离,以光为媒介,由发光体与受光体间的红外光进行接收与转换,检测物体的位置。
实物图如图2所示。

图1 系统设计硬件框图

图2 槽型光电传感器实物图
本设计中3个端口分别连接在单片机的VCC、GND和P3.2端口上。槽型光电传感器接线图如图3所示。

图3 槽型光电传感器接线图
2.2 调速模块设计
对小车进行调速时,需将小车电机驱动进行脉冲宽度调节,通过调节脉冲宽度来调节速度大小的间隔。脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。
本设计中通过按键选择不同的PWM序列,达到控制电动小车速度大小的目的,通过调节按键的加减来控制速度大小,用灯显示其变化的频率,灯亮频率的越低速度越慢,灯亮的频率越高速度越快,当速度达到最大值时,LED上的灯就会一直亮着,这样也表示如果灯常亮,那么占空比就越大,小车运动的速度也就越大反之,当灯一亮一灭频率比较小的时候,占空比就越小,小车的速度也就越小。如图4所示。

图4 调速模块设计图
2.3 存储模块电路设计
图5中AT24C02的1、2、3脚是3条地址线,用于I2C总线的寻址。第8脚和第4脚分别为正、负电源。第5脚SDA为串行数据输入/输出,数据通过这条双向I2C总线串行传送,第6脚SCL为串行时钟输入线,SDA和SCL都需要和正电源间各接一个10 kΩ的上拉电阻,第7脚用来保护作用。

图5 存储电路图
2.4 显示模块电路设计
LCD1602操作难道及操作原理与LCD12864相似,操作较简单,且可通过编程显示简单汉字,可以显示32字符,并且价格合适,能够满足设计要求。
2.5 报警模块电路设计
本次设计需要一个发声装置,用于在测速过程中,速度超过一定值将发出报警。
本模块是采用有源蜂鸣器、与限流电阻和PNP型的三极管组成。本模块的输入与AT89C52的P3.0相连,通过控制P3.0的输出可以使蜂鸣器发声,P3.0端口输出高电平蜂鸣器不发声,反之输出低电平蜂鸣器发声。如图7所示。

图6 报警模块的设计

图7 蜂鸣器原理图
工作原理:在单片机P3.0端口输出高电平时,三极管Q2为PNP型,使得三极管发射结和集电结均反偏,三极管处于截止状态,蜂鸣器不报警;输出低电平时,使得三极管发射结和集电结均正偏,三极管导通,蜂鸣器报警。
3 软件设计
此次设计最主要的构成电路为:主要有两大类程序,一是速度检测程序模块,二是速度监控调节程序模块。速度检测程序模块中也包括了通信发送程序模块、LCD1602显示程序模块,速度监控调节程序模块中包括了通信接收程序模块、数码管显示程序模块。首先,我们把电路设计为槽型光电传感器检测电动小车齿轮运动,再发送信号至控制电路,由控制电路处理识别,再由显示电路显示经过控制电路计算后的数据,手动调节按键可以调节小车的速度。
3.1 速度检测程序模块设计
开始,首先接通电源液晶初始化,在LCD1602上显示相关参数值,设置定时器T0的参数,然后发送速度V1值,并进行无限循环,最后结束。如图8所示。
3.1.1 通信发送速度(V1)值程序模块设计
开始,定义计数器,设置计数方式及波特率,把小车检测到的速度V1送给串口通信发送端,结束。流程图如图9所示。

图8 主函数流程图

图9 通信发送流程图
3.1.2 中断测速函数模块设计
在此程序中,我们用到中断函数来进行测速。而中断测速的函数原理为:每当齿轮挡住槽型光电传感器时,单片机将接收一个外部中断脉冲信号,而两个脉冲信号间隔的时间,恰好是每片齿轮挡住一次的时间。利用这一点,可以正确的计算出小车的实际速度和里程如图10流程图所示。

图10 中断测速函数流程图
3.2 速度监控模块程序设计
3.2.1 主函数模块设计
在监控主函数中,调用了按键检测函数,按键设定函数,数码管显示函数和通信接收函数。我们调节速度V2值要跟接收过来的实际值速度V1相等,并且对比设定的PWM值。如图11监控主函数流程图所示。

图11 主函数流程图
3.2.2 通信接收速度(V2)值程序模块设计
开始,定义计数器,设置计数方式及波特率,把通信发送端所发送的数据接收,接收小车测量速度V1数据,结束。流程图如12所示。

图12 通信接收流程图
4 测试
将槽型光电传感器安装到小车的轮胎上,采用两个比较长的排针脚将它引出来,然后进行一定的焊接,在进行安装时一定要对齐。把槽型光电传感器的线接好,因为这个传感器输出高电平灯是灭的,输出低电平灯是亮的,所以当小车的齿轮没有挡住传感器光线的对照时,传感器上会显示灯亮,反之当小车的齿轮挡住传感器对射时,传感器上的灯是灭的,而且要将轮子转一圈,看小车上的传感器是亮几次,灭几次,如果对整齐的话,会亮5次,灭5次。

图13 槽型光电传感器安装及调试图
在测速当中采用两块单片机开发板,两个充电宝和一部小车。当按下S3键时,小车开始缓慢加速运动,监控系统上的数码管会显示了一个2,那么测速系统上的LCD1602上会随着小车轮子的转动速度进行变化,路程随之增加,但不会离监控系统所调速度太远。把监控系统速度增加到一定值时,那么测速系统中的速度也会随之增加,当最后把监控中的速度调到最大时,测速系统中的速度会增大到最大值,速度也不会提升,会在监控调节的速度中走动。

图14 槽型光电传感器测速图
5 结论
经过软硬件的设计和调试测试,该系统能进行一定的调控速度和反馈调节,并且能在液晶屏上显示速度的变化和路程。具有测速、调速、控速的效果,系统结构简单、实用,人机界面友好,测速稳定性及可靠性高。后期研究可以向其他方向进行推广延伸。