Эта статья представляет собой руководство по GPIO ESP8266: схемы выводов, их функции и способы их использования.
Чип ESP8266 12-E имеет 17 контактов GPIO. Не все GPIO доступны на всех макетных платах ESP8266, некоторые GPIO не рекомендуется использовать, а другие имеют очень специфические функции. С помощью этого руководства вы узнаете, как правильно использовать GPIO ESP8266 и избежать многочасовых разочарований, используя наиболее подходящие контакты для ваших проектов.
На следующем рисунке показана разводка микросхемы ESP8266 12-E. Используйте эту диаграмму, если вы используете в своих проектах чистый чип ESP8266.
Примечание. Не все GPIO доступны на всех макетных платах, но каждый конкретный GPIO работает одинаково независимо от используемой вами макетной платы.
На данный момент существует большое разнообразие макетных плат с чипом ESP8266, которые отличаются количеством доступных GPIO, размером, форм-фактором и т. д.
Наиболее широко используемыми платами ESP8266 являются ESP-01 , ESP8266-12E NodeMCU Kit и Wemos D1 Mini .
Если вы используете плату ESP8266-01, вы можете использовать следующую схему GPIO в качестве справки.
Распиновка комплекта ESP8266 12-E NodeMCU показана ниже.
На следующем рисунке показана распиновка WeMos D1 Mini.
Мы собрали удобный PDF-файл, который вы можете скачать и распечатать, чтобы схемы ESP8266 всегда были у вас под рукой:
Периферийные устройства ESP8266 включают в себя:
Важная вещь, которую следует отметить в отношении ESP8266, заключается в том, что номера GPIO не соответствуют шелкографии на плате. Например, D0 соответствует GPIO16, а D1 соответствует GPIO5.
В следующей таблице показано соответствие между номерами шелкографии и номером GPIO, а также то, какие контакты лучше всего использовать в ваших проектах, а с какими нужно быть осторожными.
Выводы, выделенные зеленым, можно использовать. Те, которые выделены желтым, можно использовать, но вам нужно обратить внимание, потому что они могут иметь неожиданное поведение, в основном при загрузке. Выводы, выделенные красным, не рекомендуется использовать в качестве входов или выходов.
Label | GPIO | Input | Output | Notes |
D0 | GPIO16 | no interrupt | no PWM or I2C support | HIGH at boot used to wake up from deep sleep |
D1 | GPIO5 | OK | OK | often used as SCL (I2C) |
D2 | GPIO4 | OK | OK | often used as SDA (I2C) |
D3 | GPIO0 | pulled up | OK | connected to FLASH button, boot fails if pulled LOW |
D4 | GPIO2 | pulled up | OK | HIGH at boot connected to on-board LED, boot fails if pulled LOW |
D5 | GPIO14 | OK | OK | SPI (SCLK) |
D6 | GPIO12 | OK | OK | SPI (MISO) |
D7 | GPIO13 | OK | OK | SPI (MOSI) |
D8 | GPIO15 | pulled to GND | OK | SPI (CS) Boot fails if pulled HIGH |
RX | GPIO3 | OK | RX pin | HIGH at boot |
TX | GPIO1 | TX pin | OK |
HIGH at boot |
A0 | ADC0 | Analog input | X |
GPIO6-GPIO11 обычно подключаются к микросхеме флэш-памяти на платах ESP8266. Таким образом, эти контакты не рекомендуется использовать.
Можно предотвратить загрузку ESP8266, если некоторые выводы вытянуты в LOW или HIGH. В следующем списке показано состояние следующих контактов на BOOT:
Есть определенные контакты, которые выдают сигнал 3,3 В при загрузке ESP8266. Это может быть проблематично, если у вас есть реле или другие периферийные устройства, подключенные к этим GPIO. Следующие GPIO выдают сигнал HIGH при загрузке:
Кроме того, другие GPIO, кроме GPIO5 и GPIO4, могут выдавать низковольтный сигнал при загрузке, что может быть проблематично, если они подключены к транзисторам или реле.
GPIO4 и GPIO5 являются наиболее безопасными для использования GPIO, если вы хотите управлять реле.
ESP8266 поддерживает аналоговое чтение только в одном GPIO. Этот GPIO называется ADC0 и обычно обозначается на шелкографии как A0 .
Максимальное входное напряжение на выводе ADC0 составляет от 0 до 1 В, если вы используете чистый чип ESP8266. Если вы используете макетную плату, такую как комплект ESP8266 12-E NodeMCU, диапазон входного напряжения составляет от 0 до 3,3 В, поскольку эти платы содержат внутренний делитель напряжения.
Большинство плат разработки ESP8266 имеют встроенный светодиод. Этот светодиод обычно подключается к GPIO2.
Светодиод работает с инвертированной логикой. Отправьте сигнал HIGH, чтобы выключить его, и сигнал LOW, чтобы включить его.
Когда на вывод RST подается НИЗКИЙ уровень, ESP8266 сбрасывается. Это аналогично нажатию встроенной кнопки RESET.
Когда GPIO0 получает НИЗКИЙ уровень, он переводит ESP8266 в режим загрузчика. Это то же самое, что и нажатие встроенной кнопки FLASH/BOOT.
GPIO16 можно использовать для пробуждения ESP8266 от глубокого сна. Чтобы вывести ESP8266 из глубокого сна, GPIO16 должен быть подключен к контакту RST.
У ESP8266 нет аппаратных выводов I2C, но его можно реализовать программно. Таким образом, вы можете использовать любые GPIO в качестве I2C. Обычно в качестве контактов I2C используются следующие GPIO:
Выводы, используемые в качестве SPI в ESP8266:
ESP8266 поддерживает программную ШИМ на всех контактах ввода/вывода: от GPIO0 до GPIO15. Сигналы ШИМ на ESP8266 имеют 10-битное разрешение.
ESP8266 поддерживает прерывания в любом GPIO, кроме GPIO16.
Продолжение следует. Подписывайтесь на новости.
Переведено и озвучено с буржуйских сайтов)