TS-300B浊度传感器原理图深度解析:从光源驱动到信号调理

发布时间:2026/8/31 23:24:00
TS-300B浊度传感器原理图深度解析:从光源驱动到信号调理 简介本资源为TS-300B浊度传感器的完整硬件设计资料包面向环境监测、水处理自动化、工业过程控制等领域的嵌入式工程师、仪器仪表开发人员及高校相关专业师生用于快速理解传感器内部光电检测原理、开展电路集成或故障分析。压缩包共2个文件19KB含PDF格式的详细原理图清晰标注光源驱动、光电探测、信号放大与滤波等关键模块另附JSON格式嘉立创工程文件支持直接导入EDA工具进行PCB复现与修改。已有618人学习下载资料结构精炼、即拿即用可作为传感器选型参考、硬件接口对接依据或课程实验拓展素材尤其适用于需将浊度检测模块嵌入PLC、STM32或IoT数据采集系统的实际项目。 TS-300B 这块浊度传感器玩水质监测、鱼缸自动换水、洗衣机污水检测的朋友应该不陌生。市面上能买到的模块大多已经给你做好了信号调理接上单片机的 ADC 就能用。但如果你手头有一份 TS-300B 的原理图或者想照着参考设计自己画一块只看表面那几根排针是远远不够的。原理图里藏着光源驱动怎么设计、光电流怎么转成电压、比较器阈值怎么设这么多门道值得花点时间把它拆开看透。这篇文章我会把 TS-300B 浊度传感器从原理图开始逐模块拆解从红外发射管的限流计算讲到光敏管的 I-V 转换从模拟输出和数字输出背后的电路逻辑讲到实际画板时的布局布线要点最后给你一份可以直接抄的嵌入式驱动和标定方案。适合正在做水质检测类项目、想自己复刻传感器模块、或者在画原理图阶段卡壳的硬件工程师和电子爱好者。1. 认识TS-300B浊度传感器原理图到底在讲什么1.1 传感器溯源TS-300B的定位与典型应用场景浊度传感器是水质检测里最常用的传感器之一它的核心任务就是测量水中悬浮颗粒对光线的阻挡或散射程度。TS-300B 属于典型的透射式浊度传感器内部结构说白了就是一只红外发光管和一只光敏晶体管对着放中间留出水流通道。水样越浑浊透过去的光越少光敏管接收到的信号就越弱。原理图里处理的核心就是把这种光的强弱变化忠实、稳定地转换成电压或者开关量。我看到很多新手第一次拿到 TS-300B 模块觉得它就是一个黑盒子接上 VCC、GND、AO、DO 四根线就算完事了。但一旦遇到输出异常、数据跳变、线性度差这些问题手上没有原理图就完全无从下手。读懂原理图能帮你回答三个关键问题AO 口的电压到底和浊度是什么关系DO 口的阈值由谁来决定供电电压波动会不会影响测量结果有了这几个答案调试和维护就有了方向。TS-300B 的典型应用场景非常接地气鱼缸水质监测、洗衣机泡沫检测、餐饮洗碗机污水判断、工业冷却循环水浊度预警。这些场景有个共同点它们不需要实验室级的分光光度计精度更看重的是低成本、响应快、电路简单、好集成。所以 TS-300B 原理图的设计目标始终围绕够用、稳定、便宜这六个字展开。1.2 原理图读图路线图先看电源、再看传感、后看信号链路拿到 TS-300B 完整原理图的时候我习惯先把图纸按功能块切分而不是从头到尾逐根线去追。这种模块的原理图一般可以切成四个功能块电源输入与滤波、红外光源驱动、光电接收与信号调理、阈值比较与输出接口。你先在原理图上用笔把这四个区域圈出来整张图立刻就会清晰很多。读图的顺序也有讲究。我建议先看电源区域确认模块的工作电压范围和去耦电容配置再看光源驱动回路算算红外 LED 的限流电阻接着沿着光电接收的信号流向一路看到运放输出最后再追比较器那一部分。这个顺序本质上就是供电 - 激励 - 传感 - 调理 - 输出的信号链路顺序顺着信号链路走永远不会迷路。还有个实用小技巧TS-300B 的模拟输出 AO 和数字输出 DO 在原理图上通常对应两条并行的信号路径。模拟路径经过运放和滤波后直接输出数字路径则再经过一级比较器把模拟电压和阈值电压做比较。读图时先分开看这两条路径最后在输出端接口处再汇合理解会比较容易建立起整体概念。2. 原理图核心模块拆解从光电转换到信号输出2.1 光源驱动电路红外LED的限流与稳定供电TS-300B 的光源是一只红外发光二极管波长一般在 850nm 到 940nm 这个区间正好避开了大部分可见光的干扰。原理图上 LED 的驱动电路非常简单通常就是一个限流电阻串在电源和 LED 正极之间。但就是这个看似不起眼的电阻取值是有讲究的。假设供电电压是 5V红外 LED 的正向导通压降按 1.2V 到 1.5V 估算如果目标电流是 20mA限流电阻就可以按 (5 - 1.3) / 0.02 ≈ 185Ω 来选实际取 180Ω 或 200Ω 标称值。为什么要把 LED 驱动电流定在 20mA 附近而不是更大原因有两方面。一是红外 LED 的发光强度和电流并不是无限线性增长的超过额定值之后光强增益变缓反而会增加功耗和发热导致光衰加速。二是这个模块的使用场景往往是长期通电运行比如鱼缸监测需要 7x24 小时开着电流每增大一点LED 的寿命就会明显缩短。我实测过不少模块标称 20mA 驱动跑一两年没什么问题但有人为了追求更强的信号把电流拉到 40mA不到半年就出现光衰测量数据也跟着漂。另外要注意有些版本的 TS-300B 原理图会在 LED 供电端加一个三极管或 MOS 管作为开关用单片机的 GPIO 来控制光源的启停。这样设计的好处是可以在待机时关断 LED降低整机功耗同时也能避免 LED 长时间点亮造成的温漂。如果你打算做低功耗的水质监测节点这个设计思路值得借鉴。2.2 光电接收与I-V转换微安级电流怎么变成可读电压光敏晶体管是接收端的核心器件。当红外光照射到光敏管的基区时光生载流子会被收集形成光电流。这个光电流的幅度很小通常在微安级别甚至低到几百纳安。要把这么微弱的电流变成 ADC 能直接采样的电压就必须经过 I-V 转换电路。TS-300B 原理图上最常见的做法是用一只运放搭成跨阻放大器光敏管接在运放的反相输入端反馈电阻 Rf 跨接在输出端和反相输入端之间。跨阻放大器的输出电压 Vout Iphoto × Rf这个公式是整个接收链路的地基。假设光电流是 10μA反馈电阻取 100kΩ输出电压就是 1V。如果你希望信号幅度再大一点可以把反馈电阻换成 200kΩ输出就变成 2V。但这里有个平衡问题反馈电阻越大输出噪声也跟着放大而且运放的输入偏置电流会在反馈电阻上产生额外的直流误差。所以我通常建议优先选择输入偏置电流小的运放比如 JFET 输入的型号再根据实际信号幅度选择合适的反馈电阻。还有一个细节很多人会忽略光敏晶体管的结电容和运放的输入电容会在反馈回路引入极点导致电路产生高频振荡或者响应变慢。原理图上跨阻放大器反馈电阻两端通常会并联一只小电容比如几 pF 到几十 pF作用是形成低通滤波抑制高频噪声同时提高稳定性。你画板的时候这只电容千万不要省否则很容易出现输出信号自激啸叫的问题。2.3 模拟输出与阈值比较DO与AO双路输出的设计思路TS-300B 模块的 AO 引脚输出的是与浊度成反比的模拟电压。水越清透射光越强光电流越大AO 电压越高水越浑浊AO 电压越低。常见的模块默认在清水中 AO 输出在 4V 左右在浑浊液体中会降到 2V 甚至更低。这个电压范围正好落在 5V 供电的 ADC 采样范围内接 STM32 的 ADC 或者 Arduino 的 A0 引脚就能直接读取。DO 引脚则是数字开关量输出原理图里对应一个比较器。比较器的同相输入端接模拟信号反相输入端接一个由电阻分压网络构成的阈值电压。当模拟电压低于阈值时比较器输出翻转DO 引脚变成低电平或者高电平取决于模块设计。这个阈值电压就是模块出厂设定的浊度报警点比如 4.2V 对应的浊度约 50NTU具体数值要看厂家标定。比较器输出端通常会加一只上拉电阻因为比较器如果是开漏输出的话需要上拉才能输出高电平。有些模块还会在比较器后面加一级施密特触发器整形或者干脆选用自带迟滞功能的比较器芯片目的都是为了防止信号在阈值附近抖动时 DO 输出反复跳动。你在原理图上如果看到反馈电阻从比较器输出端引回到同相输入端那就是迟滞网络这是非常关键的设计细节。2.4 关键的迟滞设计为什么阈值比较需要施密特特性阈值比较如果没有迟滞在实际使用中会非常痛苦。设想一下鱼缸水位报警的场景浊度刚好在阈值附近波动时DO 引脚会在 0 和 1 之间快速切换接在 DO 上的蜂鸣器或者继电器会跟着疯狂抖动这显然是不可接受的。迟滞的设计思路是让比较器的上下阈值不一样比如上升沿触发点是 4.0V下降沿释放点是 3.8V中间形成一个 0.2V 的死区。信号在这个死区范围内时输出保持上一个状态不会来回翻转。迟滞的幅度怎么定也有讲究。阈值波动范围如果主要是由水样流动引起的你可以把迟滞设得大一点比如 0.3V 到 0.5V如果传感器是静态测量迟滞可以设小一点保证响应灵敏度。原理图上迟滞电阻网络的计算公式是 Vhyst Vout_high × R1 / (R1 R2)其中 R1 是从同相输入端到地的电阻R2 是反馈电阻。我一般先确定目标迟滞电压再反推电阻比值实测下来效果都不错。还要提醒一下有些低成本的 TS-300B 兼容模块为了省成本DO 路径用的不是真正的比较器而是一个运放接成正反馈的形式来模拟迟滞比较。这种做法的优点是运放通用、成本低缺点是输出摆幅受供电电压限制而且翻转速度没那么快。如果你对 DO 的实时性要求很高比如要驱动 PWM 或者计数输入建议选择用真比较器的设计。3. 从原理图到PCB硬件实现的四个关键决策3.1 光路结构设计对射式传感器的光学隔离原理图画完之后PCB 布局才是决定传感器性能的关键一步。TS-300B 是对射式结构发射管和接收管必须精准对位光路中间预留的水槽要保证水样能顺畅流过。画板子或者做结构件的时候发射管和接收管之间除了水样通道之外任何可能透光的缝隙都应该用遮光结构挡住。否则环境光一照进来接收管就分不清哪些是红外光源的信号、哪些是环境光的干扰AO 输出会直接飘掉。我见过有人在原型验证阶段用热缩管套在发射管和接收管外面效果倒也不错。但批量做的时候最好在 PCB 上设计金属屏蔽罩的焊盘或者结构件上预留挡光筋。另外 PCB 本身也要注意红外 LED 和光敏管之间的覆铜或者走线不要形成光反射通道尽量在两者之间留出干净的隔离带。还有一个容易被忽视的点发射管和接收管的高度必须一致否则光轴偏移会导致接收到的光强大幅衰减。原理图上看不出这个问题但实际装配时如果器件高度差超过 0.5mm输出信号可能直接掉一半。选型的时候优先买同一家供应商配套的发射管和接收管他们通常配对出厂光轴一致性有保障。3.2 布局与地线处理模拟地和数字地的分割艺术TS-300B 虽然只是一个简单的传感器模块但它的信号链是典型的数模混合设计。模拟部分负责微安级光电流的放大数字部分负责比较器的开关输出。如果模拟地和数字地混在一起数字输出的跳变噪声很容易耦合到模拟信号里导致 AO 输出在比较器翻转瞬间出现尖峰。原理图设计阶段就要把模拟地 AGND 和数字地 DGND 分开标注最后在电源输入端用 0Ω 电阻或者磁珠单点连接。反馈电阻和运放周围的电阻电容要尽量靠近运放引脚缩短高阻抗节点的走线长度。高阻抗节点对噪声非常敏感走线稍微长一点就会变成天线把空间里的电磁干扰收进来。运放的反相输入端是整张原理图里最敏感的位置从光敏管到运放反相端的走线一定要短而粗并且两侧用接地铜皮包裹形成保护环这样能把漏电流和外部干扰压到最低。电源去耦也不能马虎。我习惯在运放电源引脚旁边放两个电容一个 10μF 的钽电容或电解电容负责低频储能一个 0.1μF 的陶瓷电容负责高频去耦。这两个电容要尽可能靠近电源引脚过孔直接打到引脚旁边的地平面。红外 LED 的驱动电流会在电源线上产生纹波如果去耦不到位这个纹波会通过运放的电源抑制比影响输出表现为 AO 信号上叠加一个与 LED 开关频率相关的小锯齿波。3.3 电源与滤波为什么5V供电要加去耦电容TS-300B 的标准供电是 5V但很多应用场景里5V 是从 12V 或者 24V 通过 DCDC 降压过来的纹波可能高达几十毫伏。如果你直接拿这种电源给传感器供电光源驱动电流会跟着纹波波动光强也会抖动最后在 AO 输出端变成噪声。原理图上电源入口那一堆电容不是摆设你把模块拆开看VCC 引脚附近至少有一颗 10μF 的电解电容和一颗 0.1μF 的陶瓷电容有的版本还会加一个低压差稳压器LDO把电压稳定到 3.3V 或者 5V。LDO 对传感器性能的提升非常明显。红外 LED 的发光强度和驱动电流有关而驱动电流由限流电阻和供电电压共同决定。供电电压如果波动 100mV光强变化可能就能在输出端引起几十毫伏的误差。用 LDO 稳压之后供电电压纹波可以压到几毫伏以内输出稳定性会好很多。我实测过同一块板子直接接开关电源时 AO 输出有约 20mV 的噪声串一个 LDO 之后噪声降到了 5mV 以下效果立竿见影。滤波电路也值得留个心眼。AO 输出端的滤波电容如果取得太大会拖慢响应速度。假设你要监测的水浊度变化不是很快比如鱼缸水质慢慢变浑浊那取 10μF 甚至 100μF 都没问题但如果你做的是管道式在线监测水流量大、浊度变化快滤波电容就不能太大建议控制在 1μF 以内或者用一阶 RC 滤波截止频率选 10Hz 左右就够了。4. 基于原理图的嵌入式驱动与标定实操4.1 模拟输出读取ADC采样与电压-浊度换算原理图读懂了接下来就是把它接到单片机上跑起来。TS-300B 的 AO 输出接到 STM32 的 ADC 引脚之前我建议先看下模块输出的电压范围。以 5V 供电的常见版本为例清水时输出接近 4V浑浊时可能掉到 1V 以下。如果单片机是 3.3V 供电ADC 参考电压也是 3.3V那 4V 已经超出量程了必须在中间加一个分压电阻或者用运放做电平移位。最简单稳妥的办法是 AO 串联一个 10kΩ 电阻再并联一个 20kΩ 电阻到地把电压按比例缩到原来的三分之二这样 4V 就变成 2.67V落在 3.3V 量程内了。ADC 采样建议开 12 位分辨率采样时间拉长一点比如 10 到 20 个时钟周期再配合软件取平均滤波。我一般连续采样 16 次去掉最大值和最小值之后取平均能有效抑制随机噪声。换算公式很简单实际电压 ADC 读数 / 4095 × 参考电压代入之前分压比例就能反推出传感器 AO 的真实电压。有了电压值之后通过标定得到的电压-浊度关系曲线就能算出当前水样的浊度数值。4.2 标定实验标准浊度液配置与线性拟合出厂模块的电压-浊度关系只能算一个粗略参考真要拿它做定量测量必须自己做标定。标定的核心是准备不同浊度的标准液。实验室里一般用福尔马肼Formazin标准液但你手头没有的话可以先用一种简单的方法近似取纯净水作为 0NTU 基准再按比例加入一定量的牛奶或者淀粉悬浊液搅拌均匀后作为高浊度样液。这样配出来的溶液虽然不是严格意义上的标准浊度液但用来测相对变化、做趋势判断足够了。把传感器分别放进 0NTU、低浊度、中浊度、高浊度四组水样中记录每组对应的 AO 电压值。你会看到电压随着浊度升高而下降而且接近线性关系。用最小二乘法做一元线性回归就能得到浊度 NTU k × 电压 b 这样的公式。我实测过一批 TS-300B 模块k 值大约在 -120 到 -180 NTU/V 之间b 值在 600 到 800 NTU 附近不同批次差异还是不小的所以每块板子最好单独标定。标定过程和实际测量过程要尽量保持一致包括水样温度、水样体积、传感器浸入深度。我发现水温对测量结果影响特别明显红外 LED 的光输出和光敏管的响应都受温度影响温度每变化 10℃输出可能偏差几个百分点。所以大批量测量的时候要么等传感器在液体中稳定一段时间再读数要么同时用温度传感器做温度补偿。4.3 数字输出应用水位报警与自动换水场景DO 引脚的应用就简单直接了它本质上就是浊度超限报警。在代码里把 DO 配置成 GPIO 输入带上拉输入模式然后轮询电平变化即可。DO 输出的电压逻辑一般和模块的 AO 电压相反或直接关联具体要看比较器是正接还是反接。实际使用前先用万用表量一下清水时 DO 是高电平还是低电平浑浊时是否翻转确认逻辑匹配再写代码省得调试时被坑。自动换水是我最喜欢的应用场景。把 TS-300B 放在鱼缸的过滤槽里DO 输出接 STM32 的一个 GPIO当浊度超过设定阈值时DO 变低单片机检测到之后打开排水电磁阀和进水电磁阀完成一次自动换水。这里有一个非常实用的技巧在代码里加一个去抖逻辑连续读取 DO 两次间隔 100ms只有两次读到的电平一致才认为是有效跳变。这个技巧能滤掉水流扰动引起的瞬时误触发比单纯用比较器迟滞更稳。如果你想用 DO 直接驱动继电器或者三极管记得看下原理图上比较器输出的驱动能力。一般模块的 DO 输出只能提供几毫安到十几毫安的电流直接驱动继电器线圈可能会拉低电压甚至烧坏输出管。正确做法是让 DO 接一个 NPN 三极管或者 MOS 管的栅极由三极管去驱动继电器DO 本身只提供低电平信号。5. 常见问题与排查技巧实录5.1 传感器无输出或输出异常这是个高频问题。接好线之后 AO 口一直输出 0V 或者接近 VCC先不要急着怀疑传感器坏了按下面的顺序排查第一用万用表量 VCC 引脚对地电压是不是 5V红外 LED 正极有没有电压。第二检查光路里有没有被杂物挡住水槽里如果有气泡会严重干扰光路造成输出大幅波动。第三量运放输出引脚如果运放输出有信号但 AO 没有那就是输出路径上的电阻电容有虚焊。我遇到过一次特别隐蔽的问题模块的 AO 引脚在排针处虚焊万用表量排针是 0V但量模块内部的运放输出脚却很正常。用放大镜一看排针焊盘上的锡量太少只是表面接触不牢导致的断路。重新补焊之后一切正常。所以遇到无输出的情况第一反应应该是怀疑焊接质量用热风枪对可疑焊点过一遍或者逐点量排针到器件的导通性。5.2 数据跳变严重或线性度差数据跳变的原因很多但最常见的就是光路被环境光干扰。TS-300B 对室内照明光还是有响应的尤其在阳光直射或者 LED 灯光直接照射的情况下AO 输出会剧烈波动。解决办法是把传感器放进遮光罩里或者给外壳喷涂遮光漆只留出流向通道。如果是在室外使用还要考虑红外成分较多的太阳光干扰最好在接收管前面加一片只透红外波段的滤光片。线性度差往往和标定方法有关。我见过很多人拿 AO 电压直接和浊度做直线拟合结果发现中间点偏差很大。这不是传感器的问题而是传感器的响应曲线本身就不是严格线性的。更准确的做法是用分段线性插值或者用多项式拟合二次多项式就够用。另外水样中的气泡对散射式浊度测量的影响远大于透射式如果你发现数据在冒泡时剧烈波动那不是电路的毛病是物理现象需要在采样前静置去气泡。5.3 长时间运行后漂移传感器长期运行之后出现测量值漂移这是最难排查的问题之一。先是检查光源:红外 LED 长时间工作会光衰光强下降之后接收端信号变弱AO 电压会跟着下降导致测出来的浊度偏高。这种漂移是渐进的很难通过软件补偿。解决思路有两条一是降低 LED 驱动电流到规格书的推荐值延长光源寿命二是定期用纯净水做零点校准通过软件修正漂移。另一个漂移源头是光敏管表面和水槽内壁结垢。长期接触水样之后水里的杂质会附着在光学表面上相当于光路上多了一层遮挡。我的经验是每 1 到 2 周做一次清洁维护用软布蘸酒精擦拭发射管和接收管的透光面。如果把传感器浸没使用还要检查防水胶圈有没有老化水汽一旦渗入光学腔输出漂移会呈指数级恶化这时候只能拆开做干燥处理了。5.4 排查工具与操作手法推荐排查 TS-300B 电路问题我的工具箱里常备这几样数字万用表、示波器、热风枪、放大镜。万用表用于量电压和通断示波器用于观察 AO 信号上的噪声和纹波热风枪用于补焊和拆除元件放大镜则用来检查细小焊点和器件是否虚焊。如果你手上只有万用表也没有关系很多问题是可以靠一点点排除法定位的。用示波器看 AO 信号时记得把探头的地线夹子缩短夹到离模块电源地最近的焊点上否则探头地线本身会引入噪声。IO 口的数字信号最好用逻辑分析仪看普通示波器看的话容易触发抖动影响判断。排查之前把模块放在稳定的环境中静止五分钟让传感器温度和光路充分稳定然后再开始测量这样可以避免把环境因素误判成电路故障。我做水质监测项目这几年积累了一个不小的体会TS-300B 这类光电传感器的性能和它的外围电路设计是强相关的原理图里的每一个电阻、电容都不是随便放的它们背后都是光电转换、信号调理、噪声控制这些最基本的模拟电路原理。真正动手把原理图拆开看明白了很多看起来奇怪的故障现象其实都有了合理的解释。希望这篇文章能帮你把 TS-300B 用得更有底气少走一些我在黑暗中摸索走过的弯路。如果后面做液位测量或者水色判断也可以参考这套光电传感的设计思路换一下光源和接收管就能做出更多有意思的应用。本文还有配套的精品资源点击获取