| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 课程设计:基于C52单片机的循迹小车 -> 正文阅读 |
|
[嵌入式]课程设计:基于C52单片机的循迹小车 |
?目录 1.硬件设计(1)电机驱动模块线路连接 J10-EN1接C52-P1.4? ? ? ? ? ? ? ? ? ? ? ? //EN1为左电机的使能端,只有当EN1为1时,左电机才能启动 J10-EN2接C52-P1.5????????????????????????//EN2为右电机的使能端,只有当EN2为1时,右电机才能启动 J10-IN1接C52-P1.2? ? ? ? ? ? ? ? ? ? ? ? ?//IN1控制左电机反转,当IN1为1时,左电机反转 J10-IN2接C52-P1.3????????????????????????//IN2控制左电机正转,当IN2为1时,左电机正转 J10-IN3接C52-P1.6????????????????????????//IN3控制左电机正转,当IN3为1时,左电机正转 J10-IN4接C52-P1.7????????????????????????//IN4控制左电机反转,当IN4为1时,左电机反转 电机驱动模块原理图 (2)红外避障与循迹模块线路连接 J11-P3.2接C52-P3.2? ? ? //P3.2为循迹右灯,当检测到黑色时为1,指示灯灭,未检测到黑色时为0,指示灯亮 J11-P3.3接C52-P3.3 //P3.3为循迹左灯,当检测到黑色时为1,指示灯灭,未检测到黑色时为0,指示灯亮 J11-P3.4接C52-P3.4 //P3.3为避障左灯,当检测到黑色时为1,指示灯灭,未检测到黑色时为0,指示灯亮 J11-P3.5接C52-P3.5 //P3.3为避障左灯,当检测到黑色时为1,指示灯灭,未检测到黑色时为0,指示灯亮 J11-VCC接电源 J11-GND接地 红外避障与循迹检测模块原理图 检测原理:红外线发射装置发射红外线,由于平面会反射红外线,红外线接收装置就会收到反射回来的红外线,此时指示灯亮,端口输出0;而检测装置下面有黑色时,黑色会吸收掉红外线,接受装置就接受不到红外线,指示灯灭,端口输出1.因此,当检测装置下面一定距离内没有反射物时,接受装置收不到返回的红外线,也会被认为是检测到了黑色。 2.软件设计(1)电机驱动模块首先定义端口,方便后续使用 通过控制左右电机的正反转来实现小车的前进,转弯,旋转等操作 例如:当左电机停止转动,右电机正转,即可实现小车左转的操作 ? ? ? ? ? ?当左电机反转,右电机正转,即可实现小车逆时针旋转的操作 1.控制小车前进的函数fornt() ?2.控制小车左转的函数left() 3.控制小车右转的函数right() 4.控制小车逆时针旋转的函数ni() 5.控制小车顺时针旋转的函数shun() ?6.控制小车停止的函数stop() ?(2)循迹检测模块首先定义端口,方便后续使用 通过红外线检测是否有黑色,从而驱动小车进行下一步运动 如果左灯为0,右灯为1,说明左边出了黑色轨道,此时应该右转,使小车回到轨道上; 如果左灯为1,右灯为0,说明右边出了黑色轨道,此时应该左转,使小车回到轨道上; 如果左灯为1,右灯为1,说明两边都在黑色轨道上,此时应该直行; 如果左灯为0,右灯为0,说明两边都出了黑线轨道,此时应该旋转,寻找轨道 ??????根据红外线检测的结果执行相应的操作; 当小车左转时,将k赋值1,以防脱轨后寻轨,因为如果小车左转时脱轨,说明轨道在小车的左侧,此时逆时针寻轨能够最快速的找到轨道; 同理,小车右转时,将k赋值2,如果小车右转脱轨,说明轨道在小车右侧,此时顺时针寻轨能最快速找到轨道。 (3)PWM模块最后,由于小车速度过快,经常脱轨之后就冲出了可寻轨的范围,所以这里采用PWM技术来调整小车的车速。 ?首先是定时器的设置,这里只需要用到一个中断,不需要设置中断优先级,默认即可,定时器使用方式2,因为方式2有重装功能,计时最准确快捷。 设置占空比,此处time为全局变量,每进入一次中断函数,time就加一,而只有time=75时才会有相应操作,而time=100时又会停止相应操作,就是说,电机真正响应的时间,只有25%,速度也只有原来的25%,可以通过改变占空比来改变速度。这里占空比要尽可能大,使小车速度减慢,不然容易脱离可寻轨范围。 ? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 18:24:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |