光敏电阻光照传感器
光敏电阻是用硫化隔或硒化隔等半导体材料制成的特殊电阻器,其工作原理是基于内光电效应。随着光照强度的升高,电阻值迅速降低,由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。其在无光照时,几乎呈高阻状态,暗时电阻很大。光敏电阻模块一般用来检测周围环境的光线的亮度,触发单片机或继电器模块等。
模块来源
规格参数
工作电压:3.3-5V
工作电流:1MA
模块尺寸:31.1475 x 14.097mm
输出方式:
DO接口为数字量输出
AO接口为模拟量输出
读取方式:ADC
管脚数量:4 Pin(2.54mm间距排针)
硬件连接
这个模块采用的光敏电阻的型号是5516,对应下图,可以知道在光亮时的阻值在8到20KΩ左右,在光暗时的阻值在1MΩ左右。
其对应的原理图见下图,其中U2.1为LM393,R3为光敏电阻。AO输出为R2和R3分压后直接输出电压,所以为模拟量;DO为经过LM393进行电压比较后,输出高低电平,所以为数字量。具体原理是,393的3号引脚电压与2号引脚进行电压比较。当3号引脚电压比2号引脚电压高时,1号引脚输出高电平;当3号引脚电压比2号引脚电压低时,1号引脚输出低电平;可以通过调整R4控制2号引脚的电压。
因此DO引脚可以配置为输入模式,AO引脚需要配置为ADC模拟输入模式。
- 传感器的Vcc端接开发板的5V供电;
- GND端接开发板的GND;
- AO(模拟信号输出端)接开发板的A0模拟输入引脚;
- DO(数字信号输出端)接开发板的8号引脚;
使用方法
编写代码
c
/******************************************************************************
* 测试硬件:ColorEasyDuino开发板
* 版 本 号: V1.0
* 修改作者: www.lckfb.com
* 修改日期: 2024年04月08日
* 功能介绍:
*****************************************************************************
* 开发板软硬件资料与相关项目软硬件资料官网全部开源
* 开发板官网:www.lckfb.com
* 技术支持常驻论坛,任何技术问题欢迎随时交流学习
* 立创论坛:club.szlcsc.com
* 关注bilibili账号:【立创开发板】,掌握我们的最新动态!
* 不靠卖板赚钱,以培养中国工程师为己任
******************************************************************************/
int LDR_AO_Pin = A0; // 定义光敏电阻传感器的AO连接到开发板的A0引脚
int LDR_DO_Pin = 8; // 定义光敏电阻传感器的DO连接到开发板的8号引脚
int LDRValue = 0; // 用于存储光照强度值的变量
#define ADC_MAX_VALUE 1023 //ADC的最大采集值
void setup() {
Serial.begin(9600); // 开始串行通讯,设置波特率为9600
pinMode(LDR_DO_Pin, INPUT_PULLUP);
}
void loop() {
// 读取按钮的状态
int LDRState = digitalRead(LDR_DO_Pin);
if (LDRState == LOW) {
Serial.println("检测到高亮度");
} else {
Serial.println("检测到低亮度");
}
LDRValue = analogRead(LDR_AO_Pin); // 读取A0引脚的电压值
Serial.print("光照强度: ");
Serial.println(ADC_MAX_VALUE - LDRValue); // 将读取的值发送到电脑的串行监视器
delay(1000); // 延时1秒
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38