` 基于stc单片机的自行车码表
大三刚开学一时冲动买了个自行车,这才萌生了做自行车码表的想法。为充分发扬DIY精神所有电路设计程序设计均为原创,边玩边做,边玩边学。先上个图
可记录骑行时间、瞬时速度、骑行总里程、单次骑行里程、平均速度。
采用霍尔传感器配合磁铁,一次脉冲跳变即为车轮走过一周。
图为安装在辐条上的磁铁,完全是DIY 的,把一个铜柱开出一条槽用螺丝固定在辐条上,铜柱顶端安装磁铁。纯手工加工的。
霍尔输出的信号并不是理想的脉冲信号, 我用的这款霍尔不受磁场时电压固定在2.5v,当磁铁的N极接近电压线性升高,当S极接近时电压线性下降。这样的信号单片机是不能直接识别的,所以就设计了脉冲整形电路,看图:
采集进来的信号经过一个555做成的施密特触发器对脉冲整形,运放有两个作用,一是对信号反相便于单片机外部中断处理,二是由于霍尔静态时的电压是2.5v影响单片机对端口状态的判断,所以转变为0-5v的TTL电平,消除影响。
硬件设计基本完毕
。
程序就很简单了,给一个变量设定一个固定值,这个值是自行车轮子的周长。为了精确我用CM为单位。
轮子每转一圈,霍尔感应器感应有一个下降沿跳变,用这个跳变使单片机进入外部中断0。
中断里面开定时器T0,定时器T0设定1ms,设定一个变量t记录时间。当下一次感应的时候,把t的值拿出来赋给t1,并把t清零。t1就是上一圈的时间。
然后以这个时间为依据,算出速度不变时每秒钟走的路程,作为瞬时速度,平均速度就是总路程除以总时间。
全部资料都打包在这里了
`
3
评分
-
查看全部评分
|
|
|
|
您分享的很精彩,电子发烧友有你真精彩,祝你越来越帅
|
|
|
|
|