光电开关 / 漫反射光电

2026-06-22 接口:数字开关量 R2
你将学到
  • 搞懂漫反射/对射/镜反射三种光电开关的工作原理与适用场景
  • 明白 NPN 和 PNP 输出的区别,接错不烧模块
  • 掌握工程级接法:光电开关 → 工业开关量 IO → 中控,而不是裸接 Arduino
  • 会用光电开关做展厅"物体到位检测/计数/触发",知道检测距离和背景抑制怎么选
  • 拿到选型对比表和故障排查表

展厅里有个常见的互动效果:参观者把一个实物道具放到展台上,对应的介绍就在屏幕上弹出来;或者参观者走过一段通道,计数屏上的数字就加一。驱动这类互动的,不一定是复杂的 RFID 或视觉识别——很多时候一个光电开关就搞定了,成本低,响应快,可靠性高。

光电开关"检测物体有没有"这个能力,新手容易觉得简单没什么好学的。结果跌坑往往跌在 NPN/PNP 接反、背景反射导致误触、对射和漫反射选错场景这三处。这一篇把这三个坑讲清楚,重点放在展厅的工程级接法上。

R2 内容,涉及传感器选型与接线。光电开关的具体电气参数(工作电压、响应时间、检测距离等)以你所用型号的 datasheet 为准;以下所列参数为通用工业光电开关的典型范围,供参考。


原理:三种光电开关,用哪种?

光电开关的本质是"用光束检测物体",但发射光和接收光的布置方式有三种,决定了能干什么活。

漫反射型(Diffuse Reflection)

发射器和接收器在同一个壳里,发出光束打到目标物体,靠物体表面漫反射回来的光触发输出。

[发射+接收 一体] ──光束──▶ [物体] ──漫反射──▶ [接收到反射光=有物体]

适合:检测"有没有东西到这个位置",不需要对面装一个发射头,安装方便,展厅里物体到位检测首选。

弱点:对被检测物体的颜色和反射率敏感——黑色或深色物体反射率低,可能检测距离大幅缩短;背景(展台面、墙)也可能反射光,造成误触(为此出现了"背景抑制"功能,见下文)。

对射型(Through-Beam)

发射器和接收器分开安装在两侧,光束在两者之间形成"光幕"。物体挡断光束=触发。

[发射器] ──光束──── [物体挡断] ──▶ 无光=有物体/有遮挡
                        │
                   [接收器] ── 未挡断=透光=无物体

适合:计数(传送带计件)、门禁通道检测、精确位置控制,不受物体颜色影响,可靠性最高。

弱点:需要两侧都布线、安装对准有要求、两壳距离有限制(以 datasheet 为准)。

镜反射型(Retro-Reflective)

发射器和接收器在同一壳,对面装一块反射镜(棱镜带);物体挡断光路=触发。

[发射+接收 一体] ──光束──▶ [反射镜] ──反射──▶ [接收=无物体]
                              │ 物体挡断
                           无光=有物体

适合:对射精度要求高但不方便对面布线的场景;对物体颜色不敏感(不依赖物体反射)。

弱点:反射镜要保持清洁,脏了会降低反射量导致误动作;比漫反射多一个反射镜的安装。


NPN 与 PNP:接错会烧模块

光电开关的输出类型是新手必须搞清楚的一关,弄错了会损坏模块。

工业光电开关(三线制)有两种输出极性:

NPN(漏极输出,负逻辑)

棕(VCC 电源+) ── 接 10~30V DC 正
蓝(GND 电源-) ── 接 0V/GND
黑(信号 OUT)  ── 接工业 IO 模块 DI 输入端

NPN 动作时:信号线拉低到 GND(接近 0V)
NPN 不动作:信号线为高阻/悬空(或通过上拉电阻到高电平)

NPN 用电流向下流(sink),东南亚和中国市场常见,多数工业 IO 模块(如科星)的 DI 输入可以直接接 NPN 输出。

PNP(源极输出,正逻辑)

棕(VCC 电源+) ── 接 10~30V DC 正
蓝(GND 电源-) ── 接 0V/GND
黑(信号 OUT)  ── 接工业 IO 模块 DI 输入端

PNP 动作时:信号线输出接近 VCC 的高电平(电流向上 source)
PNP 不动作:信号线拉低(或高阻)
💡 提示

一个快速判断:你拿到一个工业 IO 模块,看它 DI 端的说明,如果写"低电平有效"或"漏极输入(NPN-compatible)",就选 NPN 光电开关。如果写"高电平有效"或"源极输入(PNP-compatible)",就选 PNP。买之前查 IO 模块手册确认,不确定就问厂家——以你实际采购模块的手册为准。


工程级接法:信号进工业 IO,不裸接 Arduino

跟所有展厅传感器一样,光电开关的信号不要直接接 Arduino 就上展厅。工程接法是:

光电开关(24V DC 供电,NPN/PNP 输出)
        │  棕=+24V / 蓝=GND / 黑=信号
        ▼
工业开关量输入 IO 模块(如科星网络 IO 采集器,带网口/RS485)
        │  Modbus TCP/RTU
        ▼
中控软件(SoftControl) ── 读到 DI 变为"有物体"──▶ 触发展项

接线注意:

  1. 供电电压匹配:大多数工业光电开关工作在 1030V DC,常选 24V DC 工业电源供电。工业 IO 模块的 DI 输入端耐压以手册为准,有的是 524V 干接点,有的要求干接点(无源触点),注意匹配。
  2. 线长与抗干扰:信号线和动力线分管分槽走,信号线用屏蔽线并单端接地,长距离布线(>10m)注意压降和干扰。
  3. 同步供电:光电开关和 IO 模块建议共用同一个 24V 电源,确保共地(GND 相同),否则电位差会导致输入状态不稳定。
💡 提示

原型阶段可以用 Arduino/ESP32 快速验证点子(直接接信号线看触发),正式工程换工业 IO 再部署——这是能不能顺利验收的分水岭,见 PIR 那篇 里对这个工程原则的详细解释。


展厅典型用法

用法 1:物体到位检测(漫反射)

展台上放实物道具触发对应内容。光电开关装在展台侧面或底部,调好检测距离,道具放上去时反射光增强触发。中控收到 DI 信号→播放对应视频/点亮对应灯光。

安装要点:调好检测距离(道具到光电开关的距离),让展台面的反射光不触发(调背景抑制或位置偏移),道具放上才触发。

用法 2:通道计数(对射)

走廊入口两侧对射安装,参观者经过挡断光束=计一次人次。中控收到 DI 脉冲,计数器累加,显示屏更新数字。

注意:对射计数对"多人同时通过"无法区分(只知道光束被挡、未挡,不知道有几个人挡),如需精确人数需要升级方案(激光阵列或视觉计数)。

用法 3:展项到位确认(对射)

展厅里有机械动作(升降、推拉),需要确认到达指定位置再触发下一步。对射光电开关可以作为"到位开关"——机构到位挡断光路=确认到位信号,通知中控继续下一步动作。可靠性比机械微动开关高(非接触),比 PIR 精准(位置确定)。

用法 4:触发类互动(漫反射,检测手势/物体靠近)

参观者把手伸入展项指定区域触发特效。漫反射光电开关检测"手进入检测区",输出信号给工业 IO,中控触发特效。比 PIR 的检测区域更精确、更小,适合需要定向触发的互动。


背景抑制:漫反射最重要的功能

漫反射光电开关有一个你不能忽视的选项:背景抑制(Background Suppression)

普通漫反射光电开关靠"反射光强度"判断有无物体,问题是展台面、墙壁等背景也可能反射光,特别是浅色光滑展台面——物体放上去前就已经触发了,物体放上后反而没什么变化。

背景抑制型光电开关使用角度三角测量原理(接收器接收到的反射光角度不同来区分近距离物体和远距离背景),设定好"检测阈值距离"之内的物体才触发,背景物体因距离超过阈值不触发。

选型建议:展台检测优先选漫反射带背景抑制型号,可以大幅降低背景干扰的麻烦。以你所选型号 datasheet 里的"背景抑制距离"参数设置为准。


选型对比表

维度 漫反射型 对射型 镜反射型
安装便利性 最简单,一个壳 两侧都要装布线 一侧装壳+一侧装反射镜
对物体颜色的敏感度 高(深色物体距离减短) 无(挡断光路即触发)
检测可靠性(颜色/透明物体) 一般 最高 高,但透明物体可能穿透
适合展厅场景 物体到位、近距离触发 通道计数、机构到位 长距离检测、对射不方便时
背景抑制需求 浅色展台面需选带背景抑制 不需要 不需要
工作电压(典型) 10~30V DC 10~30V DC 10~30V DC
检测距离(典型范围) 0.1m~2m(以型号为准) 0.5m~50m(以型号为准) 0.1m~6m(以型号为准)
响应时间(典型) <1ms(以 datasheet 为准) <1ms <1ms
💡 提示

别处搜不到的增量:展厅物体到位检测如果用漫反射检测黑色道具(如黑色底座的展品),反射率通常不到 5%(哑光黑),有效检测距离可能只有标称的 20%~30%。遇到这种情况,要么换对射型(绕开颜色问题),要么选针对低反射率有增强灵敏度的漫反射型号,或者在道具底部贴一圈白色反光贴纸。


故障排查表

现象 最可能的原因 怎么查/怎么办
完全不触发,信号线无变化 未上电/极性接反/NPN·PNP 选错 量供电;核对棕蓝黑三线接法;确认输出类型与 IO 模块 DI 匹配
没有物体也一直触发(漫反射) 展台背景反射太强/检测距离设太短/无背景抑制 调检测距离;换带背景抑制型号;调整安装角度避开背景
黑色道具检测不到 漫反射对低反射率物体无效 换对射型;或道具底部加白色反光贴
对射光电偶发误触发 对面接收器有强光干扰(阳光直射) 遮光处理;选抗强光型号(以 datasheet 为准);错开光线方向
信号抖动(触发了又没触发) 接线松动/信号线干扰/物体反射率边界 紧接头;信号线屏蔽/远离强电;检测距离对准物体中心而非边缘
功能正常但中控没反应 电平没匹配/IO 模块地址/通道号错 查 IO 模块手册确认 DI 输入方式;Modbus 地址和通道号对应
上电后一直输出触发状态 NPN/PNP 接反了,或常闭(NC)型选了 确认 NC/NO(常闭/常开)型号与接法;重新核对输出接法

动手挑战

  1. 拿一个漫反射光电开关,分别对着白纸和黑纸靠近,看在同样距离上,指示灯是否都会亮。记录两者触发的最大距离差——这是你亲手验证"颜色影响检测距离"的第一手数据。
  2. 把光电开关接到工业 IO 模块,在 Modbus 工具里读取 DI 状态寄存器,确认物体到位时寄存器值变化(这是正式工程的最小验证流程)。

本节学到的知识

  • 三种原理选型:漫反射(发射+接收一体,靠物体反射光触发,对颜色敏感、装法最省);对射(发射接收分两侧,挡断光束触发、不受颜色影响、可靠性最高);镜反射(对面装反射镜,物体挡光路触发,不依赖物体反射)。
  • 输出极性别接反:三线制光电开关分 NPN(漏极/负逻辑,动作时信号线拉低到近 0V)PNP(源极/正逻辑,动作时信号线输出近 VCC 高电平);选哪种看 IO 模块 DI 端说明——「低电平/漏极输入」配 NPN,「高电平/源极输入」配 PNP,以采购模块手册为准
  • 接线三色棕=VCC 电源+(接 10~30V DC)、蓝=GND、黑=信号 OUT(进工业 IO 的 DI 端)
  • 工程接法:光电开关 → 工业开关量输入 IO 模块(如科星,带网口/RS485) → 走 Modbus TCP/RTU → 中控软件触发展项,别裸接 Arduino 上展厅
  • 供电与抗干扰:多数工业光电开关工作 10~30V DC,常用 24V DC 供电;光电开关与 IO 模块共用同一 24V 电源、共地,否则电位差导致输入不稳;信号线与动力线分管分槽、用屏蔽线单端接地,长距离(>10m)留意压降与干扰。
  • 背景抑制是漫反射命门:普通漫反射靠反射光强度判断,浅色光滑展台面会误触;背景抑制型用角度三角测量,只对设定阈值距离内的物体触发,展台检测优先选带背景抑制型号,阈值距离以 datasheet 为准
  • 典型参数范围(以型号手册为准):检测距离——漫反射约 0.1~2m、对射约 0.5~50m、镜反射约 0.1~6m;响应时间一般 <1ms
  • 黑色道具的坑:哑光黑反射率通常不到 5%,漫反射有效距离可能只剩标称的 20%~30%,解法是换对射、选低反射率增强型号、或道具底部贴白色反光贴。
  • NC/NO 别搞混:上电就一直输出触发,多半是 NPN/PNP 接反或选了常闭(NC)型,核对常开/常闭型号与接法。

小结 · 你掌握了什么

  • 你搞懂了漫反射/对射/镜反射三种光电开关各自的原理,知道展厅"物体到位检测"选漫反射带背景抑制、"通道计数或机构到位"选对射。
  • 你掌握了 NPN/PNP 的区别和接法,不会再因为接反烧模块或信号不通。
  • 你知道了工程级接法:光电开关 → 工业开关量 IO(科星)→ 中控,而不是裸接 Arduino。
  • 你拿到了选型对比表(含颜色影响检测距离这个关键避坑)和故障排查表。

展厅里还有更多开关量传感器——比如压力传感器检测踩踏互动、震动传感器检测敲击。它们的工程接法和这篇完全相同:开关量出来,进工业 IO,进中控。更多传感器见 传感器图鉴总览

📄 来源 / 自校链接

本文为公开资料整理,非亲测。关键参数与代码请结合实物与下列官方来源验证。

需要展厅软硬件方案或定制开发?