光线传感器是根据光电效应的原理起作用的。所谓光电效应,就是指某些特殊的物质在吸收了光线后能够将光能转换为电能的现象。光电效应可以分为外光电效应和内光电效应两种。外光电效应指的是在光线照射下,电子能够从物质的内部向外发射而产生电力作用,光电管、光电倍增管都是基于外光电效应制成的原件。相应地,内光电效应则是发生在物质的内部,当光线照射到物质上时,使其内部的电阻率发生改变,从而改变了电动势。光敏电阻、光电池等光电原件就是基于内光电效应制成的。
学习板上的光线传感器就是光敏电阻。
光线照射到传感器上时,传感器的阻值发生了变化,加载到传感器上的电压也相应的产生变化,并反映在端子上。我们将使用程序读取这个变化的电压并显示在LCD上面。
# 部署
- LCD的接口
RS-D7
分别连接到OSEPP UNO的2~7
号引脚。 - 光线传感器
Light Sensor
的端子接到OSEPP UNO的A0
引脚。
# 程序搭建
- oseppBlock 积木知识
光线传感器定义积木。设定传感器的名称和连接引脚,只能接在模拟输入端口A0-A7
。
光线传感器亮度输出值积木。输出值范围在0-1023
之间。
- oseppBlock程序
- Arduino程序
#include <LiquidCrystal.h>
LiquidCrystal lcd1(2, 3, 4, 5, 6, 7); //定义LCD引脚
void setup()
{
lcd1.begin(16, 2); //LCD初始化
//light1
pinMode(A0, INPUT); //定义光线传感器引脚A0为输入模式
}
void loop()
{
lcd1.clear(); //清屏
lcd1.setCursor(0, 0); //显示光标定位
lcd1.print(analogRead(A0)); //显示光线传感器的值
delay(1000); //延时1000毫秒
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 运行结果
此时遮挡光线传感器就会看到LCD显示的数值在变化。光线越弱数值越小,光线越强数值越大。
# 解析
光敏电阻是一种电阻值随光照强度增加而下降的电阻,基于其内部光电效应,光照越强电阻值越小。