ЭЛЕКТРОНИКА Мультиплексор

Старик Похабыч

★★★★★✩✩
14 Авг 2019
1,652
409
Москва
Приветствую, электроники.
Вот есть такая штука как мультиплексор. Рассмотрим не аналоговый вариант.

Например будем использовать его для расширения ввода в ардуино. 3-мя портами управляем адресом, в 8 входам подключены 8 кнопок с подтяжкой к +.
в цикле loop перебрав все адреса считываем данные. Получаем 8 бит значений.

Вопрос вот в чем: как будет влиять дребезг контактов на мультиплексор ? надо ли как то устранять ?
если надо, то допустим я делаю rc-цепь и получаю такой кривой сигнал. Для коррекции его иногда применяют триггер шмитта, а что будет на выходе мультиплексора ? Такой :

Или такой:


А если мультиплекор будет аналоговый то как поменяется картина ?
 

kostyamat

★★★★★★✩
29 Окт 2019
1,602
775
@Старик Похабыч, не берусь утверждать, но предполагаю, что раз мультиплексор аналоговый, то и "картинку" вы получите аналоговую. То есть, вы получите все прелести и сразу, в том числе и дребезг.
А цифровой мультиплексор отрежет часть всплесков ниже напряжения его единицы и на выходе вы получите серию красивых "прямоугольников". То есть ровно то же самое, как если бы кнопки были подключены к самой ардуино. Там то же самое, дребезг воспринимается как серия единичек.
 
Последнее редактирование:

kalobyte

★★★✩✩✩✩
1 Янв 2020
741
158
есть расширители портов с шиной и2ц
так там встроен антидребезг
так что смотри даташит, может быть там что-то есть, хотя если тебе тупо порты увеличить, то есть регистры для этого
и что-то я ни разу не помню, чтобы там дребезг обрабатывался в софте
 

kalobyte

★★★✩✩✩✩
1 Янв 2020
741
158
@kostyamat,
PCAL6524
но я видел другой, но не помню какой
или то драйвер светодиодных индикаторов был с клавиатурой и там эта плюшка была кажется

скорей всего там и видел
 

Старик Похабыч

★★★★★✩✩
14 Авг 2019
1,652
409
Москва
Получил мультиплексор. Немного повозился, стабильно работает вот по такой схеме.
Прошу электроников глянуть и сказать насколько правильно подключена кнопка. Подключено все 8 штук, но картинку сделал только с одной. но это и не важно.
На вход D2 получаю стабильно 1 при нажатии и 0 при его отсутствии. Дребезга не наблюдаю. Подтяжка не требуется.
Если читать непрерывно , то получается что то мало циклов. Но если ставить 20 мс между опросами группы. то вполне получаю 180к циклов в сек.

Кстати, такую штуку вполне можно подключить к аналоговому пину наливатора , увеличить число стаканов.


multi.png
 
  • Лойс +1
Реакции: firstvirus

kalobyte

★★★✩✩✩✩
1 Янв 2020
741
158
функции установки пина и чтение из пина работают медленно очень
в ардуине есть библиотеки или даже встроеные функции для чтения с регистров

TM1638 дает 24 кнопки и занимает 3 вывода контроллера
3 бакса за 10 штук
так что стоит ли заморачиваться с этими мультиплексорами, когда есть спец мелкасхемы с антидребезгом, без лишних резисторов, конденсаторов + еще могут управлять светодиодами или индикаторами
 

kostyamat

★★★★★★✩
29 Окт 2019
1,602
775
@Старик Похабыч, посмотрел таблицу истинности, по входу один высокий вообще не предполагается?
А шо оно на выходы выдаст если несколько входов одновременно подтянуты к плюсу или массе? Или я не понял как оно работает?
Таблицу тут смотрел https://www.microshemca.ru/KP5/
И да с логик-электроникой я сильно на Вы.
 

kalobyte

★★★✩✩✩✩
1 Янв 2020
741
158
@kostyamat,
мультиплексор подключает к выходу только один вход в зависимости от комбинации на управляющих входах
входа 3, значит комбинаций будет 2^3 = 8
что собственно мы и наблюдаем в плане входов
подаем на входы 0 - получаем вход и1
ничего сложного, только мультиплексор не используется для этого

непонятно, зачем он его прилепил
 

Эдуард Анисимов

★★★★✩✩✩
23 Сен 2019
869
262
54
Марий-Эл
Прошу электроников глянуть и сказать насколько правильно подключена кнопка.
Всё правильно.

По скорости считывания @kalobyte, правильно сказал. Лучше напрямую эти порты писать и читать. Быстрее получится. Даже библиотеки не понадобятся.
 
  • Лойс +1
Реакции: firstvirus

Старик Похабыч

★★★★★✩✩
14 Авг 2019
1,652
409
Москва
@Эдуард Анисимов, Так я и не использую библиотеку.
Я пока разбираюсь как эта штука работает. Тем кто в голове держит схемы лет 20 с ними работает не понять тех, кому каждый новый компонент дается с боем .
А так разберусь, оптимизирую, посмотрю что получиться. Может сделаю свою библиотеку под свои нужды.

@kostyamat, Да. таблица верная )
Если подтянуть несколько, то на выходе будет тот сигнал, который задается адресом. Т.е. меняя адрес можно получить данные всех со всех входов в цикле.
"по входу один высокий вообще не предполагается? " вот это не понял немного. Я изначально вход подтянул к +, т.е. на входе высокий сигнал етсь, т.е. на выходе я получаю 0. заземляя (нажимаю кнопку) я получаю на выходе 1.


Но зачем это делать если проще купить за 100р пучок ? (с) @kalobyte
 

kDn

★★★★★★★
18 Ноя 2019
2,053
1,162
А если ещё дешифратор поставить, можно вообще дохрена кнопок подцепить.
Счетчик на адресные входы, сдвиговый регистр на выход тактировать все это добро внешним генератором и слать пачкой по 1 проводу. А еще из буханки хлеба можно сделать троллейбус :)
 

kDn

★★★★★★★
18 Ноя 2019
2,053
1,162
@kDn, А ты где сидел, Володя ? (с) Глеб Жиглов :D
Ну если серьезно... То какую задачу вы решаете? Можно ли прикрутить мультиплексор для экономии 4 входов (в вашем случае)? Можно.
Есть ли более красивые решения? Есть. Вот как бы и все. А так-то можно много чего сделать в железе, при наличие желания, но контроллеры как раз позволяют упростить жизнь и обойтись без мелкой логики. В конечном счете - не хватает входов - частенько проще просто взять контроллер чуть лучше, так еще и дешевле может выйти чем навешивать нечто внешнее на имеющееся.
 

Эдуард Анисимов

★★★★✩✩✩
23 Сен 2019
869
262
54
Марий-Эл

Эдуард Анисимов

★★★★✩✩✩
23 Сен 2019
869
262
54
Марий-Эл
@kDn, В данном случае уже 8. Если задействовать другой мультиплексор на 16 входов, уже 16 кнопок. Или 2 по 8 и транзистор. Избаловали вас микроконтроллеры.
 

Старик Похабыч

★★★★★✩✩
14 Авг 2019
1,652
409
Москва
Будем считать , что задача подключение 8-ми кнопок и понимание того, как этот мультиплексор работает.
Изначально было интересно получиться ли повесить на одно прерывание несколько кнопок, но потом подумав понял, что если соседние кнопки будут иметь разное значение , то прерывания не будет. Но случаи, когда не хватает буквально одного пина не редки. Я себе нашел быстрый и достаточно простой (для меня) выход.

Я еще раз повторю, во всяких там мультиплексорах, дешифраторах и прочих я практически 0. Слово мультиплексор я услышал буквально неделю назад, хотя давно думал о такой микросхеме, все думал как получше объяснить, что бы понять. Можно взять мультиплексор на 16 входов, что добавит 16-5=11 дополнительных контактов. Но это все теория.

Теперь объясните как сюда добавить дешифратор. Если я правильно понял, то он поможет для данного случая освободить только 1 пин
 

kDn

★★★★★★★
18 Ноя 2019
2,053
1,162
@kDn, В данном случае уже 8. Если задействовать другой мультиплексор на 16 входов, уже 16 кнопок. Или 2 по 8 и транзистор. Избаловали вас микроконтроллеры.
Не, ну давайте вернемся к КР580 набору. Ну подумаешь несколько десятков лет прошло. Но ведь делали же на нем))). У меня помнится даже курсовая - микроЭВМ на этом наборе была. :)
Как по мне - всяким решениям свое время. Сейчас собирать на контроллерах значительно проще, чем ранее с микропроцессорами или однокристалками играться.

* Ладно, пойду работу работать.
 

Эдуард Анисимов

★★★★✩✩✩
23 Сен 2019
869
262
54
Марий-Эл
Теперь объясните как сюда добавить дешифратор.
155КП5 не совсем для этого подходит. У неё нет входа разрешения. Но на ней тоже можно сделать. Только логики добавится.
Мне сейчас уходить нужно. Если интересно, как это делается Напомните мне в личку. Вечером объясню.