ESP8266ADC检测电压是0V到1V,和arduino uno和nano的0~5V不同,使用时一定要注意输入的电压不能超过0V到1V否则会烧坏ESP8266的ADC。ESP8266的ADC是12为的,所以返回值值从0-1023之间的值,ESP8266只有一个ADC即使A0脚。
电路图如图1所示:
图1
通过电阻分压得到适当的电压值,为保险起见,将上面的电阻设置成3.3K。这样最大电压值就是。
为了效果明显,使用一个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。
?????????????????