我正在研究Adafruit Feather Huzzah ESP8266,我想在按钮上添加一个内部上拉。当我使用电阻器手动上拉时,我的接线工作正常但是当我在Arduino IDE代码中使用以下行添加内部上拉时,它无法正常工作。
pinMode(BOUTON,INPUT_PULLUP)
这是我的完整代码:
const int LED = 13;
const int BOUTON = 16;
void setup()
{
pinMode(LED, OUTPUT);
pinMode(BOUTON, INPUT);
}
void loop()
{
int etat = digitalRead(BOUTON);
if(etat==LOW)
{
digitalWrite(LED, HIGH);
}
else
{
digitalWrite(LED, LOW);
}
}
答案 0 :(得分:3)
编写程序时,您错误地认为GPIO16有一个上拉电阻。它没有。
启动时,引脚配置为INPUT。
GPIO0-GPIO15可以是INPUT,OUTPUT或INPUT_PULLUP。 GPIO16可以是INPUT,OUTPUT或INPUT_PULLDOWN_16。它也是用于deepSleep()的XPD(可能通过一个小电容器。)
请注意,GPIO6-GPIO11通常用于接口 在大多数esp8266模块上都有闪存IC,所以这些引脚 通常不应该使用。
参考:http://www.esp8266.com/wiki/doku.php?id=esp8266_gpio_pin_allocations
答案 1 :(得分:1)
看看Adafruits overview of the Feather HUZZAH ESP8266。您可以使用GPIO的0,2,4,5,12,13,14,15,16但是:
这些引脚是通用的,可用于任何类型的输入 或输出。 大多数人还可以打开内部上拉。 许多都有特殊的功能。
详细了解GPIO 16向我们展示了它非常特别。 GPIO用于将控制器从深度睡眠中唤醒。因此,它是唯一具有内置下拉电阻的GPIO,在this beginners guide中有描述。这允许直接连接RESET。这意味着 GPIO 16没有像假设那样的上拉电阻。