基于 8051单片机的线跟随小车
线跟随小车是一种跟随线的机器,它可以是黑线或白线,线路跟随器感应到线路并越过它。在此项目中,如果感应到白线,会往白线的一侧转弯,直到没有感应到白线,再继续前进。
线跟随小车的原理
线跟随器的概念与光有关,当光线落在白色表面上时,它几乎会被完全反射,而在黑色表面的情况下,光线会被黑色表面吸收。这种光的行为被用于这个线跟随小车。
在这个线跟随小车项目中,我们使用了红外发射器和红外接收器,也称为光电二极管来发送和接收光。
IR Tx 发射红外光,当红外线落在白色表面时,它被反射回来被光电二极管捕获并产生一些电压变化。
当红外光落在黑色表面上时,光线被黑色表面吸收而不是反射回来,因此光电二极管没有接收到任何光线。
在此线跟随小车中,当传感器感应到白色表面时,微控制器将 0 作为输入,当感应到黑线时,微控制器将 1 作为输入。
电路设计说明
我们可以整个线跟随小车系统分为传感器部分、控制部分和驱动部分等多个部分。
传感器部分: 此部分包含 IR 二极管、电位器、比较器(运算放大器)和 LED。电位器用于设置比较器一端的参考电压,IR 传感器感应线路并在比较器的第二端提供电压变化。然后比较器比较两个电压并在输出端生成数字信号,送入8051单片机。
控制部分: 8051单片机作为控制线跟随小车的核心控制。比较器的输出连接到 8051 的引脚号 P0.0 和 P0.1。8051 读取这些信号并将命令发送到驱动电路以驱动马达做出相应动作。
驱动部分: 驱动部分由电机驱动器和两个直流电机组成。电机驱动器用于驱动电机,因为微控制器无法为电机提供足够的电压和电流。所以我们添加了一个电机驱动电路来满足电机的电压和电流。微控制器向该电机驱动器发送命令,进而驱动电机。
8051 线跟随小车的工作过程
线跟随小车通过传感器感知白线,向微控制器发送信号,然后微控制器根据传感器的输入信号来驱动电机。
在这个项目中,我们使用了两个红外传感器对(一个发送一个接收)。左右传感器都没有感应到任何东西或是黑线,即是红外接收端没有变化,小车向前直线移动。
当左侧传感器感应到白线时,小车向左转弯。
当右侧传感器感应到白线时,小车转向右侧,直到两个传感器都在黑线或没有感应到任何东西。
当两个传感器都感应到白线时,小车停止。
基于 8051 的线路跟随器小车电路
该电路非常简单。比较器(这里LM358 用作比较器)的输出直接连接到微控制器的引脚号 P0.0 和 P0.1。电机驱动器的输入引脚 2、7、10 和 15 分别连接在单片机引脚 P2.3、P2.2、P2.1 和 P2.4 处。一个电机连接在电机驱动器 3 和 6 的输出引脚上,另一个电机连接在 11 和 14 上。
编程说明
在程序中,我们首先定义输入和输出引脚。然后在 main 函数中,我们检查输入并根据输入将输出发送到驱动电路以驱动电机。
小车有四个状态。我们使用了两个传感器,即左传感器和右传感器。
// C 程序#include<reg51.h>sbit ls=P0^0;
sbit rs=P0^1;#define motor P2
#define forward 0x06
#define turn_left 0x82
#define turn_right 0x14
#define stop 0x00void main()
{motor=stop;while(1){if(ls && rs)motor=forward;else if(!ls && rs)motor=turn_left;else if(ls && !rs)motor=turn_right;elsemotor=stop;}
}
基于 8051单片机的线跟随小车相关推荐
- 51单片机小车的立项书_毕业论文:基于51单片机智能避障小车的设计报告(范文1)...
<毕业论文:基于51单片机智能避障小车的设计报告.doc>由会员分享,可免费在线阅读全文,更多与<毕业论文:基于51单片机智能避障小车的设计报告>相关文档资源请在帮帮文库(ww ...
- 最简单DIY基于STM32单片机的WIFI智能小车设计方案
STM32库函数开发系列文章目录 第一篇:STM32F103ZET6单片机双串口互发程序设计与实现 第二篇:最简单DIY基于STM32单片机的蓝牙智能小车设计方案 第三篇:最简单DIY基于STM32F ...
- 最简单DIY基于STM32单片机的蓝牙智能小车设计方案
STM32库函数开发系列文章目录 第一篇:STM32F103ZET6单片机双串口互发程序设计与实现 第二篇:最简单DIY基于STM32单片机的蓝牙智能小车设计方案 文章目录 STM32库函数开发系列文 ...
- 基于51单片机制作的蓝牙小车
基于51单片机制作的蓝牙小车 这是本人(小菜鸡一枚)于大一寒假所做的小玩意,以展现我这几月所学,这也是我发的第一篇博客,准确来说这可能是我搞51单片机的巅峰所做了,因为部长说以后要学stm32开发板了 ...
- 基于arduino单片机智能避障小车
基于arduino单片机智能避障小车 思路简介 本文简要介绍了基于arduino单片机智能小车可以通过手机端蓝牙助手对其进行遥控操作'可以切换手动操作和自动避障两个模式,避障基于蝙蝠超声波测距的原理, ...
- 单片机遥控车c语言程序,基于51单片机的无线遥控小车设计[附发射接收程序]
/***************************************************************/ /*[基于51单片机的无线遥控小车设计] 作者王*茹 */ /*** ...
- 基于51单片机的电动智能小车(完整论文)
基于51单片机的电动智能小车(完整论文): 摘 要 80C51单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评.这里介绍的是如何用80C51单片机来实现长春工业大学的毕业设计,该设计 ...
- 基于51单片机的无线遥控小车
基于51单片机的无线遥控小车 材料:STC89C51(1个).nrf2401(2个).L298N(2个).小车底盘.18650(4个).按键若干.蜂鸣器 功能:前进.后退.左转.右转.鸣笛. 程序请移 ...
- 单片机8位数码管时钟c语言汇编,基于8051单片机和DS12C8878位数码管显示的时钟.docx...
基于8051单片机和DS12C8878位数码管显示的时钟 #include #include #define sec XBYTE[0xed00]//秒寄存器地址 #define min XBYTE[0 ...
最新文章
- 【Python】if else 一行写完
- linux 定时器和sleep,linux中sleep函数的使用和总结
- python小游戏代码_20行python代码的入门级小游戏
- 学生电脑哪个牌子好_常亮补光灯哪个牌子好服务至上
- 【机器学习-西瓜书】六、支持向量机:核技巧;软间隔;惩罚因子C;松弛变量
- linux xampp图形界面,linux下安装xampp,XAMPP目录结构
- Sprin boot 加载位置顺序
- 2015 ACM/ICPC Asia Regional Shenyang Online题解
- python 类初始化函数_C类初始化函数
- 使用 CleanWipe 解决Symantec Endpoint Protection卸载需要密码问题
- 3年才能驾驭新技术,不如试试这个低代码魔方
- 代码随想录第十天 LeetCode 232、225(栈,队列)
- 异常:java.lang.ArithmeticException
- æµè¯oschina
- jqgrid 加载mysql数据_利用jqgrid+加mysql的text类型实现简单自定义数据模型
- 分体式降噪耳机有哪些?高配置分体式降噪耳机排行榜
- 解释一下java的短路运算,Java短路运算符和非短路运算符详解
- 日历小程序C语言,小程序日历功能实现
- 走格子(数学组合/动态规划)
- linux arp代理配置,在Linux上用arptables配置arp防火墙