Цикл y от 1 до 4 по строкам --подаем питание на y --ждем чуток, пока пин отреагирует и включит питание --Цикл x от 1 до 4 по столбцам ----если на x 1, то нажата кнопка (x,y) --конец цикла по столбцам --убираем питание с y конец цикла по строкам
то есть суть в том, что по очереди на одну координату подаем питание, а по другой проверяем: появилось ли оно. И если появилось, то нажата кнопка на их пересечении. Далее убираем питание и переходим дальше. Проблемой будет, когда у вас будут нажаты несколько кнопок одновременно. Сигналы при этом будут контактировать друг с другом и на выходе у вас будет дичь (кто кого перетянет). Поэтому, на одну из координат по диоду шоттки воткните, а со стороны другой координаты подтяните к земле (если отсутствием сигнала будет считаться земля). Также не забудьте про дребезг контактов, который в вашем случае можно устранить программно.
Если особо изловчиться, то можно определять даже две одновременно нажатые кнопки. Для этого вам потребуется хранить всю матрицу в массиве, чтобы при анализе нового нажатия вы могли также учитывать существующее. Но это головняк и без особой необходимости лучше считать несколько нажатых кнопок как отсутствие нажатия.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
На каждой кнопке. Иначе при одновременном нажатии 3х и более кнопок будут ложные срабатывания. Представьте что вы нажали кнопки с адресами 1.1, 3.1, 3.3 При опросе первой строки окажутся на выходе "нажатыми" 1.1 и 1.3 (хотя 1.3 и не нажата). П.с. это если есть вероятность одновременного нажатия 3-х и более. Если 2 и более, то на строки(столбцы). Если 1, то ничего не надо.
Только не каждой кнопке, а каждому столбцу или строке, в зависимости от того, куда вы подаете опрашивающий сигнал.
LastHopeMan писал(а):
Поэтому, на одну из координат по диоду шоттки воткните, а со стороны другой координаты подтяните к земле (если отсутствием сигнала будет считаться земля)
Вы, очевидно, некачественно прочли моё сообщение. Ещё раз - дабы не было кз при "одновременно нажатые кнопки". Это означает, что для того, чтобы не было короткого замыкания при одновременно нажатых нескольких кнопках, линии нужно развязать диодами. Что является подтверждением ваших слов -
Цитата:
Сигналы при этом будут контактировать друг с другом и на выходе у вас будет дичь
Карма: 3
Рейтинг сообщений: 17
Зарегистрирован: Чт ноя 26, 2015 23:22:35 Сообщений: 124 Откуда: не с Уфы
Рейтинг сообщения:0
Думаю, качественнее всего было бы наверное использовать ацп для такого количества кнопок. А одновременные нажатия не использовать, тем более судя по всему такая клавиатура скорей всего для ввода пароля понадобится, либо такие нажатия, если они присутствуют в задумке, программно заменить на какой-нибудь иной алгоритм. Тогда и программа проще станет и ног меньше под это дело уйдёт.
Если нет желания ставить на кнопки диоды - сделайте так, что бы в любой момент времени выходом был только один из 8-ми выводов (остальные 7 - входы). Программа немного усложнится, но деталей на плате будет меньше (особенно, если использовать встроенную "подтяжку" к Vdd /PULL-UP/).
Вы, очевидно, некачественно прочли моё сообщение. Ещё раз - дабы не было кз при "одновременно нажатые кнопки". Это означает, что для того, чтобы не было короткого замыкания при одновременно нажатых нескольких кнопках, линии нужно развязать диодами. Что является подтверждением ваших слов -
Цитата:
Сигналы при этом будут контактировать друг с другом и на выходе у вас будет дичь
Я как раз сразу во всем разобрался, в отличие от вас. Вы когда отвечали предыдущему оратору, то вместо его сообщения выдрали цитату из моего. Причем совершенно из другого контекста. Неужели так сложно просто взять и прочитать с самого начала?
Суть вашего первого поста - необходимость использовать диоды для избежания кз при одновременно нажатых кнопках. Придерживаясь такого же мнения, я использовал ссылку на ваши слова. Очевидно, вы не качественно поняли смысл этого.
Если применить выходы с открытым коллектором, то не надо диодов. Но входы должны быть с подтяжками в плюс. Чтоб не заставлять проц постоянно опрашивать клаву, - наверно можно сделать обработку по прерыванию.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения