ESP8266(NodeMCU)使用ADC

??简介模数转换器(ADC)及其引脚:
??模数转换器(ADC)用于将模拟信号转换为数字形式。ESP8266具有内置的10位ADC,只有一个ADC通道,即只有一个ADC输入引脚可读取来自外部器件的模拟电压,预留的ADC引脚为A0,可以读取0~1V的电压,电压输入信号映射到数值0-1023。换句话说,就是将1V电压分成1024分,1V对应1024。
读取0-1V:

const int analogInPin = A0; // 模拟输入引脚const int pwmOutPin = LED_BUILTIN; //led连接到pwm输出引脚int sensorValue = https://www.it610.com/article/0; // 从引脚读到的值 int outputValue = 0; //输出到pwm脚的值void setup() { // 设置引脚为模拟输入模式 pinMode(analogInPin, INPUT); // 设置led脚输出pwm模式 pinMode(pwmOutPin, OUTPUT); Serial.begin(9600); }void loop() { //读取模拟输入数值 sensorValue = analogRead(analogInPin); // 使用map函数把输入的数值进行映射 outputValue = map(sensorValue, 0, 1024, 0, 330); //可以修改数值映射3303.3V // 改变模拟输出数值 analogWrite(pwmOutPin, outputValue); Serial.println((float)outputValue/100.00); //保留两位小数 // 在串口打印显示输入输出的数值 Serial.print("sensor = "); Serial.print(sensorValue); Serial.print("\t output = "); Serial.println(outputValue); delay(200); }

【ESP8266(NodeMCU)使用ADC】没有外接电压:
ESP8266(NodeMCU)使用ADC
文章图片

如果要读取0-3.3V电压那么就需要连接到电阻分压器网络(100K和220K)测试效果:
INPUT接外部输入的信号,OUTPUT接ESP8266的A0。
ESP8266(NodeMCU)使用ADC
文章图片

    推荐阅读