0、结果
说明:先来看看串口调试助手显示的结果,没有障碍物的时候串口打印1,有障碍物的时候串口打印0,如果是你想要的,可以接着往下看。
1、外观
说明:虽然红外寻迹传感器形态各异,但是原理和代码都是适用的。
2、连线
说明:只需要连接三根线。
uno————红外寻迹传感器
3、源程序
说明:采用非阻塞方式编写,一定时间检测一次传感器的值,并将对应功能进行函数化,方便移植。
/*
wire:
VCC------VCC
GND------GND
2------OUT*/
/****************************************infrared part****************************************/
#define infraredPin 2
#define infraredTimeInterval 100 //Detect the time interval of a trip
unsigned long infraredTimes = 0; //Record the device running time//Define a pin
boolean infraredVal = false; //Define a variable
/****************************************set up and loop part*********************************/
void setup() {
Serial.begin(9600); //Example Set the baud rate of the serial port to 9600
pinMode(infraredPin, INPUT_PULLUP); //The pin is set to pull-up input
//digitalWrite(relayPin, HIGH);
Serial.println("Go online!"); //The serial port displays the corresponding value
}
void loop() {
getinfraredData(); //Get Hall's data
}
/****************************************infrared part****************************************/
/*Get infrared's data*/
void getinfraredData() {
if (millis() - infraredTimes >= infraredTimeInterval) { //This command is executed once in a while
infraredTimes = millis();
infraredVal = digitalRead(infraredPin); //Read the status of the sensor pins
Serial.println(infraredVal); //The serial port displays the corresponding value
}
}
4、注意事项
说明:如果有什么问题可以评论@我,我将帮助你。电位器可以调节灵敏度。在光比较强的场景下会不准,例如在光照情况下,会不准。反应速度很快。
5、基本原理
红外寻迹传感器是一种常用于智能小车、机器人等项目的传感器,可以检测地面上黑线、白线等轨迹,从而实现小车或机器人沿着指定路径自动行驶的功能。其工作原理基于红外线灰度测量。
当光照射在红外寻迹传感器上时,传感器内部的红外发射管会发射出一定频率的红外线,照射到地面上的黑线或白线等轨迹表面后,会反射回来,经过传感器内部的红外接收管检测。由于黑线和白线反射红外线的程度不同,因此传感器通过检测红外线的强度就可以判断所处位置是否在轨迹上,以实现跟踪轨迹的功能。
为了提高传感器的检测精度,通常还会在传感器外部加上一些凸起的结构,使传感器与地面保持一定的距离,并且只能检测到轨迹上方向传感器的光线,避免干扰。