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 = 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);//可以修改数值映射330   3.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);
}

没有外接电压:
在这里插入图片描述
如果要读取0-3.3V电压那么就需要连接到电阻分压器网络(100K和220K)测试效果:
INPUT接外部输入的信号,OUTPUT接ESP8266的A0。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45488643/article/details/106095161