Перейти к содержанию

Логика на вход МК с обработкой дзебезга


hanymi

Рекомендуемые сообщения

Из-за нехватки портов I/O на аврке решил поэкспериментировать с обработкой входных сигналов с датчиков на простой логике и вывести результат на 1 ногу МК.

Практическая задача, емкость с водой, имеет 3 датчика уровня (кондуктивные).

Воду наливаем в емкость до заполнения, следовательно таблица выглядит так:

a    b    c    |    d
-----------------
0    0    0        1
1    0    0        1
1    1    0        1
1    1    1        0
0    0    1        0
0    1    1        0
1    0    1        0
0    1    0        0

а,б,с - датчики уровней, д  - выход.

все что ниже 4й колонки собственно быть не может, по этому 0.

Подскажите с практической реализацией, особенно актуальна проблема обработки в этом случае дребезга от датчиков, вроде как бывает логика с триггером шмитта, которую можно для этого использовать.

(вернее уточню выходы датчиков идут через реле и именно от реле дребезг надо устранить)

 

Изменено пользователем hanymi
Ссылка на комментарий
Поделиться на другие сайты

Согласно вашей таблице применять дополнительную логику нет нужды. Достаточно соединить все контакты последовательно и посадить на одну ногу МК.
Можно, конечно и элемент 3И-НЕ использовать.

Дребезг в такой относительно медленной системе элементарно давится программно - многократные опросы порта с паузами.

"Я не знаю какой там коэффициент, я просто паять умею. "

Ссылка на комментарий
Поделиться на другие сайты

спасибо, и правда, последовательно получается та же логика =)

только я тут немного затупил и первоначальная схема уже не подходит.

суть в чем, надо между средним и верхний уровнем еще организовать переключение состояний, иначе будут непроизвольные срабатывания в верхней зоне при одновременном потреблении воды из бака и наполнением емкости.

Видится это так:

1 0 0 - 1

1 0 0 - 1

1 1 0 - 1

1 1 1 - 0

1 1 0 - 0

1 0 0 - 1

и т.д.

Все же как на логике это можно организовать, может есть какие то примеры поизучать?

или хотя бы в какую сторону копать.

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

14 минуты назад, hanymi сказал:

1 0 0 - 1

1 1 0 - 1

1 1 1 - 0

Опять та же самая логика последовательного включения датчиков. А вообще, зачем какая-то логика, если уже стоит МК? Вообще все можно подключить к входу АЦП:

5b.gif

Ссылка на комментарий
Поделиться на другие сайты

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Тоже самое хотел предложить сразу. Обработку всех коллизий возложить на МК.

В таблице, кстати противоречие, 3-5 строка.

"Я не знаю какой там коэффициент, я просто паять умею. "

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

да я понял про резистивный делитель и АЦП уже из 1 ответа, 3 и 5 строка это не противоречие. это как бы реверс, на практике, набрал ты бак воды до верху (111), и тут пошел расход воды (110), включается насос, что будет если расход примерно равен накачке? или +- гуляет, будет насос включаться и отключаться достаточно часто, что не есть хорошо.

по части програмной реализации тут все понятно но я не уверен что моей квалификации хватит, чтобы этот код загнать в тиньку13 в добавок к уже имеющемуся. я думал если решение такое найдется то проще было бы аппаратно этот момент устранить.

Изменено пользователем hanymi
Ссылка на комментарий
Поделиться на другие сайты

Возвращаюсь к своим помидорам, стало интересно это реализовать на простой логике, благо банка всяких логических микросхем имеется и не хочется на эту операцию тратить ресурсы МК.

Вот накидал тут в протеусе приблизительную схему, и там все как надо работает.

Кнопки эмулируют работу датчиков уровня, RS-триггер запоминает состояние отключения насоса в верхнем положении и пока вода не дойдет до 2ого датчика насос не включается, 2й датчик сбрасывает триггер и опять идет набор воды до верху.

В принципе то, что я и хотел, только вот закавыка есть, не могу оптимизировать все это до минимум элементов, помогите пожалуйста.

logic.png

Ссылка на комментарий
Поделиться на другие сайты

Что-то сложно получилось. Можно, ведь, так, наверно:

Верхний датчик соединён со сбросом триггера через одиночный инвертор, при срабатывании сигнал после инвертора изменяется 1 -> 0. При достижения водой верхнего уровня - сброс триггера и остановка насоса.

Нижний датчик соединён с установкой триггера напрямую, при срабатывании выдаёт 0 -> 1. То есть, если уровень ниже, то выход = "0" и установка триггера с запуском насоса.

Получается такой режим работы:

1.Мало воды, нижний датчик = 0, верхний датчик+инвертор = "1", триггер = 1 и насос работает.

2.Уровень поднялся между датчиками, нижний датчик = 1, верхний датчик+инвертор = "1", триггер = 1 и насос работает.

3.Полный бак, нижний датчик = "1", верхний датчик+инвертор = "0", триггер = 0 и насос выключен.

4.Уровень опустился между датчиками, нижний датчик = 1, верхний датчик+инвертор = "1", триггер = 0 и насос выключен.

5. Переход на п.1

 

Изменено пользователем Yurkin2015
Ссылка на комментарий
Поделиться на другие сайты

судя по описанию тоже сложно =)

я просто опустил некоторые моменты, там еще индикация уровней есть, при чем датчиками рулит отдельное устройство, которое выдает через релюхи уровни. да и нижний датчик это уже критический уровень, надо лавировать между средним и верхним.

Я просто в логике этой не шарю совсем, только сегодня почитал немного инфы на этот счет, но по сути если оптимизировать, то мне кажется что все это сведется всего к паре микросхем, они же разные есть, с инверторами и всевозможными комбинациями и/или/не и т.д. и с триггерами шмитта на выходах уже, что дребезг по идеи устраняет автоматом. к тому же в проекте есть еще кнопка, 2й элемент от микры 7474 можно заюзать на аппаратный антидребезг для кнопки.

А так у меня пока получилось на 4х микрах, много конечно но на самом деле не критично к размерам, можно и так запилить =)

только для микросхем наверно обвес какой то нужен против помех всяких, надо проштудировать эту тему.

Ссылка на комментарий
Поделиться на другие сайты

Описание сложно, согласен.

Вот, может картинка прояснит. Здесь датчики SW2 - самый верхний,  SW1 - средний,  SW3 - самый нижний датчик.

В моём описании я упоминал два датчика: самый верхний и средний. Самый нижний не используется.

На дребезг - наплевать, эта схема нечувствительна в дребезгу.

cxem_nasos1.png

Изменено пользователем Yurkin2015
Ссылка на комментарий
Поделиться на другие сайты

Переделал на элемент 155ла3 и 1 инвертор, но нашел баг, если средний датчик по какой то причине откажет, то насос будет качать и переполнит емкость. Вот тут попытался устранить эту проблему, использовав еще 1 элемент микросхемы, при среднем уровне L и верхнем H на выходе U14:F выход будет H, в любых других состояниях L, но как прикрутить этот вывод в U7:B вывод 5, чтобы отключить насос чет как то ума не приложу.

222.png

Ссылка на комментарий
Поделиться на другие сайты

6 часов назад, hanymi сказал:

не хочется на эту операцию тратить ресурсы МК.

Какие тут ресурсы, какая операция ? Программный триггер - пару переменных и опрос входов в любое время (быстрая реакция никчему).
 

Ссылка на комментарий
Поделиться на другие сайты

U14:F присобачил на базу транзистора, который рулит выходом U7:B только так получилось багу устранить.

Ну уже аппаратно почти все сделано, вобще думаю что этот блок с насосом будет автономно работать, минус еще нога мк. что радует.

Ссылка на комментарий
Поделиться на другие сайты

Про базу транзистора непонятно - транзистор отсутствует на схеме.

Если заменить логику на "2ИЛИ-НЕ", то получится проще и "баги" не будет.

Вот, например, на К155ЛЕ1, если у Вас большие запасы древней ТТЛ-логики.

cxem_nasos2.png

Ссылка на комментарий
Поделиться на другие сайты

если верхний датчик выйдет из строя, то тут уже ничего не поделаешь, это уже за гранью возможностей. разве что сделать ограничение на время работы мотора. Вот тут сижу и думаю зачем мне вобще МК тогда в проекте =) 

там суть в чем, есть 2 емкости упраляются по такому же принципу, есть так же 2 датчика, это на входной трубе, датчик наличия воды, датчик давления. с помощью ATtiny13 или 2313 хотел рулить всем этим делом.  на насосах стоит пускатель, который запускается через симисторный ключ.

ну и кнопка еще есть, это автоматический режим работы, который разрешает работу наполнения емкостей.

если нет сигнала на датчике наличия в трубе воды а так же давления, то автоматический режим отключается.

но если в емкости А на нижнем датчике 0, то схема наполнения емкости Б ожидает пока будет на нижнем датчике колонны А единица.

короче емкость А это буферерная емкость, а Б это уже расходная.

пока что получается что 2 таких блока могут всем этим рулить, осталось только придумать схему задержки ну и можно наверно отказаться вобще от применения МК =) 

Ссылка на комментарий
Поделиться на другие сайты

Ну, если куча датчиков, кнопка, парочку моргающих индикаторов повесить да ещё время считать для безопасности, то лучше МК, конечно.

А, что, даже у 2313 портов не хватает? Сколько всего там портов?

Ссылка на комментарий
Поделиться на другие сайты

у 2313 хватает, у 13 не хватает, хотя если все датчики через резистивный делитель пустить, то надо всего 5 портов. 

индикаторы можно и так с платы продублировать, нет смысла их на мк вешать, кстати там по 1 элементу логики остается в каждой микре, а их можно вместе в RS-тригер соединить? или можно только соединять элементы 1 микросхемы? а то получается как раз еще 1 триггер надо, чтобы схему задержки сделать по уровню нижнего датчика на первой емкости. 

Ссылка на комментарий
Поделиться на другие сайты

ок, стало просто интересно уже добить все по максимум на простых элементах, глядишь для мк совсем операций не останется, разве что статистику какую нибудь вести =) или чета придумывать еще для дополнительного контроля.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...