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】没有外接电压:
文章图片
如果要读取0-3.3V电压那么就需要连接到电阻分压器网络(100K和220K)测试效果:
INPUT接外部输入的信号,OUTPUT接ESP8266的A0。
文章图片
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- android|android studio中ndk的使用
- 使用协程爬取网页,计算网页数据大小