Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

GPIO 0..16

Тема в разделе "ESP8266 Arduino IDE", создана пользователем shuraf, 14 июн 2016.

  1. shuraf

    shuraf Читатель

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

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

    Сообщения:
    982
    Симпатии:
    151
    В документации написано так: Цифровые контакты 6-11 используются для подключения флэш -памяти чипа на большинстве модулей. Попытка использовать эти контакты, вероятно, приведет к краху программы.
    Хотя использовать GPIO9 и GPIO10 можно.
     
  3. nikolz

    nikolz Гуру

    Сообщения:
    4.746
    Симпатии:
    452
    Не знаю где Вы читали, но если возьмете схему чипа ESP8266EX
    то увидите, что GPIO и Pin это две большие разницы.
    Есть лишь GPIO 0,1,2,3,4,5,12,13,14,15,16. GPIO c 6 по 11 нет у чипа снаружи. может быть внутри, но тогда надо чип пилить.
     
  4. tretyakov_sa

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

    Сообщения:
    982
    Симпатии:
    151
    Если пользоваться ESP-1 bkb ESP-7, Вы как всегда правы!
    Но ESP-12 имеет эти самые GPIO:
    [​IMG]
    Нижний ряд - они и есть.
    Написано это: 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
     
  5. nikolz

    nikolz Гуру

    Сообщения:
    4.746
    Симпатии:
    452
    Вы не точны ESP12 не имеет нижнего ряда его имеет ESP12-F(смотрите внимательно)
     
  6. nikolz

    nikolz Гуру

    Сообщения:
    4.746
    Симпатии:
    452
    и еще я Вам указал nodemcu, которая сделана на ESP12, и сам чип , причем здесь ESP1 и 7
     
  7. tretyakov_sa

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

    Сообщения:
    982
    Симпатии:
    151
    Человек спрашивал:
    Значит знает, где они и на каких платах.
     
  8. sarmathus

    sarmathus Новичок

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

    shuraf Читатель

    Сообщения:
    132
    Симпатии:
    6
    Еще их выведенными наружу имеют ESP-12Q

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

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

    shuraf Читатель

    Сообщения:
    132
    Симпатии:
    6
    Вот жеж извращенцы неугомонные :D
    При катострафической нехватке входов слейвом подключу ардуинку мини.
     
  11. Leon010203

    Leon010203 Новичок

    Сообщения:
    6
    Симпатии:
    1
    Единственное где я видел их использование - подключение к raspberry pi как wifi адаптор
     
  12. Atom

    Atom Читатель

    Сообщения:
    108
    Симпатии:
    7
    Не обязательно Ардуино Мини. Можно обычный ATTiny2316 посадить - при его цене в 50 пенсов расходы намного дешевле ардурины мини. можно извратиться и на 74**595. Решений куча.
     
  13. guinpin

    guinpin Новичок

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

    A.V Новичок

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

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

    guinpin Новичок

    Сообщения:
    15
    Симпатии:
    0
    Бить себя пяткой в грудь не буду, но если использовать для управления релюшкой, например, и небольшая задержка не критична, можно воткнуть между ногой и землей конденсатор подходящей емкости. Хотя, конечно, граблей в таком решении слишком дофига.

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

    A.V Новичок

    Сообщения:
    24
    Симпатии:
    1
    Не надо пяткой – вывих будет ;) Когда выяснилось, что оно так себя ведёт, пробовал варианты - там не только дрыганье ногой (довольно длинное к тому ж), но и что-то похожее при программировании. Хлопотно. В общем, на той плате, что без 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)
     
  17. Mоnk

    Mоnk Читатель

    Сообщения:
    130
    Симпатии:
    8
    Как-то так...
    /*
    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 Зуммер
    */
    И все фунцЫклирует.
     
  18. Fireforce

    Fireforce Новичок

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

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

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

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

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

    Вложения:

    • connection.PNG
      connection.PNG
      Размер файла:
      387,7 КБ
      Просмотров:
      86
    Последнее редактирование: 10 сен 2017
    Wormer нравится это.

Поделиться этой страницей