基于Arduino的ESP32-S3 +光敏传感器(4pin)
·
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
DS18B20作为经典的单总线数字温度传感器,凭借其独特的单线通信、多点组网能力,在物联网领域广泛应用。本文将以ESP32-S3-DevKitC-1开发板为核心,详解从硬件连接到代码实现的完整测温方案,并提供OLED屏显扩展方案。相比传统模拟传感器,DS18B20可直接输出数字信号,抗干扰能力提升50%
一、硬件准备
1.1 器件对比

1.2 接线方案
接线示意:
VCC → 3.3V
GND → GND
AO → GPIO8
DO → 悬空
二、驱动实现
2.1 开发环境配置
添加库文件
无需额外库(使用原生ADC功能)
2.2核心代码解析
代码如下(示例):
#define LDRPIN 8 //定义模拟口A0
void ldr_read();
void setup() {
Serial.begin(9600);//串口初始化
pinMode(LDR, INPUT);//定义GPIO口为输入模式,也可不写,arduino默认引脚为输入
}
void loop(){
delay(1000);
ldr_read(); //获取光敏电阻的值
}
void ldr_read() {
analogReadResolution(12); // 将ADC设为最高精度模式
float ldrrr = analogRead(LDRPIN); //获取原始值
ldrrr = 13-ldrrr/1024*3.3;
int lldrr = map(ldrrr, 0, 13, 0, 100);
int ldr = map(lldrr, 0, 92, 0, 100);
Serial.print(" Ldr: %d Lx \n",ldr);
}
关键函数说明:
我将光照强度映射到1-100;便于用户观看体验
float ldrrr = analogRead(LDRPIN);
ldrrr = 13-ldrrr/1024*3.3;
int lldrr = map(ldrrr, 0, 13, 0, 100);
int ldr = map(lldrr, 0, 92, 0, 100);
三、深度问题排查
ADC通道冲突 | 检查接线/更换GPIO |
总结
本文是为验证《基于Arduino的ESP32-S3-DevKitC-1对光敏传感器的驱动》
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐

所有评论(0)