• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

GPIO 0..16

shuraf

Member
Как можно задействовать GPIO6..11?
В инструкциях написано, что эти пины вроде как используются для общения с картой памятью. Но так же есть ссылки на использование этих пинов с другими функциями.
Сможем мы использовать эти пины?
А то как то маловато , 0, 2, 15, 16 уже заняты ...
 

tretyakov_sa

Moderator
Команда форума
Как можно задействовать GPIO6..11?
В инструкциях написано, что эти пины вроде как используются для общения с картой памятью. Но так же есть ссылки на использование этих пинов с другими функциями.
Сможем мы использовать эти пины?
А то как то маловато , 0, 2, 15, 16 уже заняты ...
В документации написано так: Цифровые контакты 6-11 используются для подключения флэш -памяти чипа на большинстве модулей. Попытка использовать эти контакты, вероятно, приведет к краху программы.
Хотя использовать GPIO9 и GPIO10 можно.
 

nikolz

Well-known member
В документации написано так: Цифровые контакты 6-11 используются для подключения флэш -памяти чипа на большинстве модулей. Попытка использовать эти контакты, вероятно, приведет к краху программы.
Хотя использовать GPIO9 и GPIO10 можно.
Не знаю где Вы читали, но если возьмете схему чипа ESP8266EX
то увидите, что GPIO и Pin это две большие разницы.
Есть лишь GPIO 0,1,2,3,4,5,12,13,14,15,16. GPIO c 6 по 11 нет у чипа снаружи. может быть внутри, но тогда надо чип пилить.
 

tretyakov_sa

Moderator
Команда форума
Не знаю где Вы читали, но если возьмете схему чипа ESP8266EX
то увидите, что GPIO и Pin это две большие разницы.
Есть лишь GPIO 0,1,2,3,4,5,12,13,14,15,16. GPIO c 6 по 11 нет у чипа снаружи. может быть внутри, но тогда надо чип пилить.
Если пользоваться ESP-1 bkb ESP-7, Вы как всегда правы!
Но ESP-12 имеет эти самые GPIO:

Нижний ряд - они и есть.
Написано это: Digital pins 6—11 are not shown on this diagram because they are used to connect flash memory chip on most modules. Trying to use these pins as IOs will likely cause the program to crash.
На вот этой странице: Arduino/reference.md at master · esp8266/Arduino · GitHub
 

nikolz

Well-known member
Если пользоваться ESP-1 bkb ESP-7, Вы как всегда правы!
Но ESP-12 имеет эти самые GPIO:

Нижний ряд - они и есть.
Написано это: Digital pins 6—11 are not shown on thBis diagram because they are used to connect flash memory chip on most modules. Trying to use these pins as IOs will likely cause the program to crash.
На вот этой странице: Arduino/reference.md at master · esp8266/Arduino · GitHub
Вы не точны ESP12 не имеет нижнего ряда его имеет ESP12-F(смотрите внимательно)
 

nikolz

Well-known member
и еще я Вам указал nodemcu, которая сделана на ESP12, и сам чип , причем здесь ESP1 и 7
 

tretyakov_sa

Moderator
Команда форума

sarmathus

New member
Вот здесь: ESP8266 ESP-201 module - freeing up GPIO9 and GPIO10 | smarpl.com
описывается, как даунгрейдить флеш с четырехканального SPI до двухканального, уменьшив скорость обмена с флешем в 2 раза, но освободив GPIO9 и GPIO10. Нужен фен, пяльник и модификация прошивки.
 
Последнее редактирование:

shuraf

Member
Вы не точны ESP12 не имеет нижнего ряда его имеет ESP12-F(смотрите внимательно)
Еще их выведенными наружу имеют ESP-12Q

* Не удалось подергать GPIO16 командой digitalWrite(16, LOW). Модуль ушел в циклический ребут.
Но сработало digitalWrite(16, false)

Придется довольствоваться малым SHT10+BMP280+MH-Z19+DS18B20 = 5 пинов из 6 + rx_tx
 

shuraf

Member
Вот здесь: ESP8266 ESP-201 module - freeing up GPIO9 and GPIO10 | smarpl.com
описывается, как даунгрейдить флеш с четырехканального SPI до двухканального, уменьшив скорость обмена м флешем в 2 раза, но освободив GPIO9 и GPIO10. Нужен фен, пяльник и модификация прошивки.
Вот жеж извращенцы неугомонные :D
При катострафической нехватке входов слейвом подключу ардуинку мини.
 

Leon010203

New member
Единственное где я видел их использование - подключение к raspberry pi как wifi адаптор
 

Atom

Member
Вот жеж извращенцы неугомонные :D
При катострафической нехватке входов слейвом подключу ардуинку мини.
Не обязательно Ардуино Мини. Можно обычный ATTiny2316 посадить - при его цене в 50 пенсов расходы намного дешевле ардурины мини. можно извратиться и на 74**595. Решений куча.
 

guinpin

New member
А куда у вас заняты пины 0 и 2? У меня на них релюшки щелкают, например. Подтягиваете к питанию через 10К, а для прошивки 0 перемычкой на землю.
16 занят только если вам нужен дипслип. Я не гуру по ESP8266, может еще для чего его можно использовать.
Так что, целых три пина доступны.
Кстати, как раз три пина требуется для управления сдвиговым регистром. Так что, если нужны обычные цифровые выходы, таким макаром их можно наплодить сколько угодно ;)
PS: Посмотрел 15 пин - он тоже нужен только при старте. Притягиваете на землю через 10К и потом можно использовать как выход.
В общем, можно использовать пины и как входы, если есть гарантия, что на них не будет подаваться сигнал во время старта.
 
Последнее редактирование:

A.V

New member
16 занят только если вам нужен дипслип.
С 16-м не всё так красиво. Сделал было его на своей плате на управление выходом, а он дрыгается при перезагрузке. Погуглив, нашёл, что я не один такой. Хорошо, это был запасной вариант, а основной через DS2406...

Итого на ESP07/12F имеем NRF24L01 /5 ног/, I2C/2 ноги/, 1Wire /1 нога/ и, опционально, GPIO вход/выход + ADC
 

guinpin

New member
С 16-м не всё так красиво. Сделал было его на своей плате на управление выходом, а он дрыгается при перезагрузке. Погуглив, нашёл, что я не один такой.
Бить себя пяткой в грудь не буду, но если использовать для управления релюшкой, например, и небольшая задержка не критична, можно воткнуть между ногой и землей конденсатор подходящей емкости. Хотя, конечно, граблей в таком решении слишком дофига.

Через DS2406 вы действительно удаленно рулите устройством или это локальный "расширитель пинов"? Если локальный, чем оно лучше, например 74HC595?
 

A.V

New member
Бить себя пяткой в грудь не буду,
...
Через DS2406 вы действительно удаленно рулите устройством или это локальный "расширитель пинов"? Если локальный, чем оно лучше, например 74HC595?
Не надо пяткой – вывих будет ;) Когда выяснилось, что оно так себя ведёт, пробовал варианты - там не только дрыганье ногой (довольно длинное к тому ж), но и что-то похожее при программировании. Хлопотно. В общем, на той плате, что без 2406 (тупо розетка-таймер с 16х4 LCD для освещения цветов - по-быстрому, на замену сгоревшей), перекинул провода с какого-то свободного пина и успокоился.

DS2406 на плате как расширитель, потому как в проекте есть ещё 1-wire, а ног не вагон )) Преимуществ перед 595/165 у него много, но он сильно дороже...
- На 595 надо делать хитрую подтяжку, иначе при включении выходы могут быть в любом состоянии
- по ощущениям от 595 на макетке - ловит все окрестные шумы и может включить что угодно "не то"
- DS может работать как на вход, так и на выход (у меня 2й канал как "GPIO" выведен)
- Надо 1 ногу, вместо 4х пинов для 595 (да, даже не 3, а 4 - ибо надо ещё и про-инитить 595го корректно)
- у DS выход "защелкивается" и, вроде как, "вспоминает" своё состояние после сброса питания – но тут уж точно – на любителя ))

Плата делалась с претензией на универсальность, посему ноги задействованы довольно плотно (esp8266 / sensor-v3 — Bitbucket)
 

Mоnk

Member
Как-то так...
/*
GPIO0 SCL_pin
GPIO1 DS18B20_pin
GPIO2 SDA_pin
GPIO3 Rotary Encoder button
GPIO4 Rotary Encoder
GPIO5 Rotary Encoder
GPIO12 Свет
GPIO13 Вентиляция
GPIO14 DHT_pin
GPIO15 Нагреватель
GPIO16 Зуммер
*/
И все фунцЫклирует.
 

Fireforce

New member
У меня 2 абсолютно одинаковые платы LoLin NodeMcu v3. Покупал у разных продавцов.

В Arduino IDE выбираю простой пример мигания светодиодом и конфигурирую GPIO10,
- он же контакт SD3 на плате к которому подключен светодиод.
Код:
pinMode(10, OUTPUT);
Беру 1-ю плату и заливаю в нее скетч. Ничего не происходит, светодиод просто светится. На 2-й плате так же.

В скетче меняю
Код:
pinMode(9, OUTPUT);
т.е выход напряжения должен появится на GPIO9 - контакт SD2. Физически светодиод оставляю на прежнем месте, - подключенным к контакту SD3 (GPIO10).
Заливаю код в 1-ю плату, светодиод потух и дальше не происходит никаких действий.
Заливаю этот же код во 2-ю плату, - программа заработала, весело подмигивая светодиодом.

Собрал я монитор качества воздуха. Изготовил печатную плату, установил на места все детали, а время на экран не выводится. Уже и программу проверил и модуль, а часы реального времени никак не могут связаться с программой в контроллере по GPIO10.
Правда автор проекта применил схожий контроллер, но от Amico. Я не придал этому особого значения и заказал схожий LoLin NodeMcu v3.
Долго я не мог понять в чем проблема. Потом начал звонить тестером ножки и оказалось что
11-я нога маленькой платы esp8266 с антенной - (GPIO9) физически соединена с ногой SD3 основной платы, хотя должна с SD2. Чтобы все заработало мне пришлось изменить строчку в
lua-скрипте.

В файле start.lua строку:
Код:
local ds=dofile('ds3231.lua')(12,6)
исправил:
Код:
local ds=dofile('ds3231.lua')(11,6)
Печатную плату монитора качества воздуха не менял, - дорожка с SDA модуля ds3231 как шла на D12 контроллера, так и осталась.
 

Вложения

Последнее редактирование:

Oleg_M

New member
Как-то так...
/*
GPIO0 SCL_pin
GPIO1 DS18B20_pin
GPIO2 SDA_pin
GPIO3 Rotary Encoder button
GPIO4 Rotary Encoder
GPIO5 Rotary Encoder
GPIO12 Свет
GPIO13 Вентиляция
GPIO14 DHT_pin
GPIO15 Нагреватель
GPIO16 Зуммер
*/
И все фунцЫклирует.
А есть какая-то "хитрость" с использованием GPIO1, GPIO3 ?
у меня на GPIO1 DS18B20 не работает, хотя на нескольких других пинах все нормально. и еще по поводу GPIO16 - что реально на него можно вешать? ставил на него активный busser - при заливке скетча и перезагрузке пищит зараза,
(в это время на нем высокий уровень), при использовании millis() вместо delay() циклически перезагружает процессор...
 

ask1

Member
у меня на GPIO1 DS18B20 не работает
Если вдруг еще актуально. Для DS18B20 нужен резистор, и на платах с ESP8266 резистор есть на GPIO0, то есть DS18B20 будет работать с ним, но не с другими. Может вы забыли про резистор? На GPIO2 вроде тоже есть
 
Сверху Снизу