Skip to main content

wokwi-photoresistor-sensor参考

光电阻(LDR)传感器模块

引脚名称

NameDescription
VCCPositive power supply
GNDGround
DODigital output
AOAnalog output

属性

NameDescriptionDefault value
lux初始光值(lux)"500"
threshold数字输出阈值电压"2.5"
rl10LDR电阻@ 10lux(以千欧姆为单位)"50"
gammalog(R) / log(lux)图的斜率"0.7"

工作方式

光电阻传感器模块包括一个LDR(光依赖电阻)和一个10K电阻串联。AO引脚连接在LDR和10K电阻之间。

AO引脚上的电压取决于照明——即落在传感器上的光量。您可以通过将光电阻传感器的AO引脚连接到模拟输入引脚,然后使用analogRead()函数来读取此电压。

有两个参数控制LDR的灵敏度:rl10和γ。rl10是LDR在10勒克斯照明水平上的电阻。伽马值决定了log(R) / log(lux)图的斜率。您通常可以在LDR的数据表中找到这两个值。

下表显示了照明电平(lux)、电阻(R)和电压电平之间的关系

当gamma = 0.7和rl10 = 50时,在AO引脚上(默认值):

ConditionIllumination (lux)LDR ResistanceVoltage*analogRead() value
Full moon0.11.25MΩ4.961016
Deep twilight1250kΩ4.81985
Twilight1050kΩ4.17853
Computer monitor**5016.2kΩ3.09633
Stairway lighting1009.98kΩ2.50511
Office lighting4003.78kΩ1.37281
Overcast day1,0001.99kΩ0.83170
Full daylight10,000397Ω0.1939
Direct sunlight100,00079Ω0.048

* When VCC = 5V
** 在距离显示器一米远的地方测量

以下代码将analogRead()的返回值转换为照明值(勒克斯):

// These constants should match the photoresistor's "gamma" and "rl10" attributes
const float GAMMA = 0.7;
const float RL10 = 50;

// Convert the analog value into lux value:
int analogValue = analogRead(A0);
float voltage = analogValue / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));

数字输出

数字输出(“DO”)引脚在黑暗时会很高,在有光时会变低。在物理传感器上,您可以调整车载小电位器以设置阈值。在模拟器中,使用“阈值”属性来设置阈值电压。默认阈值为2.5伏特,或约100勒克斯。

底部LED(“DO LED”)连接到数字输出,每当DO引脚低时都会亮起。换句话说,当传感器被照亮时,它会发光。

原理图

Wokwi Photoresistor (LDR) Sensor Module Schematics

仿真实例