DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 156|回复: 0
打印 上一主题 下一主题

基于单片机与光电传感器的电动自行车速度/里程表设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 17:04:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                      从保护环境和经济条件许可等因素综合来看,电动自行车目前乃至今后都有着广阔的发展空间。目前市面上电动自行车的速度表和里程表都是机械的,看起来不够直观与方便。如果能用led直接显示出来里程数或速度值,就可节省用户的时间及精力处理自行车行进过程中的突发事件。
  本文介绍的速度与里程表设计以单片机和光电传感器为核心。传感器将不同车速转变成的不同频率的脉冲信号输入到单片机进行控制与计算,再采用led模块进行显示,使得电动自行车的速度与里程数据能直观的显示给使用者。
系统概述
  本系统由信号预处理电路、单片机at89c2051、系统化led显示模块、串口数据存储电路和系统软件组成。其中信号预处理电路包含信号放大、波形变换和波形整形。对待测信号进行放大的目的是降低对待测信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的ttl信号;通过单片机的设置可使内部定时器t1对脉冲输入引脚t0进行控制,这样能精确地算出加到t0引脚的单位时间内检测到的脉冲数;设计中速度显示采用led模块,通过速度换算得来的里程数采用i2c总线并通过e2prom来存储,既节省了所需单片机的口线和外围器件,同时也简化了显示部分的软件编程。
  系统的原理框图如图1所示。



图2 脉冲发生源硬件结构图(左为正视图,右为侧视图)

  • 信号预处理电路

    如图3所示,系统的信号预处理电路由二级电路构成,第一级是由开关三极管组成的零偏置放大器,采用开关三极管可以保证放大器具有良好的高频响应。当输入信号为零或负电压时,三极管截止,电路输出高电平;而当输入信号为正电压时,三极管导通,此时输出电压随着输入电压的上升而下降,这使得速度里程表既可以测量任意方波信号的频率,也可以测量正弦波信号的频率。由于放大器的放大功能降低了对待测信号的幅度要求,因此,系统能对任意大于0.5v的正弦波和脉冲信号进行测量。预处理电路的第二级采用带施密特触发器的反相器dm74ls14来把放大器生成的单相脉冲转换成与coms电平相兼容的方波信号(如图4所示),同时将输出信号加到单片机的p3.4口上。





    图4 施密特触发器对脉冲的整形

    利用施密特触发器状态转换过程中的正反馈作用,可以把边沿变化缓慢的周期性信号变换为边沿很陡的矩形脉冲信号。输入的信号只要幅度大于vt+,即可在施密特触发器的输出端得到同等频率的矩形脉冲信号。

    从传感器得到的矩形脉冲经传输后往往发生波形畸变。当传输线上的电容较大时,波形的上升沿将明显变坏;当传输线较长,而且接受端的阻抗与传输线的阻抗不匹配时,在波形的上升沿和下降沿将产生振荡现象;当其他脉冲信号通过导线间的分布电容或公共电源线叠加到矩形脉冲信号时,信号上将出现附加的噪声。无论出现上述的那一种情况,都可以通过用施密特反相触发器整形而得到比较理想的矩形脉冲波形。只要施密特触发器的vt+和vt-设置得合适,均能受到满意的整形效果。??

  • e2prom at24c02的应用

    at24c02是cmos 2048位串行e2prom,在内部组织成256×8位。at24c02的特点是具有允许在简单的二线总线上工作的串行接口和软件协议。

    如图5所示,在本设计中用芯片at24c02的sda端与单片机的p3.7口相连,scl端与单片机的p3.5口相连。因为在这个i2c总线上只有一个器件,所以把at24c02的地址设为000,即把a0、a1、a2都接地。单片机计算出来的里程数据通过sda、scl向at24c02输送数据。单片机首先向at24c02发送写信号,当确认后从单片机内部的数据储存单元提取数据然后向at24c02的内部地址传送数据。当显示里程时,单片机首先向at24c02发送读信号,然后确认后,单片机从at24c02内部的地址向单片机的读出单元字节读出数据,供显示所用。





    图6 显示模块框图

    图7为系统显示部分的电路。系统中用74ls138的y0~y5选择mc14511以驱动led显示,y6、y7来控制cd40756的cp,从而达到以cd4076的q1~q4控制小数点的显示,另一个cd4076只用到其q1和q2,图中字符相对应的地方表示其引脚相连。





    图8 系统软件框图

  • 数据处理

    待测信号经预处理电路后加至单片机的p3.4(t0)引脚可为单片机测量信号频率提供有效的输入信号。单片机通过检测p3.4引脚电平来决定是否启动测量频率程序。当该引脚为高电平时,系统处于等待状态,要一直到该引脚出现低电平时才开始测频率。

    我们可从硬件的铝盘上知道两个过孔之间在圆周上的距离。而这个距离m正好为计算速度和距离起到了基本的数据储备作用。同时可以从tl0寄存器知道在两秒内单片机检测到的n个脉冲。而m×n所得到的正是这两秒内铝盘在圆周上所走得距离s。(此时假设在这个两秒内车子是匀速前进的),距离s除以2s的时间,就可以大概的算出这2s内铝盘的线速度。再根据铝盘与自行车的轮子保持着一样的角速度,得到铝盘的线速度与轮子线速度的关系,从而算出自行车在这2s的平均速度。

    至于里程的计算,根据速度计算的分析,在得到2s内铝盘在其圆周上走过的距离后。根据它与自行车轮子的圆周走过的距离有一定比例关系(通过两者角速度一样的算法)可以通过单片机的算出自行车在这两秒内走过的路程s1。把这个路程s1与存储器原来的里程数相加即可得到目前的总里程数。

    通过单片机计算出来的速度和里程的数据,必须通过bcd码的转换才能输出给显示模块。总里程数的显示是设定出现在电动自行车开动,单片机开机经过初始化后显示出来,这样以来用户可以清楚的知道自己的车子已经运行了多少公里了。而速度的显示则是在计算出速度里程后立刻显示出来,体现实时性。[/ol]
    结论
      本设计以at89c2051为核心,通过光电传感器来检测自行车的运转情况进而实现电动自行车的速度,里程的计算及里程的累计,存储,最后用6位的led能直观的将速度与里程显示给用户,并且在速度高于一定的值时可自动向用户报警,从而达到智能速度里程表。
                
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
    收藏收藏 分享分享 支持支持 反对反对
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

    GMT+8, 2024-5-21 03:12 , 耗时 0.084693 秒, 19 个查询请求 , Gzip 开启.

    各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

    桂公网安备 45031202000115号

    DIY编程器群(超员):41210778 DIY编程器

    DIY编程器群1(满员):3044634 DIY编程器1

    diy编程器群2:551025008 diy编程器群2

    QQ:28000622;Email:libyoufer@sina.com

    本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

    快速回复 返回顶部 返回列表