第2章 自动雨刷器的总体设计
第2.1节 总体设计
2.1.1 设计思路
该设计的总体思路是通过软件控制雨刮器电机根据相应的环境进行不同的旋转,原理是利用雨水传感器感应雨量,将感应信号传输到单片机系统。 例如,当检测到小雨时,电动机将以小雨模式工作(电动机旋转5秒钟时,它将停留5秒钟,然后继续旋转); 当检测到中雨时,将启动大雨运行模式(当电动机旋转10秒钟时,它将继续工作); 当检测到下雨时,它将启动大雨运行模式(电机连续旋转以旋转转弯)。
2.1.2 总体设计框架图
智能雨刷控制系统总体设计框图如图2-1所示,整体设计由6个部分构成,分别是:单片机最小系统、LCD1602显示模块、按键控制模块、雨量感应传感模块、步进电机控制电路模块。
单片机最小系统是自动雨刷控制系统的核心,连接数据采集端、状态显示端和命令控制端;
本设计中的显示部件由LCD1602显示模块组成,主要功能是显示雨量大小状态显示,雨量最低开启值显示,比较直观显示整个系统的状态;
键盘模块主要是雨量上下限值按键控制模块,实现手动操作设置雨量大小上下限值的设定;
雨量传感器采用专用的湿度传感器,成本低,控制灵活,电阻是模拟信号,需要经过信号调理电路,将其转变成数字信号传送给单片机;
步进电机控制电路模块是系统的控制端,其控制命令来源于单片机,但是是由传感器感应雨量大小触发的。
图2-1 自动雨刷器总体设计框架图
第2.2节 方案的论证
2.2.1 主控芯片选择
由于这次的设计内容是一个雨刷器的开关控制,控制不会过于复杂,所以采用一片单片机控制方案。这个方案采用一片单片机来控制一个雨刷器运转,其中包括扫描所有按键、电机驱动的控制、LCD1602显示雨量大小,并对所有的信号通过处理实现相互连接转化,最总实现雨刷的正常运转。
优点:单片机利用率较高,成本低、可靠性高。
缺点:控制系统相对复杂,只适用于较为简单的自动雨刷控制系统中。
2.2.2 电动机选择
方案1:当脉冲信号传输到步进器时,它将根据数据旋转固定角度。利用步进电机用作动力组件。 步进电机是将电脉冲转换为角位移的执行器。 但是步进电机是由脉冲驱动的,因此可以通过控制脉冲数来控制电机的角位移,从而达到精确定位的目的。 还可以通过控制脉冲频率来控制电动机的速度,从而达到调速的目的。
优点:结构简单、可靠性高和成本低。
缺点:速度不快,一个角度一个角度转动,高速时会有尖锐的声音和较大的振动。
方案二:直流电动机用作功率组件。 直流电动机由两部分组成:定子和转子。 定子上有极,转子上有绕组。 通电后,转子上将形成磁场。 定子和转子之间存在一个角度,这使电动机在定子和转子磁场的相互吸引下旋转。 直流电动机广泛用于许多具有高启动转矩,大转矩和低惯量的系统。
优点:具有速度快,应用方便,驱动简单,程序可控性好,电路相对简单,调速性能好,适用范围广,调整方便等优点。
缺点:精度不高。
方案选定:自动雨刷器控制系统对速度没有太高的要求,使用步进电机也可以速度可控,而且对雨刷开关精度高。所以选择方案一来实现。
标题第3章 系统中的主要器件介绍
第3.1节 主控制器(STC89C52)
STC89C52单片机的结构
STC89C52用作系统中的主控制芯片。可扩展性也比较高,具体的应用空间非常广阔。 STC89C52使用经典的MCS-51内核,这使得该芯片具有传统51单片机所没有的功能。 STC89C52在单个芯片上具有智能8位CPU和系统可编程闪存,这使STC89C52为许多嵌入式控制应用系统提供了高度灵活且超级有效的解决方案。 其主要功能如下:工作电压:3.3v-5.5v(5V单片机); 2.0v-3.8v(3V单片机)。
STC89C52的频率范围是0-40mhz,相当于8051的0-80mhz。实际工作频率可以达到48 MHz。
应用程序空间为8K字节。
512字节ram集成在芯片上。
重置通用I / O端口(32个端口)后,P0,P1,P2和P3是准双向I / O端口。 端口P0是漏极开路输出。 当用作总线扩展时,无需添加上拉电阻。 当用作I / O端口时,必须增加上拉电阻。
ISP(系统可编程)IAP(应用程序可编程),无需特殊编程器即可进行编程,无需特殊模拟器即可进行仿真,可以通过串行端口(RXD / P3.0,TXD / P3)直接下载录制程序。 1),并且可以在几秒钟内刻录单片机程序。
EEPROM功能:看门狗功能。
图3-1 STC89C52管脚图
第3.2节 电机驱动芯片(ULN2003)
由于MCU的接口信号不够大,需要通过ULN2003对其进行放大,然后再连接到相应的电机接口。 ULN是一种集成的达林顿IC,还包括一个二极管,用于消除线圈反电动势,该电势可用于驱动继电器。它是一个双16引脚封装,NPN晶体管矩阵,最大驱动电压= 50V,电流= 500mA,输入电压= 5V,适用于TTL COMS,由达林顿晶体管驱动电路组成。用户输出端口的外部负载可以根据上述参数进行估算。以下是功能:
①ULN2003的每对达林顿串联连接的基极电阻为2.7K,可以在5V的工作电压下与TTL和CMOS电路连接;
②直接连接可以直接在标准逻辑缓冲区中处理要处理的原始数据;
③ULN2003工作电压高,工作电流大,填充电流高达500mA,合闸时可承受50V电压,输出也可与高负载电流并联运行;
④ULN2003用DIP-16或sop-16塑料包装;
图3-2 ULN200管脚图
第4章 自动雨刷器硬件电路设计
第4.1节 单片机最小系统
复位电路和时钟电路是单片机最小系统常见的两个功能,其中复位电路是由按键、保护电阻、上拉电阻和电容组成,可以实现按键手动复位和上电自动复位,与单片机的9脚复位端相连。52单片机是高电平复位,所以给单片机加5V电源(上电)启动时的,电容充电相当于短路,RSTET上的电压就是VCC,这时单片机就是复位状态。
图4-1 最小系统
晶体振荡器电路, 单片机包括反向放大器和高增益。 它的输入是引脚XT1,其输出是引脚XT2。 通过将两个引脚并联连接到一个振荡器和两个电容器来形成自激振荡器。 STC89C52RC电路采用11.0592Mhz晶体振荡器
第4.2节 步进电机驱动电路
步进电机是一种将电脉冲信号转换为线性或角位移的致动器。它不能直接连接到交流和直流电源,因此必须使用特殊电路来控制驱动器。典型的步进电机控制系统:控制器可以发出脉冲信号,其脉冲频率可以连续从几赫兹变化到几十千赫兹。为环形分配器提供脉冲序列。环形分配器的主要功能是根据某些规则分配来自控制链路的脉冲序列,并通过功率放大器的放大将其添加到步进电机驱动电源的每个输入中,以驱动电机的旋转。
步进电机由ULN2003芯片驱动,驱动电路包括ULN2003主芯片,漏极电阻和220UF电容器。 IN1-IN4是信号输入端子,与单片机的P1.0-P1.3接口相连以进行驱动。并且需要10K上拉电阻。 IN1-IN4改变不同的信号,而OUT3-5将电动机的旋转作为输出信号进行控制。 ULN2003引脚8上的GND接地,引脚9上的COM连接到VCC。
图4-2 步进电机驱动电路
第5章 自动雨刷器软件设计
第5.1节 软件总体设计
根据系统设计要求,自动雨刷控制的程序应满足以下要求:
(1)启动主程序,首先关闭中断并设置堆栈,然后初始化寄存器以初始化显示内容。
(2)初始化程序,使LCD1602显示默认降雨量的上下限值。
(3) 然后执行密钥查询并执行相应的操作。 如果是设置键,则设置要比较的值。
(4)(检测降雨值与上下限设定值之间的关系; 当雨量传感器获得的值超过上限值时,驱动步进电机以提高速度。 当该值在上限值和下限值之间时,步进电机会正常旋转; 当该值在下限值之间时,步进电机不旋转。程序流程图如图5-1所示。
图5-1 软件总体流程图
自动雨刷的整个软件设计包括以下几部分:步进电机工作模块、按键控制模块、LCD1602显示模块、传感器自动控制模块。
第6章 自动雨刷器调试
第6.1节 系统硬件设计、组装和调试
6.1.1 制作电路板
电路板在制板之前需要经过原理图和PCB图的绘制,然后通过印版、腐蚀和打孔就完成了板子的基本构成。
原理图在绘制之前要收集资料,确定系统方案,选择好合适的芯片,每个模块所具备的器件形成列表。新建工程后将图纸设置为A4纸,方便后来的图纸打印。绘制原理图时要注意很多细节地方,第一调用元器件时要选择合适的器件,没有合适的器件时要自己绘制器件图,绘制器件图时要注意管脚口必须向外,每个管脚的名称也要注意;第二是器件之间的连接,包括芯片之间的连接和芯片与其他器件的连接,芯片之间的连接通常使用标号连接,标号要达到对称,芯片与其他器件一般直接用线连,绘制时要注意节点;第三是电源线和地线的标示要清楚,不要有电压线和地线的遗漏。当然,在原理图绘制过程中还有最重要的一点是器件的封装,这将直接影响PCB图的布局和器件的安装。
原理图完成后就要进入PCB的布局,从原理图导入到PCB后要通过四步来完成整个布局。第一步是绘制边界,按照需要的长宽来绘制,当然必须在KeepOutLayer层来进行连接;第二步是确定器件位置,将所有器件摆放在合适的位置,这是一个难关,因为直接关系到器件的安装和器件之间的连接,还要考虑器件之间的干扰,摆放器件时尽量按照模块化来区分,这样容易操作;第三步是器件之间的连线,在BottomLayer层进行连接,在连接之前要设置好安全距离、面板和线的宽度,电源线和地线为1.5mm,其他连接线为1mm;第四步当然是跳线的连接了,因为绘制的是单面板所以肯定有些线要通过跳线来连接。当然,在PCB中不能忘记更改焊盘的大小,否则印制出来的板子打孔后没有焊盘了,板子就失败了。
在完成原理图和PCB后就轮到了做板了,第一步是转印,单面板只需要印一边比较方便,将转印纸铺在用砂纸磨好的铜板上,将纸铺平铺紧后用熨斗烫,用熨斗平滑的在纸上挪动,让每个地方都受热均匀,大约烫5分钟即可。等待板子冷却后再将热转印纸去掉,检测板上的黑线是否有断,若有就用油性笔补线。第二步是腐蚀,将板子放入调配好的腐蚀液中,等待除黑线外所有的铜全部被腐蚀掉后,将板子取出用清水冲洗后擦干。第三步是打孔,因为在PCB中将焊盘全部改大了,所以统一用1mm的钻头进行打孔,打孔是要注意不要不要打偏,打偏容易打掉焊盘。最后一步是用砂纸将油墨去掉后擦干涂上松香,待松香干了以后即可焊接。
6.1.2 元件焊接
单面板的焊接是最基本的焊接,没有采用贴片器件,只需要将器件安装在指定的位置,然后将每个管脚都用电烙铁加上松香融上焊锡进行焊接,但焊接使要防止引脚因焊接不当短路或断路,就是不要出现虚焊和过度焊接。虽然全部是直插器件,但为了方便焊接从高度低的开始焊接,从低到高也是为了避免焊接出来的器件不美观。
元件焊接非常重要,在实际的调试过程中,遇到了很多问题,例如在焊接元器件是,有的元器件没有焊接结实出现了松动的情况,造成采集数据不准确或者异常。此外还有元器件焊接时,将部分线路焊接联在一起,导致电路板故障等等问题。
6.1.3 整板测试
整个电路板按照电源和地的顺序进行测试,然后再次进行测试。 首先打开系统电源。 再次测试焊接零件,然后在通电之前检查电路板。 还需要逐个引脚检查每个设备。 必须检查是否有错误的焊接或与其他信号线的短路。 看看设计是否有问题。 因此,必须重新检查设备的引脚功能。
6.1.4 上电功能测试
当线路板通电后,首先观察单片机是否发热等异常情况,然后观察显示系统是否正常工作。如有异常,应先检查显示电路电源的正负极是否反向连接。如果电源正极和负极都没有问题,用万用表检查电压是否正常。
根据系统方案设计的模块化思想,应在模块中对系统进行测试。 首先,应测试电源部分。 系统上电后,检查设备的电源端口和电源组件是否正常工作。 同时,请注意系统是否过热。 如果存在,则可能导致相应设备损坏或短路,请在通电之前进行处理。 如果没有问题,可以测试该功能。
首先对按键和指示灯进行测试,编写一个小程序使按键按下时相应的指示灯亮起,检查按键焊接是否有故障,指示灯是否亮起;其次,测试LCD1602液晶显示器,通过程序使液晶显示器各点正常工作,并检查各点是否能点亮;最后,测试电机的功能该程序控制电机驱动模块,看看它是否可以实现正、负旋转和停止。
第6.2节 系统各模块软件调试
本设计的软件调试工作主要采用是KEIL和ISIS进行,前者进行程序的烧制和测试,能够发现程序运行过程中的逻辑和语法错误,后者能够在程序运行无误后进行仿真测试。在进行KEIL调试时,应当对每一个功能模块进行分别测试,看是否每一个模块能达到预定的功能不,如果能实现每一个模块功能后,再调试MAIN程序,当调试MAIN程序无误后,进行仿真测试,将程序烧制到ISIS仿真电路中进行仿真测试。
6.2.1 步进电机模块调试
对于52系列单片机的软件开发,一般的方法是通过程序设计,编译和调试,在PC机上使用Keil等开发工具。 程序调试完成后,将目标文件下载到单片机的硬件电路时,将使用生成的目标文件进行硬件调试。
该方法仅在硬件电路完成后才能测试系统功能。 如果发现硬件电路存在设计问题,并且必须在此时进行修改,则将严重影响系统开发的成本和周期。 因此,本文采用了系统软件与硬件协同仿真的开发方法,使得在实现硬件电路之前进行功能测试成为可能。 同时,硬件电路的软件仿真为硬件电路的设计与实现提供了有力的保证。
步进电机是通过ULN2003驱动芯片来实现的运转的,测试当整个电路板通电后,按下开启按钮,步进电机是否能正常旋转,是否能旋转到指定位置,同样按照以上方法测试发转是否正常,应当保证保证检测功能能顺利完成,因为检测是整个雨刷运行的基础,如果检测功能无法正常运行,整个自动雨刷无法进行正常运转。
6.2.2 按键控制调试
按键电路是一个具有5个按键的独立键盘,由STC89C52的P1端口组成。独立键盘的每个键彼此独立,并且每个键都与I / O端口线连接。独立的键盘电路非常简单,调试也非常方便,只需要分别测试每个按键即可。
为了调试按键模块程序,首先,使用延迟程序消除按键被按下时产生的抖动延迟。设置延迟程序后,如果调试没有问题,则表示添加密钥延迟程序没有问题。如果有问题,则将延迟时间更改为3-5ms。系统中有5个键。每个键的功能由程序检测。按键关闭稳态时间由操作员的按键时间决定,通常在零秒和几秒之间。然后,判断是否可以实现按键功能,并通过调整程序来实现各个按键的功能。
6.2.3 LCD1602显示模块调试
LCD1602显示模块调试相对较为复杂,涉及到其驱动程序设计。可以采用控制变量的方法来解决问题。
测试程序,先找一个确定可以使用的程序来测试显示。这样的程序网上很多。一般要注意的问题就是引脚的物理链接和程序里面是否对应。还有就是背光部分和对比度,这个调试不好的,是不能显示的。
LCD1602液晶显示屏数据显示通过程序来实现,查看按下的档位显示是否与实际转速相符。
6.2.5 雨刷传感器控制模块调试
雨刷传感器模块分为三个部分的调试,一是雨量小于下限值的调试,二是雨量在上下限值之间的调试,三是雨量大于上限值的调试。在程序调试过程中要注意开关门速度的调节,尤其是PWM信号控制电机的程序要尤其注意。
第6.3节 调试小结
在核查的过程中,要重点核查电源正负极和其他根电源的连接线路中是否存在短线的情况,当这一部分没有问题后,再核查地址、数据、控制总线连接有没有问题,这种通常表现为断路或者短路的情况。单片机的外部振荡电路是否紧靠单片机焊接安装,晶振电路距离单片机越近,寄生电容产生的越少,能有效降低单片机运行故障率。在电路设计时,应当重视这一点,在焊接时,也认真检查是否存在问题。
本系统硬件调试中难点在于UNLN2003电机驱动芯片,这个芯片为16脚直插芯片极易损坏,而且VCC和GND之间需要焊接一个电容。PWM信号通过输入口控制电机转动速度,通过程序调节占空比的比例来控制电机转动速度,而且速度的变化要可视。在程序与硬件同步控制的调试中,首先调试按键防抖与程序的配合,根据按键的实际情况调整延时时间,确保按键有反应并可以被检测出来。其次是PWM信号的调节与雨刷开关速度的协调,要通过占空比的变化让速度变化可先,这个是调试中比较困难的一点。
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。