Оглавление:
- Вступление
- Шаг 1. Прошивка контактов GPIO - с GPIO6 на GPIO11
- Шаг 2: контакты GPIO0, GPIO2 и GPIO15
- Шаг 3: Использование GPIO0, GPIO2 и GPIO15 в качестве выходов
- Шаг 4: Использование GPIO0, GPIO2 и GPIO15 в качестве входов
- Заключение
Видео: ESP8266 Использование контактов GPIO0 / GPIO2 / GPIO15: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Обновление 1 июля 2018 г. - добавлено примечание о перепрограммировании, когда GPIO0 является выходом
Это очень короткое примечание о том, как использовать контакты GPIO0 / GPIO2 и GPIO15 на модуле ESP8266.
Обновление: также ознакомьтесь с тем, как использовать контакты ESP8266-01.
Вступление
ESP8266 - недорогой чип с поддержкой Wi-Fi. Он имеет множество типов модулей и может быть запрограммирован разными способами. Все модули делают доступными GPIO0 и GPIO2. Большинство модулей, кроме ESP8266-01, также делают доступным GPIO15. Эти GPIO контролируют запуск модуля и поэтому требуют особого обращения, если они вообще будут использоваться. GPIO6-GPIO11 также требует особого обращения, как описано ниже.
Шаг 1. Прошивка контактов GPIO - с GPIO6 на GPIO11
Большинство плат ESP8266 имеют микросхему флэш-памяти, подключенную к некоторым или всем GPIO6-GPIO11. Большинство программ используют флэш-память, а также ОЗУ, поэтому, если вы специально не убедитесь, что ваш код запускается только из ОЗУ, вы не можете использовать эти контакты для других целей.
Точное количество контактов, используемых в диапазоне от GPIO6 до GPIO11, зависит от типа флеш-оборудования, используемого в вашем модуле. Quad IO использует 4 линии для данных (всего 6 контактов), что в 4 раза превышает стандартную скорость. Двойной ввод-вывод использует 2 линии для данных (всего 4 контакта). Стандарт использует одну строку для данных (всего 3 контакта).
Если вы точно не знаете, что требуется вашей плате, вам лучше просто игнорировать GPIO6 - GPIO11 и не ссылаться на них в своем коде.
Шаг 2: контакты GPIO0, GPIO2 и GPIO15
Эти контакты определяют, в каком режиме запускается микросхема.
Для нормального выполнения программы GPIO0 и GPIO2 необходимо подтянуть до Vcc (3,3 В), а GPIO15 нужно подтянуть к GND, каждый с резистором в диапазоне от 2 кОм до 10 кОм. Резистор 2K обеспечивает лучшую помехозащищенность. OLIMEX использует резисторы 2 кОм. SparkFun использует резисторы 10 кОм. Я использую резисторы 3К3.
Настройки этих входов проверяются только при включении (или сбросе) микросхемы. После этого выводы доступны для общего использования, но, как обсуждается ниже, их использование ограничено этими внешними подтягивающими резисторами.
Шаг 3: Использование GPIO0, GPIO2 и GPIO15 в качестве выходов
Как отмечалось выше, на этих выводах уже будет резистор, подключенный либо к VCC (GPIO0 и GPIO2), либо к GND для GPIO15. Это определяет, как должно быть подключено любое внешнее устройство, например реле или светодиод + резистор. Для GPIO0 и GPIO2 внешнее реле должно быть подключено между VCC и выводом, чтобы оно не мешало работе подтягивающего резистора. И наоборот, внешнее реле, подключенное к GPIO15, должно быть подключено между GND и контактом, чтобы оно не мешало работе понижающего резистора.
Чтобы активировать внешнее устройство, GPIO0 или GPIO2 должны быть установлены на НИЗКИЙ (активный НИЗКИЙ), а GPIO15 - на ВЫСОКИЙ (активный ВЫСОКИЙ).
На схеме выше показано, как использовать GPIO0, GPIO2 и GPIO15 в качестве выходов. Эта схема также включает в себя необходимые подтягивающие / понижающие резисторы. Обратите внимание, что модуль реле 5 В, управляемый GPIO0, оптоизолирован и имеет отдельное общее соединение для входа. Важно, чтобы на вывод ESP8266 не подавалось напряжение 5 В VCCA.
Как перепрограммировать при использовании GPIO0 в качестве выхода
Примечание: GPIO0 необходимо заземлить, чтобы перейти в режим программирования. Если вы делаете набросок слишком высоко, заземление может повредить вам микросхему ESP8266. Безопасный способ перепрограммировать ESP8266, когда ваш код управляет выходом GPIO0: короткое замыкание от GPIO0, поэтому вы не закорачиваете выход во время работы программы e) перепрограммируйте плату f) выключите и снова включите плату, если необходимо.
Шаг 4: Использование GPIO0, GPIO2 и GPIO15 в качестве входов
Использование этих контактов в качестве входов немного сложно. Как отмечалось выше при включении питания и во время сброса, эти контакты должны быть подтянуты вверх или вниз, как требуется для запуска модуля ESP8266 в нормальном рабочем режиме. Это означает, что, как правило, вы не можете просто подключить внешний переключатель к этим контактам, потому что при включении питания вы обычно не можете гарантировать, что переключатель не будет подтягивать вход к земле и, таким образом, помешать правильному запуску модуля.
Хитрость заключается в том, чтобы не подключать внешний переключатель напрямую от GPIO0 или GPIO2 к GND, а подключить его вместо этого к другому выводу GPIO, который заземлен (как выход) только после запуска ESP8266. Помните, что при использовании в качестве выходов контакты GPIO обеспечивают соединение с очень низким сопротивлением либо с VCC, либо с GND, в зависимости от того, находятся ли они в ВЫСОКОМ или НИЗКОМ состоянии.
Здесь будут рассматриваться только GPIO0 и GPIO2. Используя этот метод, вы можете получить один (1) дополнительный вход, используя эти два (2) GPIO.
Аналогичный метод можно использовать для GPIO15, используя другой вывод GPIO для подключения его переключателя к + VCC, но это не дает дополнительного входа, вы также можете просто использовать другой вывод GPIO непосредственно в качестве входа.
В приведенной выше схеме в качестве примера используется модуль ESP8266-01. Без использования этого трюка ESP8266-01 не имеет свободных контактов для использования в качестве входа, если вы уже используете контакты RX / TX для соединения UART.
Поскольку метод setup () скетча запускается только после запуска модуля ESP8266, можно безопасно сделать выход GPIO0 НИЗКИМ, и таким образом обеспечить заземление для S1, подключенного к GPIO2. Затем вы можете использовать digitalRead (2) в другом месте вашего скетча, чтобы прочитать настройку переключателя.
Заключение
В этой короткой заметке показано, как использовать GPIO0, GPIO2 и GPIO15 в качестве выходов и как использовать дополнительный вход, используя GPIO0 и GPIO2 вместе.
Рекомендуемые:
4-значный 7-сегментный дисплей 14 контактов с Arduino: 3 шага
4-значный 7-сегментный дисплей 14 контактов с Arduino: всегда полезно проверить, работает ли устройство должным образом или нет, если этот компонент имеет очень большое количество контактов. В этом проекте я протестировал свой 4-значный 7-сегментный 14-контактный дисплей. Все 7 сегментов будут отображать от 0 до 9 одновременно
Передача контактов с помощью Bluetooth: 3 шага
Передача контактов с помощью Bluetooth: Bluetooth надежен и избавляет вас от необходимости искать подходящий кабель и фирменное программное обеспечение. Записи телефонной книги будут перенесены в формате vCard или * .vcf. Для управления записями vCard обычно есть функция «Импорт»
Как уменьшить количество контактов с таймером, чтобы мыть руки # Covid-19: 3 шага
Как уменьшить количество контактов с таймером, чтобы мыть руки # Covid-19: Привет! Из этого туториала Вы узнаете, как сделать таймер менее контактным. действительно, в этот период эпидемии коронавируса действительно важно хорошо мыть руки. Вот почему я создал этот таймер. Для этого таймера я использовал ЖК-дисплей Nokia 5110
Управление несколькими светодиодами с помощью Python и контактов GPIO вашего Raspberry Pi: 4 шага (с изображениями)
Управление несколькими светодиодами с помощью Python и контактов GPIO вашего Raspberry Pi: в этом руководстве показано, как управлять несколькими контактами GPIO на вашем RaspberryPi для питания 4 светодиодов. Он также познакомит вас с параметрами и условными операторами в Python. Наше предыдущее руководство по использованию контактов GPIO вашего Raspberry Pi для Con
Использование 4 контактов ESP8266-01: 3 шага
Использование 4 контактов ESP8266-01: Примечание: этот проект в основном является расширением более ранней инструкции, в которой использовалось только 2 контакта. Ограниченное количество (4) контактов GPIO на ESP8266-01 может показаться препятствием для любого серьезное применение. Тем не менее, если использовать контакты с умом, это