• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Помогите понять принцип ESPшки. Может я вообще не туда полез?

rst

Member
Гарантированно делает стандартный UART - отслеживает до 3-х точек в импульсе длительностью в один бит (baud), а если длительность активного уровня большая (больше символа со старт/стопами/parity) - выдает специальное прерывание об этом событии.
Боюсь UART-ом опрашивать кнопки не получится. Если предположить, что максимальное время дребезга кнопки ==20мс, и тогда принять, что минимальная обнаруживаемая длительность нажатия ==30мс, то чтобы запрограммировать UART для опроса с подавлением дребезга таких кнопок, его нужно программировать на baudrate== 1/(.01*16) = 6.25 бод. Думаю в большинстве МК делителя UART-а не хватит. :)
Да и при стандартных настройках UART == 8-N-1 придётся после нажатия кнопки ждать 1.6 сек перед тем как другую кнопу можно будет нажать. :cool:
 

pvvx

Активный участник сообщества
Чтобы обслужить кнопку в ESP8266 надо настроить прерывание по фронту, в нем запустить софт- таймер, в софт-таймере подтвердить состояние вывода и послать запрос в очередь на выполнение “таска”, отрабатывающего кнопку.
Прерывание по фронту должно отключаться по первому фронту, а взводиться уже где-то за отработкой таймера, в зависимости от требуемых условий обработки этой кнопки. Т.е. есть варианты, но всё равно вокруг да около. Cделать это в Arduino, не используя спец. либ или включений из SDK достаточно сложно для начинающих. Они быстрее припаяют БОЛЬШОЙ кондер к кнопке и полингом будут опрашивать GPIO, как и всё в Arduino и это никто не изменит :)
И причина там в том, что ESP8266 имеет дрова WiFi иногда запрещающие любые прерывания на время к 1 сек и более, когда в логе проходят всякие китай-цифры переключения режимов, смены ключа WPA в драйвере и т.д... Это сведет на нет все ваши желания получить реакцию системы менее чем в 1 секунду.

У кнопки для ESP8266 будет инструкция – если идет поиск AP, то кнопка не работает; если deep_sleep – не работает; если идет штатная для соединения смена ключа шифрования у AP или прочие прелести WiFi – кнопка не работает; если идет обработка какого-то другого устройства, типа вывода в светодиодную ленту, то кнопка не работает…
 
Последнее редактирование:

kab

New member
А предыдущее предложение читать не пробовали? И разницу между "обычно", "как правило" и "гарантированно" тоже не понимаете?
Обычно 50Гц - означает, что я обычно использовал данную частоту опроса и в своей практике не встречал кнопок с бОльшим временем дребезга. Но я не знаю за все возможные существующие в природе кнопки.
Если некорректно использовал приведенные Вами данные - извините. Цитаты и данные из Ваших сообщений постараюсь больше не использовать.
ЗЫ. Хотя так и не понял - в чем я виноват в этом случае.
ЗЗЫ. Все остальные замечания других участников - принимаю тоже. Если кого в пылу полемики обидел - извините.
ЗЗЗЫ. А @=AK= заметил точно, поболтать и попридираться к всякой ерунде я люблю. Но у всех же свои слабости... Простите, если что.
 

pvvx

Активный участник сообщества
@kab - ESP8266 это игрушка и каждый играет с ней как хочет. Но некоторые мнят, что из неё можно сделать что-то серьезное... :)
Пример кнопки с большим, чем дцать 50Гц отсчетов дребезга находится в дешевых счетчиках воды...
Длительность "нажатия", в зависимости от механики, предельных протоков, скорости текущего потока у них варьируются от 0.7 секунд до десятков секунд... С магнитными датчиками получше - меньше "дребезг", но могут быть наводки той-же 50 Гц на фронте...
 
Последнее редактирование:

AndrF

Active member
@kab - ESP8266 это игрушка и каждый играет с ней как хочет. Но некоторые мнят, что из неё можно сделать что-то серьезное... :)
Пример кнопки с большим, чем дцать 50Гц отсчетов дребезга находится в дешевых счетчиках воды...
Все там можно сделать - не пойму проблемы. Я, правда не дребезг кнопок устранял, а скорость работы движка вычислял - по тому сколько волн пропускает управляющий симмистор - разница совсем не столь уж и большая. Энкодерами займусь, ориентировочно, где-то через одну-две недели, но каких либо сложностей по ним пока не вижу...
 

pvvx

Активный участник сообщества
Энкодерами займусь, ориентировочно, где-то через одну-две недели, но каких либо сложностей по ним пока не вижу...
Там одна сложность - дешевые китайские сохнут через год два и там один "дребезг", а не сигналы...
Насчет сложностей куда пристроить ESP8266 я тоже не вижу – можно на елку повесить, на Новый Год :) “Работать” же будет, на модуле блестящая крышка...
 
Последнее редактирование:
Сверху Снизу