基于单片机的汽车雨刷器装置设计

收藏和点赞,您的关注是我创作的动力

概要

  下雨天时道路十分模糊,能见度非常低,司机分散注意力去手动打开雨刷器开关会非常危险。据统计,全世界雨天行车的车祸事故有7%是因为司机手动打开雨刷分心导致的。为了减小司机因为手动打开雨刷发生车祸的概率,所以如今研发一种雨刷自动控制器是非常有必要的。该系统主要从硬件设计和软件编程两个部分进行设计,硬件部分由单片机、雨滴传感器、步进电机、按键、ADC0832模数采集模块、LD3320语音模块、显示屏等模块组成,实现了根据车窗覆水量和识别语音指令来控制雨刷的转速。该系统通过覆水量判定的湿度阈值来设定上下限值,当覆水量小于设置的下限值,雨刷停止,当覆水量处于上限值和下限值之间,雨刷速度进入一档位,当覆水量大于设置的上限值,雨刷速度进入二档位。此外,还可以通过语音指令来实现雨刷转速控制、切换模式和开/关系统等功能。软件部分使用c语言对LD3320模块、键盘模块、语音识别模块、雨滴传感模块等模块进行子程序的编写和主程序的编写,实现了各个模块的运转从而实现了雨刷器的自动控制。该雨刷可以预防驾驶员在行车过程中会遇见的大多数未知情况,极大的减小了司机发生车祸的概率。

关键词:单片机;模块;传感器

一、系统设计总体思路

  设计项目是需要一个完整的总体思路作为指导,总体思路的正确会使项目在设计的过程中顺利执行,避免走入误区,一般项目在设计时通常会考虑以下的内容:
(1)硬件设计:硬件设计是基础型的原理性设计,首先就是对核心的单片机进行选择,根据单片机的型号、内存、引脚数量、运行速度等等参数,再结合项目的需求选取合适的单片机。其次需要对传感器的性能、功能进行全面的掌握,尤其是在传感器引脚的使用方面更要全面了解,通过查找传感器的器件手册了解传感器的引脚分布和封装尺寸,这样才能选取符合的传感器。在所有需要的模块确定完毕之后,进行原理图的绘制,绘制过程中不断的参考资料,完成原理图设计。最后对照原理图完成实物的焊接工作。
(2)软件设计:软件设计是依托于硬件原理之上进行设计的,硬件需要软件来运行功能,软件需要硬件实现功能,在本质上是一个相互依存的关系,软件设计必须严格对照硬件引脚进行代码的编写,否则将无法实现所需要的功能,对于大多数的时候,为了代码编写方便需要随时调整硬件引脚的位置。在软件代码设计的时候,第一步完成的就是主程序的框架设计,框架中可以没有具体的功能,但必须要层次清晰,为不同功能的子程序分配位置,避免相互干扰,出现混乱。主程序的框架结构搭建完成之后,就需要编写各个子程序的代码,实现模块化设计。
(3)系统的测试:系统测试在设计中是非常重要的,测试中会发现设计的缺陷,硬件和软件在设计的过程中难免会出现偏差[6],细微的偏差将会导致功能的不可实现,尤其在功能相互重叠的地方,子功能调试都没有问题,整体调试却出现功能不可控,这就需要优化代码或者变更硬件来解决。在反复的测试中查找问题,优化代码,使整个项目功能达到满意。

二、系统方案设计

2.1 系统设计内容

  系统硬件设计框图如图2.1所示,其中单片机最小系统起到中枢的作用;LCD1602显示模块主要功能是显示覆水量大小,雨刷转速挡位,控制状态以及覆水量上限值和下限值;键盘模块主要是对覆水量量下限值的设置和对控制状态(自动或者手动)的设置;语音电路识别语音指令进而控制雨刷转动;雨滴传感电路采用专用的湿度传感器,需要经过数模转换电路传送给单片机。主要研究内容如下:
(1)完成雨滴传感器的硬件电路设计,软件程序设计,将数据采集到单片机;
(2)完成步进电机的电路设计,软件程序设计;
(3)完成电机驱动的电路设计,确定驱动电平;
(4)完成模数转换的电路设计,软件程序设计,将模拟量转换数字量;
(5)完成显示器的电路设计,软件程序设计,将单片机数据进行显示;
(6)通过按键具有设置参数功能;
(7)完成语音识别LD3320的电路设计,软件程序设计。

在这里插入图片描述

图2.1硬件框图

三、系统设计

  本次程序设计采用的编程语言是C语言,C语言具有简单易懂,逻辑判断能力突出等特点,编写程序的开发软件是Keil软甲,在设计中,首先完成的是主函数的框架结构,在框架结构中布置各个子程序的分区功能,根据逻辑的执行确定子程序的先后执行顺序,主函数框架编写完成之后,开始进行子函数功能编写,根据每一个的功能实现代码设计,每完成一个子程序就可以进行Keil软件编译,编译成功将HEX文件下载到单片机运行,运行成功后进行下一个子函数编写,直到全部功能调试完毕。

4.1 系统程序设计软件介绍

  程序软件设计所指的就是程序代码的设计,程序代码通过语言来进行编写,语言再通过编译软件编译成单片机能识别的只有1和0的逻辑语言。程序员所编写的是C语言或者汇编语言,通过工具完成编写语言到机器语言的装换,这个工具就是单片机的开发软件,我们所使用的开发软件是KEIL软件,使用的是C语言,KEIL软件将这种语言翻译成机器语言,也就是前文提到的只有0和1的逻辑语言,将其下载到单片机中,使单片机按照语言的逻辑运行。KEIL软件的功能极为强大,执行的工作不仅仅是翻译高级语言,同时还会查找高级言中的错误,并且进行提示,指出错误的地方,方便程序员进行修改。
  KEIL软件的开发界面给人一种干净整洁的观感,没有丝毫的杂乱,简单明了的指令系统得到众多程序员的认可,是最受欢迎的软件之一,KEIL软件涵盖了众多型号的单片机库,很多的单片机都可以使用KEIL软件直接进行开发,无需对新的开发环境进行了解,节省开发的时间。新建工程界面如下图4.1所示。

在这里插入图片描述

图4.1新建工程界面
程序编写KEIL的界面如下图4.2所示。

在这里插入图片描述

图4.2程序编写KEIL
下载程序界面如图4.3所示。
在这里插入图片描述

图4.3HEX文件下载界面

4.2 系统主程序

  系统的程序分为主程序和子程序,这也是模块化编程的基本思路,所有的子程序都需要围绕主函数展开,可以说主函数是整个系统的核心,主函数对系统的功能进行分层处理,架构起系统编程的框架,在框架下运行每一个子程序,通过顺序执行子函数完成系统的功能设计。首先进行系统的初始化和显示初始化,之后进行雨滴检测功能,当检测雨量大于限值,步进电机开始带动雨刷器工作,雨滴小于限值时停止步进电机工作,检测的雨滴数据通过显示模块进行显示,之后程序循环执行。

四、实现

  系统仿真的优势是可以实时观测系统内部的运行状态,我们在进调试时会不可避免的出现一些错误,这时候无论从硬件和软件有时都很难发现错误,但我们如果进行仿真去检测错误就会方便很多。系统仿真图如5.1所示。
在这里插入图片描述

图5.1系统仿真图
  在仿真过程中,出现了在自己创建的元器件上无法连线的情况,原因是管脚之间的距离太小了,后来重新编辑无法连线的元器件,把它的管脚间距调大一些就解决了这个问题。在仿真过程中库里会经常找不到元器件,比如LD3320芯片,如果库中没有的话,我们可以通过找资料查询芯片手册来了解元器件功能来制作功能相近的原件。

5.2 系统制作

在仿真过程中,出现了在自己创建的元器件上无法连线的情况,原因是管脚之间的距离实物设计主要包括以下几个步骤:
(1)焊接实物是实物产品设计最为基础的分部,实物焊接是否正确决定实物功能是否能够实现,在这一过程中需要对传感器元器件进行确认,对元器件的引脚功能进行辨别,通过对比元器件的技术手册的引脚定义与原理图设计进行比对,确定无误后进行焊接,焊接时需要对焊接的温度进行控制,尤其对一些不耐热的器件需要快速准确完成焊接。
(2)焊接完毕后的检查工作,肉眼检查器件有没有反向焊接,检查引脚所焊接的位置和线路的连接,电路板上的焊点是否存在忘记焊接的现象,密集的焊点之间是否存在着连在一起的错误,这些可能出现的表面问题需要依靠肉眼完成检查,再检查的过程中做到细致、认真、耐心,需要条理清晰的逐一检查,以免漏检在后期上电的时候出现器件不可逆的损害。
(3)通路实验检测,依靠万用表工具对线路进行检查,使用万用表的通断测试档位,对电路板的电源和地进行测量,这一步是为了避免最为严重的短路现象发生,一旦发生就会对电路板上的所有器件造成一定的损害,使部分功能失效,影响后续的功能调试。电源故障排除之后,对其他的线路按照原理图一一测试,逐一排查,直到全部测试完毕。
(4)实物通电试验,实物上电后,对于弱电部分可以用手背感测器件的温度,温热表明器件正常工作,过热说明器件工作不正常,需要重新检测。使用万用表的电压档位测试各个部分的电压是否正常。
(5)实物调试,在实物调试中需要程序代码写入到实物中运行,运行时可以将功能进行模块化调试,对每一个功能单一调试,保证单一功能的程序正确性,所有功能逐一调试之后,进行总体调试,完成系统的功能设计。
(6)实物性能测试,性能测试建立在功能全部实现基础之上,通过程序代码的运行逻辑,对实物的运行速度、控制器的反应时间、极限数据测量等等进行测试,不断的通过优化代码设计,完成性能的测试工作。焊接的图片如图5.2所示:
在这里插入图片描述

图5.2系统焊接图
在仿真过程中,出现了在自己创建的元器件上无法连线的情况,原因是管脚之间的距离系统实物图片如图5.3所示:

在这里插入图片描述

图5.3系统实物图

五、 文章目录

目录
摘要 I
Abstract II

1 引言 1
1.1 课题背景 1
1.2 研究意义 1
1.3 研究综述 1
1.3.1 国外研究和发展现状 1
1.3.2 国内研究和发展现状 2
1.4 系统设计总体思路 2
2 系统方案设计 3
2.1 系统设计内容 3
2.2 系统方案论证 3
2.2.1 主控方案选择 3
2.2.2 电源电路选择 4
2.2.3 按键电路选择 5
2.2.4 显示器的选择 5
2.2.5 AD采样选择 5
2.2.6 语音识别模块选择 6
3 系统硬件设计 7
3.1 单片机 7
3.2 单片机最小系统 8
3.3 液晶显示电路设计 9
3.4 按键模块电路设计 11
3.5 雨滴采集电路设计 11
3.6 ADC模数电路设计 12
3.7 语音电路设计 12
3.8 步进电机电路设计 13
4 系统软件设计 14
4.1 系统程序设计软件介绍 14
4.2 系统主程序 15
4.3 液晶显示子程序 16
4.4 按键电路程序 16
4.5 语音识别程序 17
5 系统仿真与制作测试 19
5.1 系统仿真 19
5.2 系统制作 19
5.3 硬件调试 21
5.4 软件调试 21
结论 23
致谢 24
参考文献 25

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值