Дребезг клавиш: почему одно нажатие клавиши иногда регистрируется дважды
Вы печатаете слово, и одна буква появляется дважды — «привет» превращается в «приввет» — хотя вы уверены, что нажали клавишу всего один раз. Это не опечатка и не игра воображения. Это называется дребезгом клавиш (key chatter), и это реальное физическое явление, происходящее внутри переключателя.
Что происходит на уровне переключателя
Каждая клавиша, будь то механический переключатель или мембранный купол, при нажатии замыкает электрический контакт. Этот контакт не всегда замыкается чисто, одним плавным движением — он может физически подпрыгивать, размыкая и замыкая контакт несколько раз за считанные миллисекунды, прежде чем прийти в стабильное замкнутое состояние.
Прошивка клавиатуры должна автоматически обрабатывать это с помощью процесса, называемого «подавлением дребезга» (debouncing): она игнорирует этот короткий отскок и сообщает только об одном чистом нажатии. Когда подавление дребезга работает исправно, вы вообще не замечаете, что отскок произошёл. Дребезг — это то, что случается, когда оно не работает: отскок «просачивается», и одно ваше физическое нажатие регистрируется как два (а иногда и больше) отдельных нажатия клавиши.
Что его вызывает
- Изношенные переключатели. По мере использования переключателя месяцами или годами его контакты могут деградировать так, что дребезг усиливается.
- Пыль и мусор. Загрязнение внутри корпуса переключателя может мешать чистому контакту.
- Прошивка со слишком коротким окном подавления дребезга. Некоторые клавиатуры, особенно бюджетные модели, используют задержку подавления дребезга, которая слегка недостаточна, чтобы надёжно отфильтровать каждый отскок.
- Влага или пролитая жидкость. Даже небольшое количество остатков жидкости может вызвать нестабильное поведение контакта в затронутой клавише.
Дребезг клавиш против залипшей клавиши против геймострения
Легко свалить все странности клавиатуры в одну кучу, но это три разные проблемы:
- Дребезг — одно нажатие регистрируется как несколько, изолированно, в рамках одного события нажатия.
- Залипшая клавиша — клавиша продолжает непрерывно посылать сигнал или не отпускается, независимо от дребезга.
- Геймострение — клавиша вообще не регистрируется, но только при одновременном удержании с определёнными другими клавишами.
Наш тест на дребезг клавиш создан специально для выявления первого случая: он отмечает любую клавишу, где одно нажатие приходит как два нажатия с интервалом менее 40 миллисекунд — намного быстрее, чем любое намеренное двойное нажатие человеком.
Как это исправить
- Сначала очистите клавишу. Сжатый воздух вокруг и под колпачком клавиши решает удивительно много случаев дребезга, вызванных пылью.
- Проверьте настройку подавления дребезга. Многие механические клавиатуры с фирменным ПО позволяют напрямую увеличить время подавления дребезга — небольшое увеличение (даже на несколько миллисекунд) часто достаточно, чтобы полностью устранить дребезг, не создавая ощущения задержки клавиатуры.
- Замените переключатель, если возможно. На клавиатурах с горячей заменой переключателей дребезжащий переключатель обычно можно вынуть и заменить по отдельности, не покупая новую клавиатуру.
- Если ничего не помогает, эта клавиша (или клавиатура) может быть на исходе своего срока службы. Постоянный дребезг, который не устраняется чисткой и увеличением подавления дребезга, часто является признаком настоящего механического износа.