Взаимоисключающие фиксирующие кнопки мгновенного действия

Вот схема, которая реализует расположение переключателей.

введите описание изображения здесь

Все переключатели активируют часы.

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

Два других переключателя включают выход.

Если ни один из этих выходов не включен, логический элемент DTL NOR создает высокий логический уровень, указывающий, что ни один из них не переключается, если он «включен».

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

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

Я не хочу этого.

Мне приходит в голову, что переключатель сброса МОЖЕТ быть сделан избыточным. Что мне действительно нужно, так это чтобы каждый переключатель включался и выключался сам по себе, а ЕСЛИ он переключается на высокий уровень, чтобы отключить другой переключатель.

ie. (truth table)
S1 S2 S1_CURR S2_CURR S1_NEW S2_NEW
1  0  0       0       1      0
1  0  1       0       0      0
0  1  0       0       0      1
0  1  0       1       0      0
1  0  0       1       1      0
0  1  1       0       0      1
etc.

KEY
S? = status of switch 1 (1 = closed, 0 = open)
S?_CURR = status of current latch output for the given switch (1=high, 0=low)
S?_NEW = the result of the switch press

Я мог бы иметь один из них на каждой кнопке:

введите описание изображения здесь

Но как мне связать два из них вместе в расположении переключателей (взаимоисключающих).

Я думал о каком-то механизме XOR, но у него есть проблемы.

Я думаю, что это может быть довольно стандартным требованием, и кто-то может знать решение?

Большое спасибо всем, кто не поленился прочитать это!

что такое "расположение радиокнопок"?
Схема радиокнопки имеет группу (обычно SPST) кнопок мгновенного действия, каждая из которых имеет защелкивающийся выход. Нажатие любой кнопки устанавливает ее выход и очищает все остальные выходы. Название происходит от механического кнопочного механизма выбора станции в автомобильном радиоприемнике.

Ответы (2)

Функция альтернативного действия не является частью стандартной схемы радиокнопки.

Если активных кнопок всего две, то это можно сделать двойным D-триггером, например CD4013. Каждая половина подключена как тумблер ff, и выход Q каждой секции дифференцируется на вход Reset другой секции.

РЕДАКТИРОВАТЬ: Первый проход по схеме. R1-C1 устраняет дребезг на входе переключателя, сохраняя при этом быстрый фронт сигнала на входе тактового сигнала. R2-C2 дифференцирует выход Q и подает импульс на вход сброса другой схемы, когда выход Q становится высоким. Вы можете настроить значения компонентов для вашего поведения переключателя, инвентаря и т. д.

Спасибо Crutschow из AAC за трюк с подавлением дребезга при переключении.

введите описание изображения здесь

Расширенное объяснение:

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

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

Переключатели подпрыгивают; то есть контакты переключателя не соединяются чисто. Они отскакивают друг от друга, а затем снова сходятся под действием силы пружины. Когда вы нажимаете кнопку, тактовый вход может видеть десятки фронтов сигнала за несколько миллисекунд. Без обработки это хороший генератор случайных чисел. R1-C1 — это фильтр нижних частот, который предотвращает изменение входа D так быстро, как дребезжит тактовый вход. Первый положительный фронт синхронизирует текущее значение добротности с ff. это приводит к тому, что Q- переходит в другое состояние, но вход D не отслеживает это в течение примерно 16 миллисекунд, что примерно в 0,7 раза превышает постоянную времени RC. Если контакты переключателя все еще дребезжат после этого времени, вы получите спорадическое действие цепи; увеличьте R1 или C1, чтобы получить более длительный период устранения дребезга.

При любом другом нажатии переключателя выход Q становится высоким. C2-R2 образуют фильтр верхних частот, который работает как дифференциатор. Когда Q переходит от 0 В к Vcc (-иш), этот высокий уровень немедленно появляется на выводе 10, входе сброса другой схемы, немедленно сбрасывая U1B. Q будет оставаться на высоком уровне до следующего нажатия кнопки, и поэтому конец C2 будет подключен непосредственно к нему. Но R2 начинает заряжать C2, подтягивая другой конец к GND. Через (0,7 x R2 x C2) секунд напряжение на контакте 10 падает ниже уровня перехода входа, освобождая вход сброса, чтобы схема могла принимать входы от SW2. Ширина импульса сброса составляет прибл. 1,6 мс.

Примечание: в сх отсутствует развязывающий конденсатор для микросхемы. Используйте другой конденсатор 0,22 мкФ, подключенный непосредственно к контактам 7 и 14.

это звучит как решение... Я попробую.
Спасибо .. Я проверил это в LTSpice, и это прекрасно. Признаюсь, я не совсем понимаю, как это работает.
Я добавил расширенное объяснение схемы.
Вы сделали все возможное. Я бы наградил вас за это наградой, но не знаю как. Конечная печатная плата будет иметь много сглаживания мощности, а чип будет иметь танталовый колпачок. Это здорово для меня, это освобождает много места, потому что переключатели представляют собой ножные переключатели мгновенного действия, установленные заподлицо на печатной плате, и имеют ОГРОМНЫЙ внутренний двор. Потеря целого переключателя означает, что я могу с комфортом разместить все, не используя обратную сторону платы, что, очевидно, также сэкономит мне деньги.
Рад, что это работает для вас. ПРИМЕЧАНИЕ. Приведенная выше функция альтернативного действия и отдельный переключатель сброса, с которого вы начали, — это не одно и то же. Вышеприведенная схема переходит в состояние «сброса» (нет высоких выходов) только в том случае, если вы нажмете правильный переключатель, когда один из выходов высокий. Настоящий переключатель сброса очищает все выходы, не зная, какой из них имеет высокий уровень.
Да, мне не нужен «настоящий» сброс.. это именно то, что требуется.

Я думаю, что это может быть довольно стандартным требованием, и кто-то может знать решение?

Я не знаю, является ли эта конкретная проблема «довольно стандартной» (звучит для меня очень специфично), но общий класс проблем очень распространен:

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

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

Особенно для Н > 2 , вы практически всегда реализуете это с самым дешевым микроконтроллером, который вы можете найти.

Обычно это дешевле, чем покупка достаточного количества логических элементов для реализации машины Мура или машины Мили . И никому не нужно рассуждать о том, почему какая-то сложная схема логических вентилей не работает, как планировалось, если вместо этого они могут написать 5 строк кода для определения конечного автомата в программном обеспечении.

В вашем профиле вообще не указано, программировали ли вы раньше, но не бойтесь: программное обеспечение несложно, а микроконтроллер действительно требует небольших усилий, чтобы заставить его работать. Blue Pill / Android может стать хорошей платформой для начала.