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


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。 

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

 

 

 

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM