
四路光敏传感器是由4个独立的光敏电阻组成的传感器模块。光敏电阻是一种特殊的电阻器,其电阻值会随着光照强度的变化而发生变化。四路光敏传感器的工作原理如下:每个光敏电阻会根据当前的光照强度产生不同的电阻值。通过测量这4个光敏电阻的电阻值变化,可以获取当前环境中不同方向的光照情况。通常这种传感器会将4个光敏电阻的信号通过ADC转换后输出给单片机或其他控制器使用。
四路光敏传感器的典型应用场景包括:环境光检测和调节: 根据环境光照强度自动调节室内照明亮度。物体/人体检测: 通过检测不同方向的光照变化来检测物体或人体的移动。方位检测: 利用4个光敏电阻的输出判断光源的方位,用于太阳能电池板的朝向控制等。光强平衡控制: 在某些应用中需要保持光照在4个方向上均匀,可以使用四路光敏传感器来实现光强的平衡控制,例如追光器。

| 引脚名称 | 描述 |
|---|---|
| GND | GND(电源输入负极) |
| VCC | VCC(电源输入正极) |
| A1|S | 数字信号引脚 |
| A2|S | 数字信号引脚 |
| A3|S | 数字信号引脚 |
| A4|S | 数字信号引脚 |
供电电压:3.3V / 5V
连接方式:2.54mm排针
安装方式:双螺丝固定

示例程序(UNO开发板):点击下载
volatile int zoushang;
volatile int youshang;
volatile int zouxia;
volatile int youxia;
void setup(){
Serial.begin(9600);
zoushang = 0;
youshang = 0;
zouxia = 0;
youxia = 0;
pinMode(A1, INPUT);
pinMode(A2, INPUT);
pinMode(A3, INPUT);
pinMode(A4, INPUT);
}
void loop(){
zouxia = analogRead(A1);
zoushang = analogRead(A2);
youxia = analogRead(A3);
youshang = analogRead(A4);
delay(500);
Serial.print("A1:");
Serial.print(zouxia);
Serial.print("******");
Serial.print("A2:");
Serial.print(zoushang);
Serial.print("******");
Serial.print("A3:");
Serial.print(youxia);
Serial.print("******");
Serial.print("A4:");
Serial.println(youshang);
}
示例程序(ESP32开发板—基于Python语言,不能用Arduino IDE上传代码):
import machine
import time
adc34 = machine.ADC(machine.Pin(34))
adc35 = machine.ADC(machine.Pin(35))
adc36 = machine.ADC(machine.Pin(36))
adc39 = machine.ADC(machine.Pin(39))
while True:
print(' A1: ',end ="")
print(adc34.read_u16(),end ="")
print(' A2: ',end ="")
print(adc35.read_u16(),end ="")
print(' A3: ',end ="")
print(adc36.read_u16(),end ="")
print(' A4: ',end ="")
print(adc39.read_u16())
time.sleep_ms(200)
示例程序(UNO开发板):点击下载

示例程序(ESP32开发板):点击下载

Arduino环境搭建
准备配件:
电路接线图:

Micropython环境搭建
准备配件:
电路接线图:
视频教程:点击查看

光敏传感器就是一个光敏电阻与一个电阻串联分压,而我们读取的模拟值就是分压出来的电压值,周围环境光线的亮度强时所读取的电压值就越高,相反周围环境光线的亮度低时所读取的电压值就越低。观察串口输出数据,当任意光敏探头被照射到强光线时,串口输出数值小,光敏探头电阻变小,用手遮挡任意光敏探头时,光线变暗,串口输出数值变大,光敏探头电阻变大。由此我们可以通过光敏电阻数值的变化来控制led灯的亮度及舵机的转动等执行器。