基于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个(https://mobile.yangkeduo.com/goods.html?goods_id=253490415542&page_from=101&pxq_secret_key=6D3JRYUIEKZ5HAWJUIMIJBSCJLAEQGID5MPKO7V6HFPFGBOOJSPQ&share_uin=UIW5ZN7J4BN4MHO7YDFX43H55Q_GEXDA&refer_share_id=d4a465dd721b4a559e821dcacbee7ef5&refer_share_uid=4762216075&refer_share_uin=UIW5ZN7J4BN4MHO7YDFX43H55Q_GEXDA&refer_share_channel=copy_link&refer_share_form=text)
51单片机最小系统1个(https://mobile.yangkeduo.com/goods.html?goods_id=199562967501&page_from=101&pxq_secret_key=6D3JRYUIEKZ5HAWJUIMIJBSCJIJ4FR4HA4DJW7K43PORCLKSF63A&share_uin=UIW5ZN7J4BN4MHO7YDFX43H55Q_GEXDA&refer_share_id=c8ec1fb95cb04d14918212a0fc057600&refer_share_uid=4762216075&refer_share_uin=UIW5ZN7J4BN4MHO7YDFX43H55Q_GEXDA&refer_share_channel=copy_link&refer_share_form=text)
5号电池4个
STC89C52单片机一个(同最小单片机系统链接)
车框架一个(淘宝搜优信电子店铺有同款,15块左右,送的有马达,万向轮、电池盒)
杜邦线若干(建议买母对母,母头可拆卸,容易多根插入驱动模块)(https://mobile.yangkeduo.com/goods1.html?goods_id=130754959182&page_from=101&pxq_secret_key=6D3JRYUIEKZ5HAWJUIMIJBSCJK3MOUFMJTY2NY3J3KK2KAFZPOFA&share_uin=UIW5ZN7J4BN4MHO7YDFX43H55Q_GEXDA&refer_share_id=e0a00a8964bc4c3ca579eefca0bb073e&refer_share_uid=4762216075&refer_share_uin=UIW5ZN7J4BN4MHO7YDFX43H55Q_GEXDA&refer_share_channel=copy_link&refer_share_form=text)
二、电路连接
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
版权声明:本文为CSDN博主「杨工2001」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_57038892/article/details/121062636
暂无评论