提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

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对光敏传感器的驱动》

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐