ESP8266-Arduino编程实例-三路红外寻迹传感器驱动

三路红外寻迹传感器驱动

1、红外寻迹传感器介绍

红外寻迹传感器具有一对红外线发射管与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,输出接口会输出一个数字信号(低电平或高电平,取决于电路设计),有效范围一般为2~30CM。传感器主动红外反射探测,因此反射率和形状是探测距离的关键。其中黑色探测距离小,白色距离大;小面积物体距离小,大面积距离大。

本次使用的集成三个红外寻迹传感模块有如下特性:

  • 利用红外光探测,抗干扰能力强,采用CTRT5000传感器,灵敏度可调,性能稳定
  • 工作电压3.3~5V,白线输出低电平

在这里插入图片描述

2、硬件准备

  • ESP8266 NodeMCU开发板一块
  • 三路红外寻迹传感器模块一个
  • 面板板一个
  • 杜邦线若干
  • 数据线一条

硬件接线如下:

传感器模块引脚 开发板引脚
Vcc 3.3v
L D6
C D7
R D8
Gnd Gnd

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

4、代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#define LEFT\_SENSORPIN D6
#define CENTER\_SENSORPIN D7
#define RIGHT\_SENSORPIN D8

void setup()
{
Serial.begin(9600);
pinMode(LEFT_SENSORPIN,INPUT);
pinMode(CENTER_SENSORPIN,INPUT);
pinMode(RIGHT_SENSORPIN,INPUT);
}

void loop()
{
// 读取传感器引脚电平状态
byte leftSensor=digitalRead(LEFT_SENSORPIN);
byte centerSensor=digitalRead(CENTER_SENSORPIN);
byte rightSensor=digitalRead(RIGHT_SENSORPIN);

Serial.print(" Left : ");
Serial.print(leftSensor);
Serial.print(" Centre : ");
Serial.print(centerSensor);
Serial.print(" Right : ");
Serial.print(rightSensor);
Serial.println();
delay(1000);
}

文章来源: https://iotsmart.blog.csdn.net/article/details/126379426