BH1750 I2C光传感器:lux转lumen计算疑问求助
解决BH1750 lux转lumen的误区
哈哈,这个坑很多人第一次折腾照度和光通量转换都会踩!你核心的问题是搞混了传感器的感光面积和你要计算光通量的目标照射面积,咱们一步步理清楚:
先明确基本概念
lux(勒克斯)的定义是「1 lumen 每平方米」,也就是:
光通量Φ(单位:lm)= 照度E(单位:lx) × 照射面积A(单位:m²)
你想要的600lm,其实对应是某个特定区域的总光通量,而不是传感器自身接收到的那一点点。
为什么用传感器面积算出来不对?
BH1750 datasheet里的0.25mm×0.3mm是传感器自身的感光区域面积,这个数值是用来计算传感器自己接收到的微小光通量的,比如你测得的8000lx,代入传感器面积的话:
传感器接收的光通量 = 8000lx × (0.25×10^-3 m) × (0.3×10^-3 m) = 8000 × 7.5×10^-8 = 0.0006 lm
这显然不是你要的600lm——因为这个数值只是传感器那一小块面积捕捉到的光,而不是你关注的整个被照射区域的总光通量。
怎么得到你想要的600lm?
你可以反过来推:600lm ÷ 8000lx = 0.075 m²,也就是750 cm²,大概是一个0.27米见方的区域(比如一张A4纸的面积大概是0.062 m²,接近这个数值)。这说明你潜意识里是想计算这个大小的区域的总光通量,那你就应该把这个区域的面积代入公式,而不是传感器的面积。
额外补充
如果你的目标是计算光源的总光通量(比如某个灯的总lm数),那你需要用到照度的平方反比定律:在距离点光源d米处的照度E = Φ/(4πd²),所以Φ = E×4πd²。不过这个前提是光源接近点光源,且环境没有反射光干扰。
内容的提问来源于stack exchange,提问作者C. Winters
相关产品推荐
相关产品推荐

