基于51单片机的红外循迹模块

循迹模块介绍及原理

在这里插入图片描述
这里使用的四路循迹模块
部分端口介绍
主板的OUT1-4端分别连接单片机的IO口,用于检测输出电平
主板另一排针侧的VCC GND IN1-4端分别和探头部分对应连接IN端连接OUT端
模块原理
当探头的红外发射管发射光线经地面反射进入接收管。输出端输出低电平,主板对应的led灯不亮。如果地面有黑色区域将吸收光线,接收管接收不到光线输出端就会输出高电平,主板的led灯会被点亮。

部分程序

//这里仅使用两个探头控制小车的方向
 if(rightLight==0&&leftLight==0)//左右探头均接收到反射光
	 {
	 	straight();//小车直行
	 }
	 else if(rightLight==1&&leftLight==0)//右探头没有接收到反射光输出高电平 左探头接收到反射光输出低电平
	 {
	 	go_right();//小车右转
	 }
	 else if(rightLight==0&&leftLight==1)//以下原理同上
	 {
	 	go_left();
	 }
	 else if(rightLight==1&&leftLight==1)
	 {
	 	stop();
	 }

结合小车的全部程序

//红外循迹模块结合小车
#include<REG51.H>
sbit IN1    = P2^4;
sbit IN2    = P2^3;
sbit IN3    = P2^2;
sbit IN4    = P2^1;
sbit rightLight=P1^2;
sbit leftLight=P1^3;
void stop() 
{ 
  IN1=0;
  IN2=0;
  IN3=0;
  IN4=0; 
}

void go_left() 
{ 
 IN1=1; 
 IN2=0; 
 IN3=1; 
 IN4=0; 
} 
void go_right()  
{ 
 IN1=0; 
 IN2=1; 
 IN3=0; 
 IN4=1; 
} 
void straight() 
{ 
 IN1=0; 
 IN2=1; 
 IN3=1; 
 IN4=0; 
} 
void main()
{
	while(1)
	{	
	 if(rightLight==0&&leftLight==0)
	 {
	 	straight();
	 }
	 else if(rightLight==1&&leftLight==0)
	 {
	 	go_right();
	 }
	 else if(rightLight==0&&leftLight==1)
	 {
	 	go_left();
	 }
	 else if(rightLight==1&&leftLight==1)
	 {
	 	stop();
	 }
	}
}

 - [] 点赞+收藏

-----END------

小车避障模块
蓝牙控制小车

  • 12
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

很瞌睡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值