1

我正在研究 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);
    }
}

这是我的引体向上接线:

这是我假设的内部上拉的接线:

4

2 回答 2

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

于 2017-07-26T11:40:00.037 回答
1

查看Feather HUZZAH ESP8266 的 Adafruits 概述。您可以使用 GPIO 的 0、2、4、5、12、13、14、15、16,但是:

这些引脚是通用的,可用于任何类型的输入或输出。大多数还具有打开内部上拉的能力。许多具有特殊功能。

详细了解 GPIO 16 向我们展示了它非常特别。GPIO 用于将控制器从深度睡眠中唤醒。因此,它是唯一具有本初学者指南中描述的内置下拉电阻的 GPIO 。这允许直接与 RESET 连接。这意味着GPIO 16 没有假设的上拉电阻。

于 2017-07-26T12:07:40.587 回答