自制简易红外避障传感器:IR LED + 光电二极管 + Arduino
所需元件
- Arduino UNO × 1
- IR 发射二极管(940 nm)× 1
- 光电二极管(接收)× 1
- 150 Ω 电阻(发射端限流)、3 kΩ 电阻(接收端上拉)
- 面包板、跳线、普通 LED × 2(指示)
接线图
IR LED 阳极 → 150Ω → 5V IR LED 阴极 → GND 光电二极管阳极 → GND 光电二极管阴极 → 3kΩ → D2 光电二极管阴极 → A0(模拟读取) 绿色 LED → D13(无障碍亮) 红色 LED → D12(有障碍亮)
工作原理
IR LED 持续发射红外光,光电二极管反向偏置接收反射光。有障碍物反射光强时,二极管漏电流增大,上拉电阻分压使 A0 电压下降;Arduino 读取模拟值与阈值(约 905)比较,驱动指示灯。
代码
int photoDiode = 2; // 数字口置高提供上拉
int greenLed = 13;
int sensePin = A0;
int threshold = 905;
void setup() {
pinMode(photoDiode, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(12, OUTPUT);
digitalWrite(photoDiode, HIGH); // 内部上拉配合外部 3kΩ
digitalWrite(greenLed, LOW);
Serial.begin(9600);
}
void loop() {
int val = analogRead(sensePin);
Serial.println(val);
if (val <= threshold) {
digitalWrite(12, HIGH); // 红灯:有障碍
digitalWrite(greenLed, LOW);
} else {
digitalWrite(12, LOW);
digitalWrite(greenLed, HIGH); // 绿灯:无障碍
}
delay(20);
}
调试技巧
- 串口监视器观察有/无障碍时的模拟值,调整
threshold。 - 发射管与收光管并排、稍微倾角,减少直接串扰。
- 检测距离约 5~15 cm,受环境光、物体反射率影响大,仅适合近距离简单避障。
制造工艺
- Arduino Mega 按键 PWM 调光:三阶段渐变 LED 实战教程
- 基于模拟传感器的高精度压力与气流测量装置
- Arduino Nano 与 MPU-6050 构建实时陀螺仪游戏
- DHT11 温湿度传感器项目:LED 指示与压电蜂鸣器报警
- K30 CO₂ 传感器:室内空气质量实时监测
- Unopad:基于 Arduino 的无缝 Ableton Live MIDI 控制器
- MyRiver:基于 Arduino MKR FOX 1200 的河流水质远程监测系统
- DFRobot 电容指纹传感器 (ID809) 接入 Arduino/ESP8266 完整教程
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- 自制高精度测距轮:Arduino Nano + 旋转编码器 + 1602 LCD
- Arduino 高速转速计 - 单次检测算法实测 6.5MHz 级响应,红外 + 红激光方案
- 用 DS1302 RTC 和 Arduino UNO 制作可靠闹钟