模拟输入(ADC-A0)
ESP8266具有内置的10位ADC,只有一个ADC通道(A0引脚),即只有一个ADC输入引脚可读取来自外部器件的模拟电压
ESP8266上的ADC通道和芯片供电电压复用,也就是说我们可以将其设置为测量系统电压或者外部电压
测量外部电压:
analogRead(A0),用于读取施加在模块的ADC引脚上的外部电压;
输入电压范围: 0 - 3.0V之间;
测量精度 由于ADC具有10位分辨率,因此会给出0-1023的值范围;
注意点: 为了支持外部电压范围(0-3.3v),NodeMcu做了一个电阻分压器,如图所示:
例子
编写一个读取NodeMcu的ADC引脚上的模拟电压。我们这里使用电位器在ADC引脚上提供0-3.3V的可变电压。如下图连接线:
代码:
void setup() { Serial.begin(115200);//配置波特率 } void loop() { Serial.print("ADC Value: "); Serial.println(analogRead(A0));//读取A0脚的数据,输出0-1023 对应 外部输入电压 0-1.0v delay(1000); }
测量系统VCC电压:
ADC引脚必须保持悬空;在读取VCC电源电压之前,应更改ADC模式以读取系统电压
ADC_MODE(ADC_VCC);//设置ADC模式为读取系统电压 //ADC_MODE(ADC_TOUT) 读取外部电压模式---默认 void setup() { Serial.begin(115200);//配置波特率 } void loop() { Serial.print("ESP8266当前系统电压(mV): "); Serial.println(ESP.getVcc());//ESP.getVcc()读取VCC的电压,单位mv delay(1000); }
天子骄龙
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)