- Работа с кнопками
- Подключение и подтяжка
- Алгоритмы
- Отработка нажатия
- Дребезг контактов
- “Импульсное” удержание
- Простейший класс кнопки
- Другие возможности кнопки
- Аналоговые клавиатуры
- Видео
- Не работает клавиша(и) на клавиатуре ноутбука, ПК [Варианты решений]
- Что делать, если у вас не срабатывают некоторые клавиши
- Тестирование всех клавишей под другой ОС
- Не отключены ли клавиши в BIOS (актуально для FN, F1÷F12)
- Мусор под клавишами (пыль, крошки, волосы)
- Износ и закисление дорожек (особенно актуально при залитии клавиатуры)
- Как обойтись без некоторых кнопок
- Можно переназначить одну клавишу на другую
- Можно подключить дополнительную клавиатуру
- Можно задействовать виртуальную клавиатуру
- Если проблема с кнопкой включения
Работа с кнопками
Кнопка является простейшим устройством, при помощи которого можно управлять ходом программы на микроконтроллере, но физически она выполняет очень простую функцию: замыкает и размыкает контакт. Кнопки бывают нескольких типов:
- С фиксацией – кнопка остаётся нажатой после отпускания, без фиксации – отключается обратно.
- Нормально разомкнутая (Normal Open, NO) – при нажатии замыкает контакты. Нормально замкнутая (Normal Closed, NC) – при нажатии размыкает контакты.
- Тактовые кнопки – замыкают или размыкают контакт. У обычных тактовых кнопок ноги соединены вдоль через корпус (см. картинку ниже). Переключатели – обычно имеют три контакта, общий COM, нормально открытый NO и нормально закрытый NC. При отпущенной кнопке замкнута цепь COM-NC, при нажатой замыкается COM-NO.
Подключение и подтяжка
Из урока про цифровые пины вы помните, что микроконтроллер может считывать напряжение со своей ноги. Соответственно кнопка может подать на пин тот уровень, к которому подключена её вторая нога. В том же уроке мы обсуждали, что не подключенный никуда цифровой пин принимает наводки из воздуха, и считанное с него значение будет практически случайным. То есть подключив к пину 5V (сигнал высокого уровня) через кнопку, мы ничего не добьёмся: при нажатой кнопке на пине будет считываться четкий сигнал высокого уровня, а при отпущенной – случайное значение. Для решения этой проблемы существует такое понятие, как подтяжка (pull) пина. Подтяжка выполняется к земле (pull down) или питанию (pull up) микроконтроллера при помощи резистора. Подтяжка выполняется противоположно принимаемому сигналу, т.е. если нужно ловить высокий сигнал, подтяжка выполняется к земле, если ловить нужно сигнал земли – подтяжка выполняется к питанию. Вот два варианта подключения кнопки, с подтяжкой к VCC и GND соответственно:
Алгоритмы
Отработка нажатия
В большинстве реальных применений работать с текущим состоянием кнопки очень неудобно, например когда действие должно быть выполнено однократно при нажатии на кнопку, т.е. по клику. Чуть усложним конструкцию, добавив один флаг, который будет помнить состояние кнопки. Такая конструкция позволяет отслеживать нажатие и отпускание кнопки и реагировать на них однократно:
Дребезг контактов
Кнопка не идеальна, и контакт замыкается не сразу, какое-то время он “дребезжит”. Прогоняя данный алгоритм, система опрашивает кнопку и условия приблизительно за 6 мкс, то есть кнопка опрашивается 166’666 раз в секунду! Этого достаточно, чтобы получить несколько тысяч ложных срабатываний. Избавиться от дребезга контактов можно как аппаратно, так и программно: аппаратно задача решается при помощи RC цепи, то есть резистора (
1-10k) и конденсатора (
100nF). Выглядит это следующим образом:
Программно можно ввести простейший таймер нажатия, основанный на millis() , время гашения дребезга примем 100 миллисекунд. Вот так будет выглядеть код:
Рекомендуется конечно же использовать аппаратный способ, так как он не нагружает ядро лишними расчетами. В 99.99% проектов будет достаточно программного антидребезга, так то смело используйте конструкцию с millis() .
“Импульсное” удержание
В устройствах с управлением кнопкой очень часто бывает нужна возможность изменения значения как однократно кликом по кнопке, так и “автоматически” с тем же шагом – при удержании. Такой вариант реализуется очень просто, добавлением ещё одного условия в наш предыдущий алгоритм, а именно: если кнопка была нажата, но ещё не отпущена, и прошло времени больше, чем задано – условие вернёт true . В примере ниже периодичность “нажатий” при удержании настроена на 500 миллисекунд (2 раза в секунду):
Пользоваться таким кодом напрямую будет неудобно, поэтому можно “обернуть” его в класс (читай урок про классы и урок про написание библиотек).
Простейший класс кнопки
Вот так предыдущий пример можно сделать классом (мы делали это вот в этом уроке), положить его в отдельный файл (button.h) и пользоваться:
Другие возможности кнопки
Кнопка только с виду кажется простым устройством, дающим 0 и 1, но, подключив фантазию и время, можно придумать гораздо больше применений обычной кнопке. В моей библиотеке GyverButton реализовано очень много всяких интересных возможностей по работе с кнопкой, вот список:
- Работа с нормально замкнутыми и нормально разомкнутыми кнопками
- Работа с подключением PULL_UP и PULL_DOWN Опрос кнопки с программным антидребезгом контактов (настраиваемое время)
- Отработка нажатия, удерживания, отпускания, клика по кнопке (+ настройка таймаутов)
- Отработка одиночного, двойного и тройного нажатия (вынесено отдельно)
- Отработка любого количества нажатий кнопки (функция возвращает количество нажатий)
- Функция изменения значения переменной с заданным шагом и заданным интервалом по времени
- Возможность работы с “виртуальными” кнопками (все возможности библиотеки используются для матричных и резистивных клавиатур)
Подробное описание библиотеки можно почитать в заголовочном файле на странице библиотеки, также там есть много примеров.
Аналоговые клавиатуры
Аналоговые клавиатуры – достаточно глубокая тема, достойная отдельного урока (у меня его пока что нет). Максимально подробный урок-исследование можно посмотреть на сайте Codius.
Видео
Источник
Не работает клавиша(и) на клавиатуре ноутбука, ПК [Варианты решений]
Если с обычной клавиатурой для ПК проблем не возникает — сломалась, купил новую, то вот с ноутбуками далеко не все так просто:
- во-первых, ее в некоторых случаях достаточно сложно найти;
- во-вторых, самостоятельно ее не просто поменять (иногда требуется разобрать всё устройство);
- в-третьих, далеко не всегда неработоспособность каких-то клавиш связана с неисправностью (а вот на этом многие пользователи обжигаются. )!
- в-четвертых, клавиатура ноутбука часто «кусается» по цене (стоит значительно дороже).
Собственно, в этой статье хочу привести некоторые не совсем очевидные причины, из-за которых могут перестать срабатывать клавиши. К тому же, не всегда стоит сразу же бежать за новой клавиатурой — согласитесь, если у вас не работает 1-2 клавиши (которые не так уж часто и используются), то вполне можно обойтись и без них?
В общем, в этой статье приведу разные варианты причин, решений, и что вообще можно предпринять, если столкнулись с этой проблемой.
Что делать, если у вас не срабатывают некоторые клавиши
Тестирование всех клавишей под другой ОС
Для начала я бы хотел порекомендовать досконально проверить все кнопки клавиатуры с помощью одной сподручной утилиты — Keyboard test utility. Просто, может быть так, что вы знаете только о какой-то одной клавише, а не работают у вас еще 2-3 (да и проблема может носить программный характер) !
Утилита крайне простая (в установке не нуждается): после ее запуска перед вами появится окно с клавиатурой (👇). Когда вы нажмете какую-нибудь клавишу — она будет залита желтым цветом.
Ваша задача — перещелкать все клавиши!
Keyboard Test Utility — главное окно утилиты
Разумеется, чтобы расставить все точки над «И» — нам понадобиться создать аварийную LiveCD-флешку (и на нее также записать утилиту Keyboard Test Utility).
Далее загрузиться с этой флешки, и запустить проверку клавиатуры (благодаря этому простому тесту — мы удостоверимся, что неработоспособность клавиатуры не связана с ошибками у текущей версии Windows. ).
LiveCD для аварийного восстановления Windows — моя подборка лучших продуктов
Keyboard test utility запущена с LiveCD
Не отключены ли клавиши в BIOS (актуально для FN, F1÷F12)
Если у вас не работают функциональные клавиши ( F1÷F12 ), либо спец. клавиша FN — то возможно, что проблема кроется не в самих клавишах, а в настройках BIOS (UEFI).
Кстати, отмечу, что по умолчанию на многих ноутбуках функциональные клавиши отключены (вместо них выполняется отличные функции: прибавление громкости, вкл./откл. Wi-Fi, регулировка яркости экрана и т.д.) .
Как правило, необходимо войти в BIOS и поменять режим работы функционал. клавиш (название параметра что-то вроде «Hotkey Mode», как на скриншоте ниже).
Hotkey Mode — измененный режим работы клавиш F1-F12
Кроме этого, обратите внимание на то, установлены ли у вас драйвера и специализированный софт от вашего производителя ноутбука. Для автоматического обновления драйверов я уже давно рекомендовал 👉 вот этот список утилит.
Кстати, если у вас обычная клавиатура для ПК — то обратите внимание на специальные клавиши F Lock или F Mode (например). Они встречаются не так уж и часто, но все-таки.
При помощи них можно отключить функциональные клавиши (рядом с ними, обычно, присутствует светодиод, пример ниже).
Клавиша F Lock (чаще всего встречается на дорогих клавиатурах)
Мусор под клавишами (пыль, крошки, волосы)
Наиболее часто причиной плохой срабатываемости большинства клавиш является мусор и пыль, которые со временем скапливаются под ними.
Характерный признак в этом случае: при слабом нажатии клавиша не срабатывает, однако, при нажатии с некоторым усилием — клавиша работает. Хотя, конечно, многое зависит от конструкции самой клавиатуры (некоторые специально защищены, и такой проблемы в общем-то не имеют) .
В любом случае, время от времени рекомендую чистить клавиатуру от мусора (лишним это точно не будет).
Как можно почистить клавиатуру:
- способ №1 : воспользуйтесь баллончикам со сжатым воздухом, который продают в большинстве компьютерных магазинов (либо обычным пылесосом, включив реверсный режим). При помощи такого простого «выдува» можно избавиться от большинства пыли и крошек из-под клавиш.
Баллончик со сжатым воздухом
Способ №2 : сейчас во многих магазинах (например, китайских) продаются спец. пылесосы для чистки клавиатуры. Тоже весьма неплохое и удобное средство (пример такого устройства — см. на фото ниже 👇).
USB-пылесос для клавиатуры
Способ №3 : также во многих магазинах сейчас есть «растекающиеся» липучки. Принцип работы с ней достаточно простой: сначала вы ее кладете на клавиатуру, слегка придавливаете — она растекается и заполняет все пустоты между клавишами, вся пыль и мусор липнут к ней. Затем отцепляете ее вместе с мусором.
«Липучка» для чистки клавиатуры
Износ и закисление дорожек (особенно актуально при залитии клавиатуры)
Условно клавиатуры можно «разбить» на 2 лагеря:
- мембранные: в которых используются тонкие пленки с дорожками);
- механические: где каждая отдельная кнопка — это «кнопка».
Наиболее распространенные клавиатуры мембранного типа (около 90%-95% на рынке). Они дешевле и легче (что особенно актуально для ноутбуков).
Так вот, какая бы клавиатура не была — она рассчитана на определенное количество нажатий (как правило, несколько десятков тысяч — это несколько лет, даже при активном использовании).
С течением времени токопроводящие дорожки закисляются, тонкие контакты, замыкающие дорожки, изнашиваются, также делает свое «дело» и пыль.
Процесс «закисления» токопроводящих дорожек ускоряется в сотни раз, если вы 👉 проливаете какую-то жидкость на клавиатуру. Что, кстати, не так уж и редко, спецы за рубежом посчитали, что каждая 100-я кружка над клавиатурой опрокидывается на нее.
Мембранная клавиатура (в качестве примера, чтобы понятно было о чем идет речь).
При проблемах со старой клавиатурой (либо с залитой какой-то жидкостью) могу посоветовать следующий рецепт (он не гарантирует восстановления, и делаете по нему всё на свой страх и риск. Однако, несколько клавиатур оживить на некоторое время, он мне помог) :
- сначала снимаете (отключаете) клавиатуру с ноутбука (от ПК);
- если клавиатура была залита какой-то жидкостью (лимонад, чай и пр.): хорошо промойте ее в теплой воде с моющим средством (например, Fairy) и дайте ей просохнуть. Подключите вновь и посмотрите, стала ли нормально работать;
- если вариант не помог, придется полностью разобрать клавиатуру, и протереть пленку с дорожками и упругую мембрану с помощью этилового спирта.
- обратите внимание на состояние дорожек: если есть где-то подозрения на то, что они «истерлись» или повреждены — их необходимо обработать с помощью токопроводящего клея (не лишним было бы «прозвонить» дорожку, чтобы определить, проводит ли она «сигнал»/ток); либо просто смириться и купить новую.
Пример ремонта дорожек клавиатуры
Как обойтись без некоторых кнопок
Далеко не всегда есть возможность заменить клавиатуру: иногда банально нет средств, нередко многие так привыкают к своей клавиатуре, что просто-напросто не хотят ее менять ни на какую другую. Что касается ноутбуков — то может так стать, что нужную клавиатуру под вашу модель можно не найти.
Но во многих случаях, можно обойтись и без неработающих клавиш (особенно, если их всего 1÷2). Самые популярные способы этого «обхода» приведу ниже.
Можно переназначить одну клавишу на другую
Наиболее распространенный вариант — это воспользоваться специальными утилитами, которые могут заменить нажатие по одной клавиши на нажатие по другой. Звучит немного «странно», но принцип такой:
- не работает у вас, скажем, клавиша «Z»;
- вы устанавливаете клавишу «Ctrl» вместе нее;
- теперь при нажатии на «Ctrl» — у вас будет срабатывать «Z» (обращаю внимание, что можно переназначать практически любые кнопки между собой).
Как переназначить одну клавишу на другую (тем, у кого не срабатывает нажатие кнопки на клавиатуре)
MapKeyboard: всего три действия для замены клавиши (кликабельно!)
Мне лично импонирует утилита MapKeyboard — простая, бесплатная, надежная. Принцип работы с ней очень простой: сначала укажите какую кнопку хотите задействовать взамен неработающей; затем указываете не работающую и сохраняете настройки. После перезагрузки ПК/ноутбука — «дело» сделано, клавиша будет заменена (скрин чуть выше).
Можно подключить дополнительную клавиатуру
Также, как и к ПК, к любому ноутбуку можно подключить обычную клавиатуру (чаще всего используется классическая USB-клавиатура). Как правило, проблем с настройкой не возникает: клавиатура становится доступна для работы сразу же после подключения.
Как подключить беспроводную клавиатуру к компьютеру и телефону (в т.ч. Bluetooth-версию)
В качестве примера (к ноутбуку подключена USB-клавиатура)
Можно задействовать виртуальную клавиатуру
Не все оказывается знают, что в Windows есть виртуальная (программная) клавиатура, по которой можно нажимать курсором мышки. Что-то наподобие той, которая появляется на Android устройствах, когда вы обращаетесь к какому-нибудь текстовому блоку.
Чтобы вызвать такую виртуальную клавиатуру, 👉 откройте панель управления Windows, и перейдите в следующий раздел: Панель управления\Специальные возможности\Центр специальных возможностей . Там будет ссылка на ее запуск (см. скрин ниже).
Включить экранную клавиатуру
Выглядит клавиатура достаточно неплохо, кнопки большие, удобно. Вполне можно использовать при заполнении небольших текстовых полей, когда основная клавиатура не позволяет этого сделать.
Скриншот работы экранной клавиатуры
Если проблема с кнопкой включения
Не так давно, кстати, получил один интересный вопрос насчет не работающей кнопки включения (Power) на ноутбуке. Вообще, она напрямую к клавиатуре не относится, но тем не менее. решил указать и ее тоже в этой статье 👌.
Как включить ноутбук без кнопки включения и возможно ли это в принципе.
Источник