Comments 32
пропустив нулевой и первый— их лучше всегда пропускать, так как по ним происходит заливка скетча.
habr.com/ru/info/help/posts
Признаки хороших и плохих публикаций
Плохая публикация:
содержит реферальные ссылки на что угодно;
А тут есть рефы?
вот реферальная ссылка (используемая в статье)
www.aliexpress.com/item/32635207928.html?spm=a2g0s.9042311.0.0.2c0a4c4dKghr6P
вот НЕ реферальная ссылка
www.aliexpress.com/item/32635207928.html
ещё вопросы?
spm это не реф. Это обычный родной трекерный параметр али. Если-б ссылка была аля али.паб то да, а это трекинг. Тоже вещь неприятная (для носителей шапочек из фольги), но автору никаких бонусов не даст.
И в том и в том случае — вы могли-бы написать автору в ЛС про этот косяк, явно ссылка приведена не для получения миллионов рублей на продаже клавиатур для дуины.
Лучше такое человеку в личку написать…
Еще в скетче нет обработки bounce на кнопках. Надо считывать несколько значений и усреднять, иначе количество ложных срабатываний просто зашкалит.
- Подключить несколько аналоговых клавиатур в разные аналоговые порты
- Подключать кнопки по-отдельности в разные цифровые пины
- Реализовать собственный модуль, который будет использовать к примеру 3-4 пина и работать по следующему принципу: нажата 1-4 кнопка — сигнал на соотвествующий пин, нажата шестая — на два первых пина, седьмая — на второй и третий, с 8-ой аналогично и так комбинируя сигналы с разных пинов, можно получать информацию о нажатой кнопки, ну а если вам нужно слишком много кнопок, можно выделить собственный микро-контроллер для клавиатуры, используя все его пины для обработки нажатий, а второму микроконтроллеру передавать уже только уже готовую информацию о нажатой кнопке.
Понятно что взяв в руки паяльник можно собрать какой угодно модуль, только с таким подходом уже задумаешься, велики ли выгоды собственно от ардуины.
Приделывал PS/2 к ардуине, кроме разъёма ничего и не понадобилось.
А вообще для экономии пинов набор из входных + выходных сдвиговых регистров поможет практически сколько влезет кнопок сделать :-)
К сожалению, насколько помню, выходные каскады atmega, применяемых в Ардуинах, не имеют штатного режима работы в режиме с открытым стоком. Но это можно сэмулировать, переключая режим ножки между выходом с логическим 0 (эквивалентно установке выхода с открытым стоком во включенное состояние выходного транзистора) и входом с отключенной подтяжкой (эквивалентно установке выхода с открытым стоком в выключенное состояние выходного транзистора). Естественно, проводить эти манипуляции стоит прямым обращением к регистрам, а не ардуиновскими функциями конфигурирования выводов, занимающими десятки (если не сотни) тактов процессора.
Здесь очень много «если», причем программной реализации. Отладка программ новичками (да и не только) может привести к неосознанным действиям с режимами портов.Этим эмбеддинг кардинально и отличается от обычного программирования, что ошибки в программе могут приводить к повреждению оборудования. И если с условным опросом клавиатуры этого еще можно избежать, то, например, при управлении силовыми ключами в двухтактном включении и т.д. «бах» можно устроить вполне реальный.
Возвращаясь к нашей клавиатуре — просто на этапе отладки, пока не убедились, что все работает правильно, не надо нажимать по две клавиши сразу. А как только все заработало как надо — тогда на здоровье, жмите хоть все сразу.
Впрочем, Ваше мнение может быть и более полезно, чем мое для типового Ардуинщика, не желающего вникать в детали и становиться профессионалом.
процедуру опроса клавиатуры не менять— ну если кому-то приспичило перепрограммировать устройство — то это его личное дело, но и ответственность за свои действия несет только он.
Защита от дребезга, встроенные диоды и прочие «плюшки».
PDF c datasheet гуглится легко.
Только у меня складывается впечатление, что «знание» Ардуино безвозвратно портит людей?
А не думали ли Вы, что гораздо и проще и правильнее подключить PS/2 Numpad, коих более чем много на упомянутом али? И выводов займет мало и не будет сюрпризов с кнопками через некоторое время (как это бывает в аналоговых клавиатурах мониторов)?
Но да, для этого надо бросить Ардуину в дальний ящик и заняться программированием.
Вы слишком категоричны. Увлечение ардуиной для утилитарных задач дает очень хороший старт для энтузиастов без знаний. Для многих это остается увлечением ради одной задачи, например поливалки для теплиц у моего брата — он ее спаял и никогда больше не прикасался к дуине и МК вообще. И тут играет важную роль а) низкий порог входа, потому что на ардуине я за вечер смог сделать свой GPS — SD логгер ВООБЩЕ без знаний в Си/асм или алгоритмах и б) большое комьюнити в интернете. Со своей колокольни вы можете смотреть на это как на детей играющих паровозиком в песочнице, однако если оно выполняет своюи задачи за минимальные затраты времени и денежных вложений — оно займет обширную нишу.
А про PS/2 numpad — смешно. Готовое изделие, которое нужно будет разбирать в 99% для своих поделок и полуфабрикат...
P.S. Зачем разбирать Numpad? У него же вполне простой и понятный интерфейс PS/2, по которому документации ну очень много.
Это не грустно, это нормально. На одних гиках жизни нет, их мало, зато в таких "масло-масленых" статьях есть люди уже прошедшие весь этот путь и могущих ткнуть лицом в типичные ошибки новичков и вовремя остановить их от неверного пути. Мне-бы такое в те года когда я начинал — может сейчас-бы уже знал STM или PIC, а не рукоблудил с дуинами pro mini, однако тогда на хабре были статьи от которых челюсть падала на стол от непонимания всего этого "дзюдо".
Разбирать нампад надо т.к. чаще всего человеку нужна не внешняя клавиатура, а клавиши встроенные куда-то. У меня вот клавиатура в ракете, клавиатура в макете устройства из Counter-Strike, клавиатура в ящике кодовом, клавиатура в ящике координатном, клавиатура в рации… Для всех этих вещей мне пришлось-бы разбирать нампад, а это лишние действия.
Ардуино и клавиатуры (полный гайд)