用单片机制作的自行车里程速度表
时间:10-02
整理:3721RD
点击:
现在很多人都把骑自行车作为一项锻炼身体的运动项目,如果在自行车上加装一个里程速度表,就可以知道自己骑车的速度和行程,从而很好地控制运动量。本文介绍一种用单片机制作的自行车里程速度表,里程和速度显示可进行切换,采用三位数码管显示,最大可显示里程为99.9km,显示最高速度可为99.9km/h。该里程速度表也可以用在电动自行车和速度不超过100km/h的摩托车上。一、电路原理电路见图1,由检测传感器、单片机电路和数码显示电路等组成。[tpDIZI20070429015101] 检测传感器由永久磁铁和开关型霍尔集成电路UGN3020组成。UGN3020 由霍尔元件、放大器、整形电路及集电极开路输出电路等组成,其功能是把磁信号转换成电信号,图2a是其内部框图。霍尔元件H为磁敏元件,当垂直于霍尔元件的磁场强度随之变化时,其两端的电压就会发生变化,经放大和整形后,即可在③脚输出脉冲电信号。其工作特性见图2b。由于有一定的磁滞效应,可保证开关无抖动。Bop为工作点“开”的磁场强度,Brp为释放点“关”的磁场强度。永久磁铁固定在车轮的辐条上, UGN3020固定在车轮的叉架上。检测传感器的工作原理如下:车轮每转一周,磁铁经过UGN3020一次,其③脚就输出一个脉冲信号。UGN3020输出的脉冲信号作为单片机AT89C2051的外中断信号,从P3.2口输入。单片机测量脉冲信号的个数和脉冲周期。根据脉冲信号的个数计算出里程,根据脉冲信号的周期计算出速度并送数码管显示。S1用来进行里程和速度显示的切换,在初始状态下显示的是速度。[tpDIZI20070429015102] 数码管DS1~DS3、VT1~VT3、R4~ R13等组成显示电路,使用共阳数码管。P3.3~P3.5为数码管的动态扫描位驱动。P1.0~P1.6作数码段码输出。二、程序设计程序用C语言编写,由主程序、外中断0服务程序、T0中断服务程序、延时子程序等模块组成。主程序主要完成程序初始化和键盘处理,外部中断0 服务程序由测量、计算、读数等部分组成,T0中断服务程序由计时、动态扫描显示、自行车停车判断等部分组成。从P3.2口输入的脉冲信号作为外中断0的中断请求信号,采用沿触发方式。在测量速度时,由于车轮转动脉冲信号的频率很低,不适宜使用计数的方式进行测量,所以采用测脉冲周期的方法进行测量,用脉冲信号系统来控制计时信号,通过计时数计算出脉冲周期,用车轮的周长除以周期便可得到自行车的行驶速度。在测量里程时,用脉冲信号个数乘以车轮的周长便可获得行驶里程。需要说明的是:脉冲信号周期和个数是同时测量的,要做的只是用按钮开关S1切换显示。本文的程序是针对车轮直径为26英寸的自行车编写的。对于其他规格的自行车,只要改写程序spm=14904(常量1)/ n和spm=207(常量2)×c即可。为了避免使用浮点数,运算结果长度是以百米为单位的,数据读出时,在第三位数加小数点就换算成千米了。为方便读者制作,现列出各种规格的轮径和轮周长、程序常量的对应值见附表,供参考。[tpDIZI20070429015103] 定时器T0的中断定时时间为5ms,每中断一次计时变量n加1,因此n的单位为5ms。例如:自行车车轮转一周对应的n值为100,则对应的时间为 0.5s,由此可得自行车的速度为14.9km/h。如果n的值达到 1000,即5秒钟仍没有发生外部中断,即表示自行车没有前进,n也被清零,速度显示为0。读数采用三位显示,T0中断一次显示一位数,中断3次就可以刷新一次数据,即 15ms刷新一次数据。三、安装与调试传感器的安装与调试是一个关键。将它安装在前轮的位置,把一块小永久磁铁固定在车轮的辐条上,UGN3020作防潮密封后固定在前叉上,使得车轮转动时磁铁从它的前面经过,并使两者相遇时间隔尽量小。安装时,要使磁铁的s极面向 UGN3020的正面。判定磁铁极性方法是:把磁铁的两个极分别靠近UGN3020的正面,当其③脚电平由高变低时即为正确的安装位置。传感器安装完成后,转动车轮,UGN3020的 ③脚应有脉冲信号输出,否则说明两者的间隔偏大,应缩小距离,直至转动时③脚有脉冲信号输出为止。一般间隔为5mm左右,如果间隔小于 5mm仍无脉冲信号输出,说明磁铁的磁场强度偏小,应予以更换。调试结束后,把里程速度表安装在车把手上,打开电源,骑动自行车,这时数码管显示的是速度,如果要显示里程,只要按一下s1,如果要回到显示速度,再按一下s1即可。
无图没法做
x谢谢分享
先看看,谢谢分享!
这个以前在别的网站看到过,制作比较简单。
可不可以更精确呢?
学习!
学习ING
无图没法做
很好的想法
求文档共享啊!
此意@
我有圖檔但是我想改成3位數的,不知道有人會改嗎?
希望有高手可以試試看,並分享成果 感謝!
写得很好,谢谢小编分享。但就是少了点什么的,该是原理图和程序没分享了,如果有的话就可以亲手做了
难道还么有12个字吗?