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

Галетный переключатель

Здравствуйте. 😀

Мне нужно с помощью МК определять замкнутый контакт галетника. Решил применить микросхему-шифратор. Набросал схемку, спаял. Если что - резистивные делители и инверторы нужны для согласования, т.к. с галетника в моем случае приходит +12В, а активный вход 555ИВ3 выбирается нулем.

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

Что скажут уважаемые профессионалы? Я правильно думаю? 

 

 

CropImage.png

Изменено пользователем Evgeny

Поделиться сообщением


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

39 минут назад, Evgeny сказал:

Мне нужно с помощью МК определять замкнутый контакт галетника.

Все неподвижные контакты галетника соединяете между собой последовательно, по кругу, резисторами одного и того же номинала. Два крайних контакта подключаете к земле и питанию МК соответственно. Получаете переключаемый резистивный делитель напряжения. Центральный (скользящий) контакт галетника подключаете напрямую ко входу АЦП МК. Для надежности переключения нужно поставить небольшой конденсатор между входом АЦП и землей МК - примерно 1 нф.

 

Поделиться сообщением


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

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

Поделиться сообщением


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

2 минуты назад, Evgeny сказал:

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

Стоимость вашего удобства, в виде кучи лишних деталей в схеме, Вас не смущает? :smile:

Поделиться сообщением


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

Нет, полностью устраивает. Всего-то три копеечных микры и несколько квадратных см тектолита.

Поделиться сообщением


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

15 минут назад, Evgeny сказал:

Нет, полностью устраивает. Всего-то три копеечных микры и несколько квадратных см тектолита.

Если изделие штучное (несерийное), то нет смысла тратиться на переделку...

Но, вообще-то, это называется "из пушки по воробьям". :smile:

Поделиться сообщением


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

1 минуту назад, quark сказал:

Если изделие штучное (несерийное), то нет смысла тратиться на переделку...

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

Поделиться сообщением


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

1 час назад, Evgeny сказал:

На первый дилетантский взгляд, мне кажется, что не нужно, т.к. дребезг уже фильтруется проверкой на 0x0F, а по-другому он здесь не проявляется.

Хорошие галетники не дребезжат, у них конструкция не позволяет, а плохие  - могут. Можно поставить конденсатор по 100пФ что бы помеха не лезла.

Лучше проверить - просто прицепить ваши резисторы к галетнику, пощелкать и посмотреть на осциллограмму.

Поделиться сообщением


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

Хм, только сейчас меня посетила мысль, что нужно использовать инверторы 74HC14. По цоколовке они такие же, а на входе есть триггер Шмитта. Это здорово должно помочь.

Поделиться сообщением


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

15 hours ago, Evgeny said:

Но у меня сомнения - а не нужно ли здесь применять еще и софтовое подавление дребезга?

Если у вас период таймера больше, чем возможное время дребезга (где то до 30ms в среднем), то не нужно

15 hours ago, Evgeny said:

мне кажется, что не нужно, т.к. дребезг уже фильтруется проверкой на 0x0F, а по-другому он здесь не проявляется.

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

 

Поделиться сообщением


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

8 часов назад, Evgeny сказал:

Хм, только сейчас меня посетила мысль, что нужно использовать инверторы 74HC14. По цоколовке они такие же, а на входе есть триггер Шмитта. Это здорово должно помочь.

Немного поможет, но получится прямоугольный  дребезг от нуля до плюса)

Лучше вообще поставить триггеры и завести на них сборс с контроллера.

Поделиться сообщением


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

On 3/29/2023 at 3:02 PM, HardEgor said:

Лучше вообще поставить триггеры и завести на них сборс с контроллера.

И превратить схему в схему на дискретной логике, где микроконтроллер будет исключительно для украшения :biggrin:

Поделиться сообщением


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

8 минут назад, dimka76 сказал:

И превратить схему в схему на дискретной логике, где микроконтроллер будет исключительно для украшения :biggrin:

Tx/Rx, т.е. передачу данных без микроконтроллера сложновато делать)

Поделиться сообщением


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

IMHO входные буфера тут лишние, достаточно одного приоритетного шифратора. Разве что галетник далеко от прибора расположен но и там можно программно антидребез обработать.

Поделиться сообщением


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

По опыту галетники не дребезжат, в принципе достаточно через 10 мс считывать до получения двух (n) последних одинаковых значений, что и считать истиной.

Код простой и надежный.

Кстати для галетников бывает нужно чтобы программа отработала все промежуточные состояния, при очень быстром перещелкивании, это можно легко сделать. Для обработки нужно использовать знание, что  достигнуть значения 5 из 1 можно только пройдя 2 3 и 4. Мне в одном устройстве понадобился такой приём. Не используя его, не всегда все значения приходили.

Поделиться сообщением


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

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

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

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

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

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

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

×
×
  • Создать...