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。
?????????????????