基于单片机的自动往返小车

合集下载

基于51单片机的自动往返小车设计刘桐

基于51单片机的自动往返小车设计刘桐

参考文献......................................................................................................................20
2
忻州师院计算机系本科学士学位论文
基于 51 单片机的自动往返小车设计
3 自动往返小车硬件设计............................................................................................7 3.1 总体设计..............................................................................................................7 3.2 3.3 4 信号检测模块...................................................................................................7 主控电路...........................................................................................................8
摘 要:自动往返小车,是一种以电子汽车技术为背景,包含小车控制、传感技 术、电子技术、计算机、机械等多学科的科技创意性设计。主要组成模块有以下 几部分:路径识别、行驶时间控制及车速管制等模块组成。 该设计以 51 单片机为唯一主要控制模块,充分利用了自动检测技术、单片 机最小系统、模块电路,以及声光信号的管控、电机的驱动电路。通过 51 单片 机的仿真,通过实践调试与操作,实现小车在直线上的自动往返设计。综合应用 单片机技术、自动控制理论、检测技术等。使小车能在无人操作情况下,借助传 感器辨认路面环境,由单片机主控行进,完成初步的无人控制。 本设计以单片机为核心,附以外围电路,采用光电检测器进行检测信号实现 小车的自动加速、和循线运动。运用单片机的运算和处理能力来加速、减速、急 刹车、掉头、返回、显示行驶路程、行驶时间等智能控制系统。 关键词:51 单片机、检测技术、自动 Abstract : Automatic car back and forth, it is a kind of electronic automotive technology as the background, containing the car control, sensor technology, electronic technology, computer, machinery, and other multi-disciplinary science and technology creative design. Main composition module has the following several parts: path identification, time control, speed control module, etc. With 51 single-chip microcomputer as the main control module for the design, make full use of the automatic detection technology, module circuit, single chip microcomputer minimum system, as well as the acousto-optic signal control, the motor drive circuit. By 51 MCU simulation, debugging and through practice operation, from design to realize automatic car on a straight line. Integrated application of single-chip computer technology, automatic control theory, detecting technology, etc. Can make the car in the case of unattended operation, with the aid of sensors to identify the road environment, by single-chip microcomputer control, complete preliminary without control. This design with the single chip processor as the core, attached to the peripheral circuit, adopting photoelectric detector for testing signal to achieve the automatic acceleration, and followed the movement of the car. Using single chip microcomputer operation and processing power to acceleration, deceleration, brakes, turn around, return, show the intelligent control system such as travel, travel time. Keywords:51 single-chip microcomputer, automatic detection technology

基于单片机的自动往返小车

基于单片机的自动往返小车

本文介绍的是基于单片机89S52控制的自动往返电动小汽车控制系统的硬件和软件设计。

该设计采用89S52单片机为控制核心,对送入的脉冲信号进行检测分析,利用超声波传感器检测道路上的障碍,通过脉宽调制使电机转速能自动调节,从而实现电动小汽车的自动避障,快慢速行驶,以及自动停车的控制要求。

由4位数码管进行对里程、时间的显示。

整个系统的电路结构简单,可靠性能高。

采用的技术主要有:通过编程来控制小车的速度;传感器的有效应用;新型显示芯片的采用。

关键词:自动往返电动小汽车;AT89S52单片机;脉宽调制;光电检测器This paper is based on89S52 single-chip microcomputer controlled electric car from the automatic control system hardware and software design. The design using 89S52MCU as the control core, is sent into a pulse signal detection and analysis, the use of ultrasonic sensors detect obstacles on the road, by a pulse width modulated so that the motor speed can be adjusted automatically, so as to realize the electric cars automatic obstacle avoidance, low speed, as well as the automatic parking control requirements. By 4digital tube on the mileage, time display. The system has the advantages of simple circuit structure, reliable performance and high.Using the technology are: programmed to control the car speed;the effective application of the sensor;the adoption of the new display chip.Key words:automatic motor-driven car; AT89S52 MCU; pulse width modulation; photoelectric detector目录第1章绪论 (2)1.1设计背景和研究意义 (2)1.2 工作原理和技术要求 (2)第2章方案设计与论证 (3)2.1单片机的选择 (3)2.2电动小车 (4)2.2.1 转向和动力分开的电动小车 (4)2.2.2 转向和动力结合的电动小车 (4)2.3控制系统方案设计 (4)2.3.1 数字电路控制 (4)2.3.2 89S52系统控制 (4)2.4调速系统方案设计 (5)2.4.1 电压调速 (5)2.4.2 脉宽调速 (5)2.5制动方案 (6)2.5.1 机械刹车 (6)2.5.2 电机反电压刹车 (6)2.6电机驱动模块 (6)2.6.1 L298N驱动步进电机 (6)2.6.2 功率管缓冲电路驱动电机 (6)2.7信号检测模块 (7)2.7.1 光敏探测器 (7)2.7.2 光电传感器 (7)2.8行程计算 (8)2.9系统原理 (8)第3章硬件设计 (9)3.1电动驱动模块 (9)3.2信号检测模块 (9)3.3单片机控制处理模块 (9)3.4显示模块 (10)3.5最小应用系统设计 (10)3.5.1 时钟电路 (10)3.5.2 复位电路 (11)第4章软件设计 (12)4.1 主程序设计 (12)4.2 显示子程序设计 (13)4.3 避障子程序设计 (13)4.4可编程逻辑器件 (13)附录 (16)参考文献 (23)致谢 (24)第1章绪论1.1设计背景和研究意义智能电动小车是一种无人操纵的自动寻迹往返小车。

基于单片机的自动往返小车毕业设计

基于单片机的自动往返小车毕业设计

基于单片机的自动往返小车毕业设计基于单片机的自动往返小车摘要:本设计以一片单片机STC89C52作为核心来控制自动往返小车,其中控制芯片L298N和单片机联合控制小车的前进与后退。

路面的黑带检测使用反射式红外传感器,并通过STC89C52对输入的信号进行处理;行驶距离使用霍尔元件进行检测。

最后以动态显示的形式通过一个LCD液晶显示即时黑带个数,运行时间,实时路程等。

关键词:微控制器 L298N电机控制霍尔检测液晶显示The Automatic round-trip car based on SCMAbstract:This design use a microcontroller STC89C52 as the core to control the automatic round-trip car, the control chip L298N and single chip microcomputer to control the car forward and backward together. The reflective infrared sensor detection the black belt on the road surface, then deal with input signal processing through the STC89C52. Using the hall element to test the distance. At last displaying instant black belt, running time, real-time distance, etc through a number of LCD liquid crystal in the form of dynamic displayKeywords:MCU L298N Motor control Hall detection LED display目录摘要 (I)关键字 (I)Abstract (I)Keywords (I)0绪论 (2)1.1 设计任务 (3)1.2方案介绍 (4)2.1 系统元器件的选择与介绍 (5)2.1.1 STC89C52R芯片 (5)2.1.2 L298N芯片 (11)2.1.3霍耳传感器(HD3020) (14)2.1.4液晶LCD (15)2.2电路模块的设计 (18)2.2.1检测系统 (18)2.2.2距离计算系统 (19)2.2.3显示系统 (20)2.2.4电机驱动以及正反转控制模块 (20)3.1主程序 (21)3.2中断程序 (22)3.2.1外部中断0 (22)3.2.2外部中断1 (23)3.2.3定时器中断0 (24)3.2.4定时器中断1 (24)4总结 (21)致谢 (21)参考文献 (21)附录 (21)0绪论当今社会,随着科技发展的日新月异,特别是计算机技术突飞猛进的发展,计算机技术带来了科研和生产的许多重大飞跃,同时计算机也越来越广泛的被应用到人们的生活、工作领域的各个方面。

基于单片机的自动往返小汽车的设计【开题报告】

基于单片机的自动往返小汽车的设计【开题报告】

开题报告电气工程及其自动化基于单片机的自动往返小汽车的设计一、综述本课题国内外研究动态,说明选题的依据和意义随着汽车工业的迅速发展,其与电子信息产业的融合速度也显著提高,汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。

关于汽车的研究也就越来越受人关注。

全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。

可见其研究意义很大。

本设计就是在这样的背景下提出的,为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。

设计的智能电动小车应该能够具有自动寻迹、小灯显示等功能。

由于单片机教学例子有限,因此,单片机智能车能综合学生课堂上的知识来实践,使学习者更好的了解单片机的发展。

通过此次的单片机寻轨车制作,使学生从理论到实践,初步体会单片机项目的设计、制作、调试和成功完成项目的过程及困难,以此学会用理论联系实际。

通过对实践中出现的不足与学习来补充教学上的盲点。

智能汽车是一种高新技术密集的新型汽车,是在网络环境下利用信息技术、智能控制技术、自动控制、模式识别、传感器技术、汽车电子、电气、计算机和机械等多个学科的最新科技成果,使汽车具有自动识别行驶道路、自动驾驶等先进功能.随着控制技术、计算机技术和信息技术的发展,智能车在工业生产和日常生活中已经扮演了非常重要的角色.近年来,智能车在野外、道路、现代物流及柔性制造系统中都有广泛运用,已成为人工智能领域研究和发展的热点。

二、研究的基本内容。

智能寻迹小车采用后轮驱动,左右后轮各用一个直流减速电机驱动,通过调制后面两个轮子的转速从而达到控制转向的目的在车体前部分别装有左中右三或者两个红外反射式传感器,当小车左边的传感器检测到黑线时,说明小车车头向右边偏移,这时主控芯片控制左轮电机减速,车体向左边修正同理当小车的右边传感器检测到黑线时,主控芯片控制右轮电机减速,车体向右边修正当黑线在车体的中间,中间的传感器一直检测到黑线,这样小车就会沿着黑线一直行走。

基于单片机的自动寻迹避障小车设计

基于单片机的自动寻迹避障小车设计

三、软件设计
电机控制函数根据预设算法输出控制信号,控制电机的动作。最后,我们在 主程序中调用这些函数,实现小车的自动循迹避障寻光功能。
四、测试与结论
四、测试与结论
为了验证系统的可行性和稳定性,我们对智能小车进行了多次测试。测试结 果显示,该系统能够准确地检测黑色引导线、前方障碍物和光源,并能够根据预 设算法自动调整小车的行驶方向和速度,实现了自动循迹避障寻光功能。因此, 基于单片机技术的自动循迹避障寻光智能小车系统具有广泛的应用前景和市场潜 力。
三、实验与测试
三、实验与测试
1、实验环境:在实验室内模拟实际环境进行测试,包括各种路面情况(如平 滑路面、颠簸路面)、各种障碍物类型等。
三、实验与测试
2、测试指标:测试指标包括小车的平均速度、稳定性、准确性等。通过这些 指标可以评估小车的性能并对其进行优化。
三、实验与测试
3、实验结果分析:根据实验结果分析小车的性能表现,针对不足之处进行改 进和优化。
5、执行器
5、执行器
执行器包括舵机和摄像头。舵机用于调节小车的行驶方向,摄像头用于拍摄 和传输图像数据。
三、软件设计
三、软件设计
软件设计是实现小车自动循迹避障寻光功能的关键。我们使用C语言编写程序, 通过调用单片机的外设接口接收传感器数据,根据预设算法处理数据并输出控制 信号,控制电机驱动模块和执行器的动作。
3、传感器:传感器部分包括寻迹传感器和避障传感器。寻迹传感器用于检测 小车行驶路径,避障传感器则用于检测前方障碍物。常见的传感器类型有红外线 传感器和超声波传感器。
一、硬件设计
4、电机:电机部分包括两个电机和相应的驱动器。电机驱动器用于接收控制 器的指令,控制电机的转动方向和速度。

89c52的单片机自动往返电动小汽车设计报告范文-图文

89c52的单片机自动往返电动小汽车设计报告范文-图文

89c52的单片机自动往返电动小汽车设计报告范文-图文1.设计任务:设计并制作了一个自动往返小汽车,其行驶路线满足所需的要求。

1.1要求:1.1.1基本要求:(1)分区控制:如(图1)所示:(图1)车辆从起跑线出发(出发前,车体不得超出起跑线)。

在第一个路程C~D区(3~6米)以低速行驶,通过时间不低于10;第二个路程D~E区(2米)以高速行驶,通过时间不得多于4秒;第三个路程E~F区(3~6米)以低速行驶,通过时间不低于8。

1.1.2.发挥部分(1)自动记录、显示一次往返时间(记录显示装置要求安装在车上)。

(2)自动记录、显示行驶距离(记录显示装置要求安装在车上)。

(3)其它特色与创新。

2.方案设计:根据设计任务要求,并且根据我们自己的需要而附加的功能,该电路的总体框图可分为几个基本的模块,框图如(图2)所示:555定时器控速模块路面检测测速模块AT89S51LCD显示模块(图2)2.1路面检测模块:路面黑线检测模块采用反射式红外发射--接收器,在车底的前部和中部安装了两个反射式红外传感器.2.2LCD显示模块:采用1602LCD,由单片机的总线模式连接。

为节约电源电量并且不影响LCD的功能,LCD的背光用单片机进行控制,使LCD的背光在小车行驶的过程中不亮,因为我们不必看其显示;在其它我们需要看显示的内容的时候LCD背光亮。

2.3测速模块:采用采用霍尔开关元器件A44E检测轮子上的小磁铁从而给单片机中断脉冲,达到测量速度的作用。

霍尔元件具有体积小,频率响应宽度大,动态特性好,对外围电路要求2简单,使用寿命长,价格低廉等特点,电源要求不高,安装也较为方便。

霍尔开关只对一定强度的磁场起作用,抗干扰能力强,因此可以在车轮上安装小磁铁,而将霍尔器件安装在固定轴上,通过对脉冲的计数进行车速测量。

其原理图接线如(图3)所示:(图3)2.4控速模块:采用由双极性管组成的H桥电路。

用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。

小车自动往返实训报告

小车自动往返实训报告

一、实验目的1. 掌握单片机在自动控制中的应用原理。

2. 学会使用L298芯片控制小车速度与方向。

3. 熟悉短距离红外收发器在采集路面信息中的应用。

4. 通过实训,提高动手能力和解决问题的能力。

二、实验原理本实验以单片机STC12C5A6032为核心,实现小车的自动往返功能。

L298芯片用于控制小车的速度与方向,短距离红外收发器用于采集路面信息,从而实现小车的自动往返。

三、实验器材1. 单片机STC12C5A6032 1块2. L298芯片 1块3. 短距离红外收发器 2个4. 电机驱动模块 1个5. 电源模块 1个6. 连接线若干7. 平板轨道 1条四、实验步骤1. 搭建电路:根据电路图连接单片机、L298芯片、红外收发器、电机驱动模块等元件。

2. 编程:使用C语言编写单片机程序,实现小车的自动往返功能。

3. 调试:通过调试,确保程序正常运行。

五、实验内容1. 初始化:单片机启动后,初始化红外收发器、电机驱动模块等。

2. 检测路面信息:红外收发器检测路面信息,将信号传输给单片机。

3. 控制小车方向:根据路面信息,单片机控制L298芯片,使小车保持直线行驶。

4. 自动往返:当小车到达指定位置时,单片机控制小车反向行驶,实现自动往返。

六、实验结果与分析1. 实验结果:小车在轨道上实现自动往返,运行稳定。

2. 结果分析:通过本次实验,掌握了单片机在自动控制中的应用原理,学会了使用L298芯片控制小车速度与方向,熟悉了短距离红外收发器在采集路面信息中的应用。

七、实验总结1. 理论联系实际:通过本次实验,将理论知识与实际操作相结合,提高了自己的动手能力。

2. 问题解决能力:在实验过程中,遇到了许多问题,通过查阅资料、请教老师等方式,最终解决了这些问题。

3. 团队协作:在实验过程中,与团队成员相互协作,共同完成了实验任务。

八、实验展望1. 优化程序:在今后的学习中,将不断优化程序,提高小车的性能。

2. 拓展功能:尝试将小车应用于其他领域,如自动清洁、自动搬运等。

单片机-自动往返小车

单片机-自动往返小车

单片机-自动往返小车自动往返电动小汽车(高级组)设计报告部门院系:常州大学信息科学与工程学院目录1、设计任务 (3)1.1基本要求 (3)1.2发挥部分 (3)2、方案论证与选择 (4)2.1、系统总体框图 (4)2.2、各模块硬件选择 (4)2.2.1、控制模块 (4)2.2.2、外部传感器模块 (5)2.2.3、电机驱动模块 (5)2.2.4、电源模块 (5)2.2.5、显示模块.................................................................... (5)3、系统硬件原理与实现 (6)3.1、系统总体电路图 (6)3.2、系统各模块设计介绍 (7)3.2.1、单片机控制模块 (7)3.2.2、外部传感器模块 (8)3.2.3、电机驱动模块 (8)3.2.4、L C D液晶显示模块 (9)4、统软件设计 (10)4.1 系统软件设计框图 (10)4.2 系统软件设计代码 (12)5、设计数据测量 (19)1、设计任务设计并制作一个能自动往返于起跑线与终点线间的小汽车。

允许用玩具汽车改装,但不能用人工遥控(包括有线和无线遥控)。

跑道宽度0.5m,表面贴有白纸,两侧有挡板,挡板与地面垂直,其高度不低于20cm。

在跑道的B、C、D、E、F、G各点处画有2cm宽的黑线,各段的长度如图1所示。

1.1基本要求1)车辆从起跑线出发(出发前,车体不得超出起跑线),到达终点线后停留10秒,然后自动返回起跑线(允许倒车返回)。

往返一次的时间应力求最短(从合上汽车电源开关开始计时)。

2)到达终点线和返回起跑线时,停车位置离起跑线和终点线偏差应最小(以车辆中心点与终点线或起跑线中心线之间距离作为偏差的测量值)。

3)D~E间为限速区,车辆往返均要求以低速通过,通过时间不得少于4秒,但不允许在限速区内停车。

1.2发挥部分1)自动记录、显示一次往返时间(记录显示装置要求安装在车上)。

基于单片机 的自动往返小车的设计-精品

基于单片机    的自动往返小车的设计-精品

目录摘要 (2)第一章MCS-8031单片机及其外围电路 (3)一.MCS-8031引脚及功能简介 (3)二.时钟电路 (5)三.复位及复位电路 (6)四.8031片外ROM连接 (7)第二章数码管显示里程方案设计 (8)一.检测电路方案选择 (8)二.数码管显示电路 (9)第三章直流调速方案讨论 (11)一.确定调速方案 (11)二.直流调速的实现 (12)第四章程序 (15)程序1小车电机调速程序 (15)程序2里程显示程序 (19)结论 (23)致谢 (24)参考文献 (25)摘要本设计要完成自动往返行驶汽车,要求使用MCS-8031单片机,并且用七段数码管显示里程。

要求采用调压调速的方法,改变电机的速度和转向。

一并完成自动往返功能。

为了方便调速,本设计拟采用小型直流电动机,为了同时满足对电机转速大小和方向的调节,要选择合适的调节方式,本设计拟采用PWM脉宽调制的方法实现。

对于里程显示,要将小车的车轮转数转换成距离,再将其输入单片机,并由单片机处理输出,并用数码管显示出来。

最后根据所选用的硬件及芯片,设计电路并编程实现要求内容。

关键字:MCS-8031 霍尔传感器数码显示PWM脉宽调速第一章MCS-8031单片机及其外围电路一.MCS-8031引脚及功能简介8031是最常见的mcs51系列单片机,是inter公司早期的成熟的单片机产品,应用范围涉及到各行各业,下面介绍一下它的引脚图等资料。

(图1.1为8031引脚图)图1.11)8031引脚功能:Vcc:+5V电源电压。

Vss:电路接地端。

2)P0.0~P0.7:通道0,它是8位漏极开路的双向I/O通道,当扩展外部存贮器时,这也是低八位地址和数据总线,在编程校验期间,它输入和输出字节代码,通道0吸收/发出二个TTL负载。

3)P1.0~P1.7:通道1是8位拟双向I/O通道,在编程和校验时,它发出低8位地址,吸收/发出一个TTL负载。

4)P2.0~P2.7:通道2是8位拟双向I/O通道,当访问外部存贮器时,用作高8位地址总线。

基于单片机的自动往返小车设计

基于单片机的自动往返小车设计

目录第1章绪论1.1设计的主要内容及目标1.2选题目的及意义第2章总体方案设计与论证 (2)2.1 全面方案 (2)2.2 设计要点、实验难点 (2)2.3设计方案第3章算法的理论分析 (4)3.1 算法比较 (4)3.1.1 常规模糊控制法 (4)3.1.2 公式法 (4)3.2 方案实现 (5)第4章设计电路的分析 (7)4.1 单片机设置 (7)4.2 电光理论设置 (7)4.2.1 基本原理 (7)4.3 具体电路 (8)4.3.1 采样方式 (8)4.3.2 电机控制方法 (9)4.3.3电机驱动模块 (10)4.3.4黑线探测模块 (10)4.4 电路图 (10)4.5 显示屏 (11)4.6 语音芯片 (11)4.6.1 供电方案 (12)4.6.2 供电方式 (12)4.7 红外遥控及解码模块 (12)4.7.1 二进制信号的调制 (13)4.7.2 二进制的调解 (13)4.7.3 二进制信号的调码 (13)4.8 道路设置模块 (14)4.8.1轨道模块 (14)4.8.2防撞模块 (14)第5章软件系统设计 (14)5.1 软件系统的任务及总体流程 (15)5.2 扩展软件功能实现 (16)5.3 遥控解码 (16)5.4 驱动软件 (17)5.5 小车轨道设计 (17)5.6 防撞击与警报装置 (18)5.7 行车距离 (18)5.8 抗干扰设置 (19)第六章测试方法与数据 (19)6.1 系统仿真调试 (19)6.2 对于电机的调试 (19)第七章总结 (21)致谢 (22)参考文献 (23)基于单片机的自动往返小车摘要:改革开放以来,单片机的技术不断进步,他原来所具有的各种各样有效的端口和他原本具有的自带的技术功能,被整合到了一张芯片上。

所以单片机在所有的机器上具有重要的地位。

最常见的单片机AT89s51具有低功率的特效并且保持在一个较高水平上面适用于各种单片机,具有非常优秀的普适性。

【文献综述】基于单片机的自动往返小汽车的设计

【文献综述】基于单片机的自动往返小汽车的设计

文献综述电气工程及其自动化基于单片机的自动往返小汽车的设计一、前言智能车辆是一个运用计算机、传感、信息、通信、导航、人工智能及自动控制等技术来实现环境感知、规划决策和自动行驶为一体的高新技术综合体。

它在军事、民用和科学研究等方面已获得了应用,对解决道路交通安全提供了一种新的途径。

随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。

全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究,许多国家已经把电子设计比赛作为创新教育的战略性手段。

电子设计涉及到多个学科,机械电子、传感器技术、自动控制技术、人工智能控制、计算机与通信技术等等,是众多领域的高科技。

电子设计技术,它是一个国家高科技实例的一个重要标准,可见其研究意义很大。

本次设计虽然只是一个模型,但是具有充分的科学性和实用性。

首先我们按照适当的比例制作出一个路况模型。

在行驶路段中,脉冲调制的红外线传感器将检测到的信号发送给单片机,单片机根据程序发出相应的控制信号控制小车进行动作。

二、主题部分科技的进步带动了产品的智能化,单片机的应用更是加快了发展的步伐,它的应用范围日益广泛,已经远远的超出了计算机科学领域。

小到玩具、信用卡,大到航天飞机、机器人,从实现数据采集、远程控制、模糊控制等智能系统带人类的日常生活,到处离不开单片机,此设计正是单片机的一个典型的应用。

此设计通过实现了小车的无人驾驶,通过对路面的检测,由单片机来判断控制其小车的反应情况,使其变得智能化,实现自动的前进,转弯,停止功能,此系统还不断的完善后可以应用到道路检测,安全巡逻中,能满足社会的需求。

智能小车是智能车辆研究的一个分支。

它以车轮作为移动机构、能够实现自主行驶,所以我们称之为智能小车。

智能小车具有机器人的基本特征——易于编程。

它与遥控小车的不同之处在于,后者需要操作员来控制其转向、启停和进退,比较先进的遥控车还能控制其速度(常见的模型小车都属于这类遥控车);而智能小车则可以通过计算机编程来实现其对小车启停、行驶方向以及速度的控制,无需人工干预。

基于ST89C52单片机的自动往返小车(含程序)

基于ST89C52单片机的自动往返小车(含程序)

基本原理:1.电机驱动调速模块 方案一:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。

但是电阻络只能实现有级调速,而数字电阻的元器件价格昂贵。

更主要的问题在于一般电动机的电阻较小,但电流很大;分压不仅会降低效率,而且很难实现。

方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。

方案的优点是电路较为简单,缺点是继电器的响应时间慢,机械结构易损坏,寿命较短,可靠性不高。

方案三:采用达林顿管TIP4组成的PWM 电路。

用单片机控制达林顿管使之工作在占空比可调的状态,精确调整电机转速。

方案四:采用L298N 来控制电机的正转和反转来实现小车的前进和后退。

加上单片机的程序PWM ,实现整车的加速和减速,精确小车的速度。

基于上述理论分析,拟选择方案四。

2.路面黑带检测模块黑带检测的原理是:红外光线照射到路面并反射,由于黑带和白纸的系数不同,可根据接的红外线的强弱判断是否到达黑带。

方案一:可见光发光二极管和光敏二极管组成的发射—接收电路。

这种方案的缺点在于其他环境光源会对光敏二极管的工作产生很大的干扰,一旦外界光亮条件改变,很可能造成误判和漏判;虽然产生超高亮发光二极管可以降低一定的干扰,但这又将增加额外的功率损耗。

方案二:反射式的红外发射—接收器。

由于采用红外管代替普通可见光管,可以降单片机黑带检测路程和时间显示LED 显示路程,时间L298N 电机驱动模块低环境干扰。

基于上述理论分析,拟选择方案二。

3. 电源选择方案一:所有器件采用电源供电,这样供电电路比较简单;但是由于电动机启动瞬时电流很大,会造成电压不稳,干扰严重,缺点十分明显。

方案二:双电源供电,将电动机驱动电源和单片机以及周边电路电源完全隔离,这样做虽然不如单电源方便灵活,但可以将电动机驱动所造成的干扰彻底消除,提高了系统的稳定性。

基于上述理论分析,拟选择方案二。

4. 控制单元模块方案一:采用纯数字电路该方案外部检测采用光电转换,系统控制部分采用数字电路译码对小车电动机两端电压调整,来控制小车的运行。

基于单片机控制的智能自动往返小汽车设计

基于单片机控制的智能自动往返小汽车设计

基于单片机控制的智能自动往返小汽车设计随着现代科技的发展和自动化水平的提高,智能小汽车作为生活中的常用工具,人们对其智能性、可靠性等提出了越来越高的要求,因此需要对智能小汽车进行优化设计. 本文对硬件系统和主要功能模块进行了规划,设计了一个基于单片机控制的自动往返小汽车系统,以STC89C52 单片机为核心器件,可实现电动小汽车的速度控制、自动停车、往返控制等功能,从而满足人们对小汽车智能化功能的要求.1 系统总体设计系统设计以单片机STC89C52 芯片为核心控制部件,LG9110 作为电机驱动芯片,利用传感器检测技术原理、AD 画图、KEIL 软件编程,将程序烧录到单片机中,实现各个子模块的功能. 此外,系统采用红外探测法来检测实时路况信息,并通过PWM 调制自动调节电机转速. 系统总体设计框图如图1 所示.图1 系统总体设计框图2 系统硬件设计系统硬件模块设计主要包含电机驱动模块、路况检测模块、智能防撞报警模块、寻迹模块等.2.1 电机驱动模块电机驱动模块是目前遥控小车普遍采用的驱动模块[3]. 直流电机有两个控制端,通过设置输入电平值来改变电机的运转,单片机通过控制引脚电平的高低来控制直流电机的转速. 由于单片机自身管脚输出的高电平电压很小,不足以驱动电机进而带动整个小车运行,因此最适合小车驱动的是运用电机驱动芯片来完成,我们采用的是电机驱动芯片LG9110.2.2 路况检测模块该模块使用红外探测法. 由于黑线和白纸对光线的反射系数不同,故可根据接收到反射光的强弱来判断路面情况和前方是否存在障碍物. 红外发射管发射红外信号,经路面反射后传给红外接收管进行判断处理. 上电后,红外发射管导通,向地面以及前方发射红外信号,当遇到白色路面时,红外信号经白色路面进行漫反射,这时红外接收探头刚好接收到红外信号,探头导通,将低电平送给单片机进行判断处理.2.3 智能防撞报警模块智能小车能够自动识别前方的障碍物,如果有障碍物则调节小车的运动轨迹来避开障碍物,同时在遇到障碍物时,能够报警提示.2.4 寻迹模块所谓寻迹,就是在一条有弯曲黑线的白纸跑道上,利用红外线在不同颜色的物理表面具有不同的反射性质的特点来改变小车的运行轨迹. 小车在行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,而当红外光遇到黑色地面时,不产生反射. 如果小车右边稍微跑出黑色跑道,发出的红外光就会遇到白色地面而产生漫反射,这时旁边的黑色接收探头接收到反射信号后会导通. 探头接收到红外信号,会产生一个低电平,送给单片机处理,使小车进行左转操作;同理,当小车左边跑出黑线时,左侧探头识别之后给小车低电平,提示小车右转,这样就完成了小车的自动寻迹功能.3 系统软件设计在系统软件设计时,我们将所有的模块程序嵌入到单片机中,这种嵌入式设计主要是为了便于控制,且不占用CPU 资源,因为寻迹模块以及避障模块等都同时用到了实时检测扫描,这样不仅占CPU,而且多个程序同时运行还会产生冲突. 系统程序设计流程图如图2 所示.软件设计主要子模块介绍:(1) 红外解码的实现红外解码是实现小车的自动寻迹功能的前提条件,因此单片机的红外解码是贯穿整个程序设计的主线,在整个系统中起着重要作用.(2) 电机驱动从实际情况来说,在整个系统中,电机的驱动在小车运行中占据主导地位,是很重要的一部分,同时也是小车在接收到控制命令之后单片机的最终输出部分,是所有模块在执行控制命令时的外在表现.图2 系统程序设计流程(3) 小车寻迹寻迹的基本原理:黑白跑道对红外光的反射不同. 所以通过编写扫描单片机管脚值的程序,来实现相应功能. 小车寻迹模块的程序流程如图3 所示.(4) 小车防撞报警开启小车防撞功能时,主程序调用防撞报警子函数,当道路前方遇到障碍物时,小车内部的防撞函数将调用电机驱动子函数来调节小车的运行轨迹,避免小车撞击障碍物,同时报警提示.图3 寻迹程序流程图4 系统功能实现4.1 硬件作品(1) 对基于单片机控制的自动往返小汽车主要的STC89C52 核心主控模块、电机驱动模块、显示模块、避障模块进行组装,确保接线无误,完成实物的制作. 硬件作品如图4 所示.(2) 接通电源,整个小车处于启动状态,由于小车头部下方的红外探头未接收到自身发出的红外光,小车不运动,处于静止状态. 启动状态如图5 所示.图4 作品实物图5 小车启动状态(3) 在接通电源的状态下,将手放在左红外探头的下方,红外探头发出的红外光由于碰到手指发生漫反射而被探头接收,从而驱动电机驱动模块,左电机处于运行状态,左轮向前转动. 同理,右轮向前转动. 运动状态如图6 所示.图6 小车运动状态4.2 功能实现本系统实现的主要功能如下:(1)实现小汽车自动往返;(2)当小汽车偏离行驶轨道时,会及时转向,返回跑道;(3)当检测到障碍物时,能自动报警.STC89C52 芯片可以发挥数据处理与实时控制的功能,提高整个系统灵敏度. 当要驱动自动小车前进时,可以通过寻迹模块返回给单片机的信号,使单片机做出相应的控制判断,进而控制电机驱动模块,同时还需要进行PID 算法的测试,精准地控制自动小车在黑线上实现前进、后退和转向,从而实现小车自动往返.4.3 系统实现效果评价对系统功能进行了分析、拓展和延伸,其根本目的是为了实现小汽车的智能化. 通过系统调试,本设计可实现小汽车的自动寻迹和报警功能,且系统设计稳定. 实验结果与理论分析吻合较好,表明该设备在技术上有一定智能性和可靠性.5 总结本文采用的是以STC89C52 为核心的单片机,LG9110 为电机驱动芯片,利用传感器检测技术,结合硬件AD 画图及软件KEIL 的编译与烧录[5],使单片机控制的小汽车能自动寻迹、防撞报警,从而实现小车的自动往返功能. 本设计最大的特色:无需有线或者无线遥控来控制小车的往返,只需要装上电源,其他功能都可以由单片机来实现,消除了一般玩具小车需无线或有线控制的弊端,是未来玩具小车发展的趋势;同时也可以推广至公交车,实现无人驾驶,降低安全事故的发生,既环保又安全,因此具有一定的应用价值.。

基于单片机的自动往返行驶小汽车的设计

基于单片机的自动往返行驶小汽车的设计

基于单片机的自动往返行驶小汽车的设计(硬件设计)系别:专业班:姓名:学号:指导教师:摘要随着科学技术的发展,人们对于各种工具的要求越来越高,自动化越高就越受欢迎,对于交通工具的要求也是这样,人们希望汽车可以根据主人的想法,自动开往目的地,而不需要人的操作。

虽然科学家正在研制这种汽车,但在近几年还不能普及,所以人们想见正真的全自动汽车还不可能,但我们完全可以用单片机做为控制核心来制作一辆全自动的小车模型。

本设计的控制系统采用AT89C52单片机;显示系统采用3个LED数码管显示里程数,4个LED数码管显示一次往返的时间;电机正反转采用桥式驱动控制,2档电压调速;里程记录采用霍尔传感器;跑道标志线采用光敏管检测并使用软件整形消抖措施;单片机、电机采用独立稳压电源供电。

自动往返小汽车是指小车能够在跑道上自动往返行驶,无须人的操作。

小车从起跑线出发后自动行驶到终点,并能在终点停车一段时间,然后返回起点。

同时小车可以在要求区域内自动加速和减速等功能。

最后,小车还具有实时里程显示功能,可以通过数码管将里程显示出来。

单片机的产生使得我们的电子世界变得丰富多彩,原本无法实现的设计和想法而逐渐变为现实。

本设计也是以单片机作为整个系统的控制核心,主要由电机驱动电路,黑线检测电路和显示模块组成。

本小车模型的设计可以提高我们对单片机的理解和掌握,将理论知识应用与实践,是非常有意义的。

关键字:AT89C52单片机自动往返小汽车AbstractWith the development of science and technology, there is growing demand for all kinds of tools, automation becomes more popular, the same is true for transport requirements, people hope that the automobile can according to master idea, automatically to the destination, without human operation. Although scientists are developing the car, but in recent years is not popular, so people want to see is true full automatic car is not possible, but we can use single chip microcomputer as control core to make a full automatic car model.The designed control system using AT89C52 microcontroller; display system using 3 LED digital tube display mileage, 4 LED digital tube display time a round trip; motor adopts bridge drive control, 2 speed voltage control; mileage recorded by Holzer sensor; track mark line using photosensitive tube detection and using software shaping. Shake measure; microcontroller, motor adopts independent regulated power supply.Automatic round-trip car is a car capable of automatically driving back and forth on the runway, without human operation. The car on the starting line after the automatic running to the end, and can stop for a period of time in the end, and then return to the starting point. At the same time the car can require regional automatic acceleration and deceleration function. Finally, the car also has real-time mileage display function, can be displayed through the digital tube length.SCM makes the electronic world we become rich and colorful, idea and design was unable to realize gradually become a reality. This design is based on SCM as control core of the whole system, mainly by the motor drive circuit, the detection circuit and a display module. The design of the car model can improve our understanding of SCM and master, apply theoretical knowledge and practice, is of great significance.Keywords: automatic cars from AT89C52 single chip microcomputer目录摘要 (Ⅰ)Abstract (Ⅱ)绪论 (1)1. 设计任务及方案介绍 (2)1.1 设计任务 (2)1.2 可行性方案的介绍及确定 (3)2. 系统的硬件设计与实现 (5)2.1 系统元器件的选择与介绍 (5)2.1.1 AT89C52芯片 (6)2.1.2 霍耳传感器(HD3020) (9)2.1.3 LED显示器 (10)2.1.4 电源管理2.1.5 发光二极管和光敏二极管 (12)2.2 单元电路的设计 (13)2.2.1 电机驱动电路 (14)2.2.2 电机调速电路 (15)2.2.3 传感脉冲检测电路 (16)2.2.4 显示电路 (18)2.2.6 稳压电路 (18)3.总结 (19)4.致谢 (20)参考文献 (21)附录:元器件清单和硬件原理图 (22)绪论单片机的产生使得我们的电子世界变得丰富多彩,原本无法实现的设计和想法而逐渐变为现实。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于单片机的自动往返小车The latest revision on November 22, 2020基于单片机的自动往返小车摘要本设计以一片单片机STC89C52作为核心来控制自动往返小车,加以控制芯片L298N和单片机联合控制小车的前进与后退。

路面的黑带检测使用反射式红外传感器,通过STC89C52对输入的信号进行处理,以动态显示的形式通过一个四位的数码管显示即时里程,另外一个四位数码管动态显示小车行驶时间。

以红外传感器对路面黑线检测用,行驶距离使用霍尔元件进行检测。

关键词:光电检测霍尔检测动态显示L298N控制电动机小组成员:李亚昊、陈国翠、成晓斌、丁玉娇1.电机驱动调速模块采用L298N来控制电机的正转和反转来实现小车的前进和后退。

加上单片机的程序PWM,实现整车的加速与减速,精确小车的速度。

2.路面黑带检测模块黑带检测的原理是:红外光线照射到路面并反射,由于黑带和白纸的系数不同,可根据接的红外线的强弱判断是否到达黑带。

反射式的红外发射—接收器。

由于采用红外管代替普通可见光管,可以降低环境干扰。

3.电源选择双电源供电,将电动机驱动电源与单片机以及周边电路电源完全隔离,这样做虽然不如单电源方便灵活,但可以将电动机驱动所造成的干扰彻底消除,提高了系统的稳定性。

4.控制单元模块用单片机控制用光电检测不同的信号,并经单片机对其处理,传送给L298信号,使其控制电机的正转和反转,配合PWM程序控制,来实现加速减速和刹车。

通过单片机内部定数器/计数器进行定时、计数,在用单片机串行输入/输出口进行显示控制。

此方案电路成熟、工作稳定、容易实现控制。

二 电路设计我们采用反射式光电检测电路对跑道上的黑线进行检测,并用两个遮光套管套住发光管和接收管以一定的角度紧贴跑道,这样可以消除外界光线的干扰,用LM358电压比较器输出高低电平检测信号。

如图所示:控制中心 STC89C52光电检测霍尔检测小车正反转行驶时间显示行驶里程显示 开始2. STC89C52单片机基本系统此系统以89C52为核心,每检测到一个黑带由光电检测部分产生一个的脉冲,使单片机产生一个外部中断1,定义检测黑带数的变量加1,同时车轮每转一圈,霍尔元件输出一个脉冲,是安单片机产生一个外部中断0,定义圈数的变量加1.通过和控制L298来控制电机的正转与反转及刹车。

当输出低电平,输出高电平时,电机正转,相反则电机反转,当和都是低电平时,使电动机被短路,提高了刹车效率,基本杜绝了由于制动惯性造成的小车的前冲现象。

通过P0口进行两个数码管的位选,P2口进行段码输出,其中一个数码管显示行驶时间,另外一个数码管显示行驶路程。

如图所示:3. L298N 电动机驱动模块部分该电路采用电动机驱动芯片L298来控制电动机的正转与反转,加以第二路电机电源保证了电动机启动时有足够的电流。

在试验中控制电压为单片机输出的高低电平直接控制。

具体电路图连接如下:4. 电源部分由于电动机工作电流大,需要选用内阻小,供电电流强,质量轻,可反复使用的经济型电池,我们选用可充电电池组。

为使单片机工作稳定,避免电动机开关机和其转动时对其电源的影响,在此用两个电池组和稳压块7805分别为89C52和电动机驱动显示部分分别进行供电。

保证小车工作和显示的稳定性。

5.软件设计部分单片机控制电路主要由一片STC89C52组成,通过P3口控制小车正转与反转,刹车,加速减速,通过两个四联数码管控制显示时间和里程以及小车行驶的时间。

其中P0口进行位选,P2口进行显示段码输出。

该系统采用上电复位加上手动复位联合复位系统进行初始化,单片机通过,输出脉冲控制电机正转反转以及刹车,当,分别输出01是电动机正转,输出10时电动机反转,输出00时电动机两边短路,小车立即刹车。

流程图如下:车轮美转一次,霍尔元件产生一个脉冲,通过下降沿触发外部中断0,并且在每进行一次外部中断记录圈数的变量加1.光电检测每检测到一条黑带就产生一个脉冲输入口,通过下降沿的方式触发外中断1,每中断一次记录黑带的变量加1,当检测到第六条黑带时,=1,=1,小车的电动机由于短路刹车,当检测到第十二条黑带时,小车再次刹车同时关掉所有中断(3)定时器中断0使用定时器T0产生5ms定时中断,每次执行该中断前要先给定时器0赋初值,定时器中断每执行一次,变量加1。

当i=200时,即每当计时1秒时,时间变量t加1,速度等于一秒转的圈数和小车车轮的周长相乘。

(4)定时器中断1主要用来产生不同的占空比的波型进行高低速控制,每次执行时,定时器1要赋初值。

(5)主程序主程序主要用来控制两个四联数码管的显示,通过循环语句不断的调用显示程序,使两个四联数码管按位不断循环亮点,当小车行驶时动态显示时间和路程,小车停止时显示小车行驶过程中的时间和路程。

6.安装与调试自动小车为玩具遥控小汽车的改装品,在改装的过程中最重要的是考虑设计光电检测管的位置,检测黑带的光电管放在车体的中央,用遮光管将其以一定反射角度压到跑道上。

路程检测用槽型光耦,放在小车的从动轮上。

轮子的周长约为厘米,在轮子上用了一个霍尔元件,每转一圈一个脉冲。

在组装前对每一个单元电路进行测试,以保证外部硬件电路的无误,有利于最后的统调。

调整是以点到线,最后到整体调试的方法。

在调整的过程中我们发现了许多问题,如响应中断的次数的调整等。

并且为了小车碰到墙壁不至于停车,我们在小车的四角上都加上了导向轮,导向轮用随身听的压带轮制作即可。

7.附录元器件及程序如下:基本元器件列表一个STC89C52单片机2个四位共阳数码管一个L298N芯片一个霍尔元件和小磁钢片一路循迹模块晶振(12M)及30pf电容开关电阻 10k 100欧姆 1k 20k可调程序:#include<> //包含头文件#define uint unsigned int //宏常量定义#define uchar unsigned char //宏常量定义sbit dianji1=P1^0; //P1_0设置为电机控制一sbit dianji2=P1^1; //P1_1设置为电机控制二sbit hdjc=P3^2; //P3_2设置为黑带检测位uchar code duma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //段编码uchar code dianduma[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; //带小数点段编码uchar code wema[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0xff}; //位编码uchar num,ge,shi,bai,qian; //定义几个字符型变量uint miao,lc,heidai=0; //定义几个整形变量long int qs; //定义一个长整形变量用来记录小车所转的圈数void fenwei(uint); //声明一个分位函数用来把要显示的数分位void shuma(uchar,uchar); //声明一个数码上显示函数用来在数码管上显示数据void shumadian(uchar,uchar); //声明另一个数码显示函数用来显示带小数点的数据void miaoxianshi(uint); //声明一个显示时间的函数void lcxs(uint); //声明一个显示路程的函数void djkz(); //声明一个电机控制函数void delay(uchar); //声明一个延时函数void delay10s(); //声明另一个延时函数用来延时十秒钟void fenwei(uint x) //把需要在数码管上显示的数据分位{g e=x%10;s hi=(x%100)/10;b ai=(x%1000)/100;q ian=x/1000;}void shuma(uchar x,uchar y) //将需要显示的数据显示在数码管上{P0=wema[8];P2=duma[x];P0=wema[y];d elay(5);}void shumadian(uchar x,uchar y) //将需要显示的数据显示在数码管上{P0=wema[8];P2=dianduma[x];P0=wema[y];d elay(5);}void miaoxianshi(uint x) //将定时器0输出的时间显示在数码管上{f enwei(x);s huma(ge,3);s huma(shi,2);s humadian(bai,1);s huma(qian,0);}void lcxs(uint z) //将外部中断1输出的路程显示在数码{f enwei(z);s huma(ge,7);s huma(shi,6);s humadian(bai,5);s huma(qian,4);}void djkz() //控制电机运转{u char n=20,m=60;s witch(heidai){case 0:case 1:case 2:dianji1=1;dianji2=0;miaoxianshi(miao);lcxs(lc);break;case 3:while(m--){dianji1=1;dianji2=0;delay(70);dianji1=0;dianji2=0;delay(30);miaoxianshi(miao);lcxs(lc);}while(heidai==3){dianji1=1;dianji2=0;delay(13);dianji1=0;dianji2=0;delay(1);miaoxianshi(miao);lcxs(lc);}break;case 4:while(heidai==4){dianji1=1;dianji2=0;delay(25);dianji1=0;dianji2=0;delay(1);miaoxianshi(miao);lcxs(lc);}break;case 5:case 6:while(n--){dianji1=1;dianji2=0;delay(50);dianji1=0;dianji2=0;delay(50);miaoxianshi(miao);lcxs(lc);}dianji1=1;dianji2=1;delay10s();while(heidai==6){dianji1=0;dianji2=1;}break;case 7:break;case 8:dianji1=0;dianji2=1;miaoxianshi(miao);lcxs(lc);case 9:while(n--){dianji1=0;dianji2=1;delay(50);dianji1=0;dianji2=0;delay(50);miaoxianshi(miao);lcxs(lc);}while(heidai==7){dianji1=0;dianji2=1;delay(90);dianji1=0;dianji2=0;delay(1);miaoxianshi(miao);lcxs(lc);}break;case 10:dianji1=0;dianji2=1;miaoxianshi(miao);lcxs(lc);break;case 11:dianji1=0;dianji2=1;miaoxianshi(miao);lcxs(lc);case 12:while(n--){dianji1=0;dianji2=1;delay(50);dianji1=0;dianji2=0;delay(50);miaoxianshi(miao);lcxs(lc);}dianji1=1;dianji2=1;TR0=0;while(1){miaoxianshi(miao);lcxs(lc);}default:break;}}void delay(uchar x) //延时{u char i,j;f or(i=x;i>0;i--)for(j=50;j>0;j--);}void delay10s() //延时十秒钟{u int i,j;f or(i=15;i>0;i--)for(j=123;j>0;j--){miaoxianshi(miao);lcxs(lc);}}void ext0() interrupt 0 //外部中断0,用来检测黑带{d elay(50);i f(hdjc==0)h eidai++;}void time0() interrupt 1 //函数功能:定时器中断0,用来记录时间{TH0=(65536-500)/256;TL0=(65536-500)%256;n um++;i f(num==20){num=0;miao++;}}void ext1() interrupt 2 //函数功能:外部中断1,记录车轮转过的圈数{qs++;lc=(int)(qs*;}void main(){E A=1; //打开总中断ET0=1; //打开定时器中断0E X0=1; //打开外部中断1IT0=1; //外部中断0设置为跳变沿触发方式EX1=1; //打开外部中断1IT1=1; //外部中断1设置为跳变沿触发方式T MOD=0x01; //设置定时器0为方式1 TH0=(65536-500)/256; //定时器0高八位装初值T L0=(65536-500)%256; //定时器0低八位装初值T R0=1; //打开定时器0while(1) //进入主循环{djkz(); //进入电机控制函数}}。

相关文档
最新文档