用ATmega64作为主控芯片设计的蓝牙OBD行车电脑

描述

09年有了自己的第一辆车,车子很一般,是雪佛兰的乐风。没有行车电脑功能。于是想弄一个行车电脑安在车上。在淘宝上搜了一圈,发现现有的行车电脑,功能大多不实用。大部分都是基于标准的OBD协议进行开发,功能无非就是查看故障码、清除故障码、显示转速、车速、水温、进气压力、进气温度等等的一些发动机参数。其实这些参数如果不是维修的话,日常行车基本上没用的。感觉成品的行车电脑不能满足自己的要求。于是萌发了自己制作一款多功能行车电脑的念头。

于是开始查资料、研究车辆的OBD协议,设计线路板、编程、调试,经过1年多的时间,经过了3个版本的修改,最终做成了现在的这款行车电脑。自我感觉还不错,用的效果也很好。现在共享出来给大家。本人的单片机水平纯属业余爱好,在此之前只会一些51的单片机,第一版就是用的51的单片机,后来用AVR,也是临时学的。编程很线路图设计都很差劲。不过,功能好歹都实现了。ATmega64整个系统采用ATmega64作为主控芯片,用24064的黄绿液晶作为显示屏(T6963C驱动),DS1302作为时钟芯片,读取时间。用2个DS18B20温度传感器检测车内及车外温度,用C3-370C的GPS模块作为GPS接收装置,读取经纬度、海拔、航向等信息。在发动机的OBD接口上安装一个蓝牙的OBD模块(买的),系统板上也采用一个蓝牙串口模块,系统板和车辆之间通过蓝牙串口来透明的传输发动机数据。电源采用的是LM2596,其实整机功耗不大,用7805也可应付。按键采用的是4个独立按键(上图搞错了)其实这4个按键我借用了乐风的电控后视镜按钮。(我的车是低配,是手动调节后视镜,但是有安装电调后视镜按钮的位置。所以我买了一个后视镜调节按钮,当作了系统的按键)。系统板上留出了ISP接口和JTAG接口,方便下载程序和在线调试。下面是原理图:ATmega64

下面是用的LCD屏。24064的黄绿点阵。T6963C的控制器。这个屏是我在单位的一台废旧设备上拆下的。工业级的。还不错。

屏和主板是两层设计,中间的是蓝牙串口模块。

ATmega64

ATmega64

放在车上的效果。

下面介绍一下各个界面第一屏,最常用的信息,开机后就在这个界面ATmega64ATmega64ATmega64从左到右依次显示:加油时间、单价、加油量(L),总钱数当系统检测到加油后,或者在“加油统计”界面选择“增加”,进入如下界面ATmega64ATmega64ATmega64

ATmega64

程序是用C语言写的。本人水平有限。我自己看着都很乱。附件中含有清晰版的原理图和源程序。用CodeVisionAVR V2.04.4a编译。压缩包内自带工程文件与源文件。编译没有错误,但是有警告。注意源文件中有DS1302.lib和DS18B20.lib两个文件,要拷贝到CodeVisionAVR的安装目录下的lib文件夹内,替换系统自带的两个文件。因为我对这两个文件做了修改。       一直想弄个外壳,在淘宝上找了很久,也没找到合适的外壳。没有外壳就暂时裸奔吧!       说说使用的感受:       1.跑高速时很爽!在这个安装位置正好,需要看时速时眼扫一下就可以,或者设定好超速报警,开就是了,根本不用低头看车速!       2.平均油耗,至少在我的车上还是比较准确的。       3.海拔高度显示比较有意思。至少让你知道你所在地的高度。       4.其它的一些统计功能也比较有用,可以让你更清楚的掌握自己的行驶情况。       5.方向显示不会让你转向!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分