ESP8266ADC检测电压是0V到1V,和arduino uno和nano的0~5V不同,使用时一定要注意输入的电压不能超过0V到1V否则会烧坏ESP8266的ADC。ESP8266的ADC是12为的,所以返回值值从0-1023之间的值,ESP8266只有一个ADC即使A0脚。

电路图如图1所示:

arduino开发ESP8266学习笔记五——模拟输入

 

 

 

图1

 

 

通过电阻分压得到适当的电压值,为保险起见,将上面的电阻设置成3.3K。这样最大电压值就是arduino开发ESP8266学习笔记五——模拟输入

 

 

为了效果明显,使用一个LED用采到的电压值,设置LED亮度。

 程序代码

int analogInput=A0;//
int LED=14;
void setup() {
  Serial.begin(9600);//初始化串口波特率
  pinMode(LED,OUTPUT);
  //Serial.println("模拟电压值:");//通过串口发送

}

void loop()
{
  int analogValue;//用来存放读到的模拟值,范围是0-1023
  // float brightnessValue;
  analogValue=analogRead(analogInput);
  // brightnessValue=1.0*analogValue/1024.0;
  analogWrite(LED,analogValue);
  delay(1);
  Serial.println(analogValue);//通过串口将采到的模拟值发送到电脑

}

 

额,代码是对的,但是不知道是不是开发板的原因,我的模拟返回值最高只有241(分压电阻位50K),当分压电阻为1K的时候只有136。 

 ?????????????????

 

 

 

 

 

 

 

分类:

技术点:

相关文章: