基于51单片机的红外避障小车

Posted 杨工2001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于51单片机的红外避障小车相关的知识,希望对你有一定的参考价值。

基于51单片机的红外避障小车

产品图片

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pX7ut9kS-1635657924229)(https//img-blog.csdnimg.cn/055eecfc69ee45c790e0e97516eba1ec.jpg?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5p2o5belMjAwMQ==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)]

具体操作步骤如下

一、材料准备:
L298N电机驱动模块1个
红外避障模块2个
51单片机最小系统1个
5号电池4个
STC89C52单片机一个
车框架一个(淘宝搜优信电子店铺有同款,15块左右,送的有马达,万向轮、电池盒)
杜邦线若干(建议买母对母,母头可拆卸,容易多根插入驱动模块)
二、电路连接
1、红外模块
VCC接口与单片机的5V供电口连接
GND接口与单片机GND接口连接
OUT接口与单片机连接(左红外接P2.0,右红外接P3.7)
2、电源模块
红线接入电机驱动模块+12V
黑线接入电机驱动模块GND
3、电机驱动模块
+5V接口与单片机VCC接口相连接
IN1 IN2 IN3 IN4 接口按顺序与单片机P00 P01 P02 P03相连接
4、电机
左电机与电机驱动模块OUT3 OUT4相连接
右电机与电机驱动模块OUT1 OUT2相连接
5、注意
如果出现电机转的方向不对,可以尝试将调换接口顺序。如左电机原来接OUT3的线去接OUT4,OUT4的线来接OUT3,但不要接入到OUT1或OUT2去!
如果电机未转动,可以尝试使用一根杜邦线从电机驱动模块的+12V与+5V接口连接起来

代码部分

#include <reg52.h>

//下面的是连接l298n模块的引脚与单片机引脚相连
sbit IN1 = P0^0;
sbit IN2 = P0^1;
sbit IN3 = P0^2;
sbit IN4 = P0^3;

//红外避障模块
sbit out1 = P2^0;
sbit out2 = P3^7;


/*函数声明*/
void go();			//前进
void back();		//后退
void left();		//向左
void right();		//向右


void main()
{
	
	while(1)
	{
		if(out2 == 0)											//检测到右边有障碍物时,向左移动
		{
			left();
		}
		else if(out1 == 0)								//检测到左边边有障碍物时,向右移动
		{
			right();
		}
		else if(out1 == 1 && out2 == 1)		//检测到都没有障碍物时,向前移动
		{
			go();
		}
		else if(out1 == 0 && out2 == 0)		//检测到都有障碍物时,向后移动
		{
			back();
		}
	}
}

//前进
void go()
{
	IN1=1; 
	IN2=0; 
	IN3=1; 
	IN4=0;
}

//后退
void back()
{
	IN1=0; 
	IN2=1; 
	IN3=0; 
	IN4=1;
}

//向左
void left()
{
	IN1=0; 
	IN2=0; 
	IN3=0; 
	IN4=1;
}

//向右
void right()
{
	IN1=1; 
	IN2=0; 
	IN3=0; 
	IN4=0;
}

如果只看图文无法成功,可以在B站搜索视频
https://www.bilibili.com/video/BV1Uv411T7jz?from=search&seid=319598109009641762&spm_id_from=333.337.0.0

以上是关于基于51单片机的红外避障小车的主要内容,如果未能解决你的问题,请参考以下文章

51蓝牙红外循迹避障小车+代码

基于单片机的智能循迹避障小车STC89C52红外对管L298N驱动PWM波控制速度

求51单片机超声波避障程序

转发-基于单片机寻迹巡线避障智能小车系统设计资料 protues电路仿真

转发-基于单片机寻迹巡线避障智能小车系统设计资料 protues电路仿真

IoT红外循迹避障小车