Обсуждаем цифровые устройства...
Ответить

Re: Нужна идея реализации коммутатора

Сб фев 24, 2024 18:05:52

Я бы сделал вот так:

Изображение

Re: Нужна идея реализации коммутатора

Сб фев 24, 2024 18:28:35

Я бы сделал вот так:

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

Re: Нужна идея реализации коммутатора

Сб фев 24, 2024 18:53:51

Нарисуйте таблицу истинности.
К примеру, если выход датчика освещенности X, выход датчика движения Y и выход модуля ДУ RF Z, то каково будет состояние лампочки U?
Сейчас таблица выглядит так:
X Y Z U
1 x x 0
0 1 0 1
0 0 1 1
0 0 0 1
0 1 1 0
Как она должна выглядеть?

Re: Нужна идея реализации коммутатора

Сб фев 24, 2024 19:07:08

Нарисуйте таблицу истинности.
К примеру, если выход датчика освещенности X, выход датчика движения Y и выход модуля ДУ RF Z, то каково будет состояние лампочки U?
Сейчас таблица выглядит так:
X Y Z U
1 x x 0
0 1 0 1
0 0 1 1
0 0 0 1
0 1 1 0
Как она должна выглядеть?


С учетом Вашего примера:
Z = 0 (Движение)
Z = 1 (Сумерки)

Z(RF)...X(DL)....Y(DD)......U
x...........0...........0...........0
0...........x...........0...........0
0...........x...........1...........1
1...........0...........x...........0
1...........1...........x...........1


У Вас сейчас скорее так:
Z(RF)...X(DL)....Y(DD)......U
x...........0...........0...........0
0...........0...........1...........0
0...........1...........1...........1
1...........0...........x...........0
1...........1...........x...........1

Re: Нужна идея реализации коммутатора

Сб фев 24, 2024 19:59:52

Тогда наверное будет разумнее так:

Изображение

Re: Нужна идея реализации коммутатора

Вс фев 25, 2024 03:45:22

Тогда наверное будет разумнее так:


Да, так лучше. А чем хуже мой вариант? На оптопарах и мосфетах который.
Изображение

Добавлено after 5 hours 13 minutes 16 seconds:
ART_ME,
Увы, но к сожалению Ваша схема и вторая не работает :(
Попробуйте на симуляторе.

Z(RF)...X(DL)....Y(DD)......U.....Должно быть

0...........0...........0...........1 - > 0
0...........0...........1...........1 - > 0
0...........1...........0...........0 - > 1
0...........1...........1...........0 - > 1

1...........0...........0...........1 - > 0
1...........1...........0...........1 - > 0
1...........0...........1...........0 - > 1
1...........1...........1...........0 - > 1

Добавлено after 1 hour 55 minutes 18 seconds:
ART_ME,
из академического интереса:
Все заиграло если добавить 2 инвертора в источники.
Изображение

Re: Нужна идея реализации коммутатора

Вс фев 25, 2024 06:24:15

Согласно Вашей таблице истинности
Z(RF)...X(DL)....Y(DD)......U
1...........1...........x...........1
Т.е. лампочка должна загореться когда Z=1 и X=1 при любом состоянии Y.
В исправленной Вами схеме лампочка загорается при условии, когда Z=1, а X = 0.
Получается, что либо таблица истинности Вами составлена неправильно, либо протеус врёт.

Re: Нужна идея реализации коммутатора

Вс фев 25, 2024 20:37:49

Получается, что либо таблица истинности Вами составлена неправильно, либо протеус врёт.

у меня в протеусе все норм.
Вот режим Z=1 (режим сумрак) , X=1 (включен). Все зависимости от Y (SW9 - датчик движения) - лампа горит.
Изображение

Режим Z=1 (режим сумрак) , X=0 (выключен). Все зависимости от Y (SW9 - датчик движения) - лампа НЕ горит.
Изображение

Чтобы вся логика умещалась в одном чипе нужно какой-то из инверторов реализовать по другому.
Типа так наверное:
Изображение

Re: Нужна идея реализации коммутатора

Пн фев 26, 2024 04:48:17

Вот режим Z=1 (режим сумрак), X=1 (включен)

X=1 - это высокий уровень на выходе компаратора, а X = 0 - это низкий уровень на выходе компаратора.
Z = 1 - это высокий уровень на выходе датчика, транзистор закрыт), а Z = 0 - это низкий уровень на выходе датчика, транзистор закрыт.
Подозреваю, что у Вас получилось наоборот.
Cоставьте таблицу истинности еще раз. Внимательнейшим образом.

Re: Нужна идея реализации коммутатора

Пн фев 26, 2024 07:46:03

Может я невнимательно читал тему, sorry
Но почему бы всю логику и параллельно включенные оптроны не заменить на AtTiny13 и 10 строчек кода?

Re: Нужна идея реализации коммутатора

Пн фев 26, 2024 08:44:14

Может я невнимательно читал тему, sorry
Но почему бы всю логику и параллельно включенные оптроны не заменить на AtTiny13 и 10 строчек кода?

Потому что при предоставлении правильного ТЗ (таблицы истинности в данном случае) может оказаться, что есть более удобное, дешевое и надежное техническое решение, чем МК.

Re: Нужна идея реализации коммутатора

Пн фев 26, 2024 10:15:23

Правильно сформулировать ТЗ - это уже пол-дела. У меня бывало: пытаешься чётко сформулировать вопрос - и уже как-то сам собой ответ проклёвывается :)

Re: Нужна идея реализации коммутатора

Пн фев 26, 2024 11:53:42

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

если же нужна другая таблица то возьмите другие элементы (2NOR напр и при той же схеме все входы и выход проинвертируются)
проинвертировать же выход обратно всегда можно перевернув светодиод оптрона и перевесив его на 0V.

ваша 3входовая логика наверняка элементарно решается на 1 корпусе 2NORx4 или 2NANDx4 или 1g универсальным логическим элементом. еще нужен 1 резистор на светодиод и 0..6 резисторов на входах. нужен или нет 1 или 2 резистора на входе зависит от конструкции выхода и напряжений на нем, если логика питается от 3-5V а выход както чемугодно коммутируется между 0...3V то в случае безтриггерной логики можно вообще без резисторов.
Последний раз редактировалось AlexS4 Пн фев 26, 2024 12:09:11, всего редактировалось 1 раз.

Re: Нужна идея реализации коммутатора

Пн фев 26, 2024 12:05:15

AlexS4, согласитесь, что сначала надо получить ТЗ, а уже потом решать что и как добавлять?
PS. Есть подозрение, что ТС, составив правильное ТЗ, сам решил свою задачу. :))

Re: Нужна идея реализации коммутатора

Пн фев 26, 2024 15:13:41

Может я невнимательно читал тему, sorry
Но почему бы всю логику и параллельно включенные оптроны не заменить на AtTiny13 и 10 строчек кода?

На AtTiny13 делал дополнительный контроллер для аквасторожа, под свои задачи. Там реально по другому было не решить. Но тут, лично мне, мне проще условно "2 транзистора" припаять для решения.
AlexS4, согласитесь, что сначала надо получить ТЗ, а уже потом решать что и как добавлять?

Я понял где возникло недопонимание!
Я с первого своего поста оперировал понятиями "ВКЛЮЧЕННОГО ДАТЧИКА". Датчик движения, датчик освещенности, команду RF.
Т.е. если датчик сработал - значит = "1". Датчик НЕ сработал = "0".
А Вы оперируете логическими уровнями в конкретных участках схемы. Вот тут и возникли разночтения.
Мне казалось, что столь примитивная логика не должна была вызвать проблем с пониманием задачи.
Ведь по ссути все просто: при переключении (RF) в режим "Датчика движения", значения "Датчика освещенности" игнорируются. При переключении (RF) в режим "Датчика освещенности", наоборот - срабатывания "Датчика движения" игнорируются.
Ну как коммутатор, в первом же посте условно нарисованный.
PS. Есть подозрение, что ТС, составив правильное ТЗ, сам решил свою задачу. :))

Да по своему я задачу решил с двумя мофсетами и двумя оптопарами. Но Ваше направление решения с помощью логики, показалось мне интересным и перспективным. Поэтому я и не закрываю тему без доведения этой мысли до логического завершения :)

Добавлено after 21 minute 22 seconds:
Давайте попробуем перейти на общий (Ваш) язык:
X(DL) "DL - ну типа Light" примем как выход LM393. Если датчик DL сработал, то его выход = логическому "0". Если не сработал = "1".
Y(DD) "DD - типа движения :)" примем как коллектор Q5. Если датчик DD сработал, то его выход = логической "1". Если не сработал = "0".
Z(RF) "радиореле". Примем как значение на коллекторе Q9. В режиме "Датчика движения" коллектор Q9 = "1". В режиме "датчик освещенности" Q9 = "0".
U - лог. уровень на катоде led оптопаты. "0" - включено, "1" - выключено.

Re: Нужна идея реализации коммутатора

Пн фев 26, 2024 15:37:24

С учетом Вашего примера:
Z = 0 (Движение)
Z = 1 (Сумерки)

Z(RF)...X(DL)....Y(DD)......U
x...........0...........0...........0
0...........x...........0...........0
0...........x...........1...........1
1...........0...........x...........0
1...........1...........x...........1


74LVC1G98 (можно другие 1g57,58,97-99)
Изображение
как видно in2 (ваш Z(RF)) определяет какой из входов in1 или in0 будет игнорироваться.
для конкретно 98 выходная логика инвертирует исходный сигнал с in1, in0 а значит если ваша схема активным на входы дает H то на выходе активный L (тогда катод к выходу, анод через резистор на +Vcc)
еслли же активный на входах L, тогда анод к выходу, катод через резистор на 0V.

и я выше написал как собирать из nor/nand (1g98 1:1 собирается их 1 корпуса 2NORx4) .
никаких доп резисторов и темболее транзисторов тут ненужно, резисторы могут понадобиться только скажем если уровни 12V а питание логики 3-5V.

Re: Нужна идея реализации коммутатора

Пн фев 26, 2024 16:06:40

X(DL) вкл = "0", выкл = "1".
Y(DD) вкл = "1", выкл = "0".
Z(RF) "Датчика движения" = "1".
....."датчик освещенности" = "0".
U - вкл = "0", выкл = "1".

При таких обозначениях таблица получается такая:

Режим "Датчик освещенности" Z(RF) = 0
Z(RF)....X(DL)....Y(DD)......U
0.......1(выкл)...0(выкл)...1(выкл)
0.......1(выкл)...1(вкл).....1(выкл)
0.......0(вкл).....0(выкл)...0(вкл)
0.......0(вкл).....1(вкл).....0(вкл)

Режим "Датчик движения" Z(RF) = 1
Z(RF)...X(DL)....Y(DD)......U
1.......1(выкл)...0(выкл)...1(выкл)
1.......0(вкл).....0(выкл)...1(выкл)
1.......1(выкл)...1(вкл).....0(вкл)
1.......0(вкл).....1(вкл).....0(вкл)

Или без пояснений, чтобы самому не запутаться:

010..1
011..1
000..0
001..0
110..1
100..1
111..0
101..0

Добавлено after 5 minutes 44 seconds:
AlexS4, спасибо. Увидел, пока ломал себе мозг, что есть "0" и "1", "вкл" и "выкл." :))))
Тут уже, как видите и таблица поменялась при переводе с "русского" на "логический" :)

Re: Нужна идея реализации коммутатора

Пн фев 26, 2024 17:58:16

Я понял где возникло недопонимание!
Я с первого своего поста оперировал понятиями "ВКЛЮЧЕННОГО ДАТЧИКА".

Совершенно верно, Вы исходили из того, что у Вас в голове. Но это только у Вас в голове, у окружающих 0 - это логический ноль, а 1 - это логическая единица. Ни никак иначе.

Добавлено after 4 minutes 27 seconds:
Давайте попробуем перейти на общий (Ваш) язык:
X(DL) "DL - ну типа Light" примем как выход LM393. Если датчик DL сработал, то его выход = логическому "0". Если не сработал = "1".
Y(DD) "DD - типа движения :)" примем как коллектор Q5. Если датчик DD сработал, то его выход = логической "1". Если не сработал = "0".
Z(RF) "радиореле". Примем как значение на коллекторе Q9. В режиме "Датчика движения" коллектор Q9 = "1". В режиме "датчик освещенности" Q9 = "0".
U - лог. уровень на катоде led оптопаты. "0" - включено, "1" - выключено.

Ну вот, опять начал грузить своими любимыми датчиками. :)))
Мой язык в данном случае - это таблица истинности, где X = 1 - это высокий уровень на выходе схемы, а x = 0 - это низкий уровень на её выходе.
Y и Z точно также, и пофиг, что там стоит на выходе, благо из Вашей схемы отлично видно, что везде стоит транзистор с ОК.
Последний раз редактировалось ART_ME Пн фев 26, 2024 18:02:35, всего редактировалось 1 раз.

Re: Нужна идея реализации коммутатора

Пн фев 26, 2024 18:01:20

Ну вот, опять начал грузить своими любимыми датчиками. :)))


Пропускайте эту часть :))) Таблица таки есть ниже :))

Re: Нужна идея реализации коммутатора

Пн фев 26, 2024 18:04:11

Эта? Точно?
ZXY..U
010..1
011..1
000..0
001..0
110..1
100..1
111..0
101..0
В строке 7 нет ошибки?
Ответить