Проверка работоспособности проводки кнопочной коробки
Я строю окно кнопки flight sim и хотел бы, чтобы кто-то, пожалуйста, проверил мою предлагаемую схему подключения.
Я буду использовать 12 кнопок, 4 поворотных кодера, каждый также с кнопкой и 4 (on)-off-(on) тумблера, а также один дополнительный тумблер для использования в качестве модификатора для кнопок.
Любые замечания или предложения приветствуются.
@Nc Bean, 👍1
Обсуждение2 ответа
Отредактировано, чтобы предложить снизить выходы.
Чтобы использовать мультиплексированную сетку таких переключателей, вам нужно будет написать код, который устанавливает все столбцы для открытия, устанавливает все входные строки в значение INPUT_PULLUP, управляет одним столбцом за раз и сканирует строки на низкий выход, чтобы выяснить, какие кнопки нажаты. (Вы можете поменять местами строки и столбцы или добавить внешние понижающие резисторы и поднять строки/столбцы выше, чем заземлять их, но вы понимаете идею. Вам нужно будет написать код для сканирования сетки кнопок во вложенных циклах.)
Вам нужно СНИЗИТЬ уровень столбцов (по одному за раз) и включить в строках подтягивающие резисторы. Если вы хотите, чтобы они были ВЫСОКИМИ, вам нужны (внешние) понижающие резисторы в строках., @Gerben
Просто используйте библиотеку Keypad.h, как и все остальные..., @Majenko
@Gerben да, либо уменьшите их и запустите входы в режиме INPUT_PULLUP, либо уменьшите их и добавьте внешние понижающие резисторы. На схеме не показано ни убирающих, ни убирающих резисторов, поэтому было бы лучше снизить уровень столбцов., @Duncan C
Контакты 0 и 1 используются для последовательного подключения, что может затруднить отладку.
Если вы не используете переключатель с тройным переключением, вам не нужны как 9, так и 8. Не считывание переключателя, закрытого на 9, означает, что он должен быть закрыт на 8.
Я бы поменял местами 0
и A0
, так что у третьего поворотного кодера есть свои контакты из того же пин-регистра.
Я бы, возможно, добавил резисторы, чтобы, если я случайно определю вывод в качестве вывода, я не замирал при нажатии кнопки.
В зависимости от того, сколько кнопок вы позволяете нажимать одновременно, вам может потребоваться добавить диоды к кнопкам, чтобы предотвратить опрокидывание n-клавиш.
и 4 (вкл.)-выкл.-(вкл.) тумблера
..., @Majenko
@Majenko ой! Пропустил это., @Gerben
Мне тоже пришлось дважды взглянуть, чтобы это увидеть ;), @Majenko
Спасибо, что посмотрели, я добавлю диоды в систему, дам отзыв, как только начну пайку :), @Nc Bean
- Как использовать SPI на Arduino?
- Какой тип разъема использует система GROVE?
- Нажать клавишу Windows, используя «keyboard.press();»
- Как подключить вывод INT MPU 6050?
- Улучшенное циклическое переключение цветов RGB.
- Проблема с загрузкой моего скетча на Ардуино
- Подключить Arduino к телефонной линии?
- Отправка мультимедийных клавиш клавиатуры с помощью библиотеки клавиатур
Это не сработает. Линии 4-7 закорочены через линию 9. Матрица работает с кнопками (в основном) - если вы нажмете больше кнопок, она может создать ложную нажатую кнопку (нажатия 7-13, 6-13, 6-12 и 7-12 тоже будут обнаружены как нажатые). Единственный способ-использовать диоды для каждой кнопки и переключателя, @KIIV
@KIIV хороший улов. Я думаю, что только добавление диодов к переключателям уже очень поможет. Нажатие 3 кнопок менее вероятно, чем переключение двух переключателей и нажатие одной кнопки., @Gerben
это матрица кнопок 5x6 ... https://arduinoprosto.ru/q/50869/4x4-matrix-keypad-multiple-inputs-cause-extra-readings ... четыре поворотные кнопки энкодера и тумблер внизу образуют 5-ю колонку., @jsotola
поворотные энкодеры также могут быть частью матрицы ... это зависит от типа кодера и от того, как вы собираетесь использовать кодеры, @jsotola
Я вижу, что рисунок делает его похожим на короткий промежуток между 4-7 и 9, который должен быть прыжком. Я решил просто добавить диоды, их довольно легко добавить, и у меня есть 50 под рукой, так что нет большой проблемы., @Nc Bean