Лечение на синдром на двойно щракване

- Използвайте софтуерни инструменти, за да филтрирате ненужните кликвания. Но това не е решение на проблема, а само борба със симптомите, освен това само под Windows, така че отхвърлих тази опция.
- Огънете пружината на микропревключвателя.
- Някои хора дори грешат на клавиатурата. Дори проверих за приличие - резултатът е очаквано отрицателен.
- Повечето съветват просто да смените микропревключвателя. Което направих като сложих копчето от старата мишка.
Но радостта ми беше кратка - няколко дни по-късно двойното щракване се върна. След като се замислих, реших, че въпросът е в механичните вибрации и залепих дебело тиксо под бутона. Отново, това работи само за няколко дни. Стана ясно, че трябва да се намери радикално решение. За да направите това, първо трябва да разберете какво се случва.
Как обикновено се правят бутоните в цифровата електроника? Приблизително така:

Отгоре е захранване, отдолу е маса, отдясно е проводник към входа на процесора. И на входа има порта на полеви транзистор. В нашия случай можем да предположим, че това е просто идеален измервател на напрежение. Напрежението е по-голямо от определеното, което означава, че процесорът извежда, входът е единица, а ако е по-малък, тогава нула.
Но ако входът на процесора е идеален, тогава превключвателят не може да се счита за такъв с цялото ми уважение. Когато превключвателят се затвори, това означава, че едно парче метал е в контакт с друго парче метал. Но между състоянията „изключено“ и „включено“ има онзи неудобен момент, когато тези две части едва се докосват. И ако сега има контакт, след микросекунда той може да изчезне и след това да се възстанови отново. И понякога дори един контакт удря друг и според законите на Нютон отскача от него или дори няколко пъти.Какво ще си помисли майчиният процесор? Точно така - той ще си помисли, че превключвателят е включен, изключен, включен, изключен, включен, изключен и т.н. Въпреки че "всъщност" е включен само веднъж. Това явление дори има собствено име - отскачане на контакта.
Чакай, не ти ли напомня за нещо? О, да, току-що се случи подобен инцидент с нашата мишка! Това означава, че нашата работна хипотеза ще бъде, че разработчиците на мишката или изобщо не са си спомняли възможността за бърборене, или усилията им да се борят с нея са били напразни. И ние ще трябва да се борим с този враг вместо тях.
Нека отбележим две неща. Първо, скоростта на нашето кликване е ограничена. Малко вероятно е да кликнем върху мишката повече от десет пъти в секунда. Второ, превключвателите се опитват да накарат момента на отскачане да премине възможно най-бързо и със сигурност след една десета от секундата бутонът на мишката ще има време да се успокои. По този начин нашата задача е да отделим високочестотните натискания от нискочестотните, тоест имаме нужда от нискочестотен филтър. Най-лесният начин да направите това е да запоите кондензатор:

Това е, което ще направим.
Ето нашия бутон:

И това е, но без капака:

Нека подпишем телефоните за контакт за улеснение:

Принципът на работа е очевиден - в покой контакти 1 и 3 са затворени, при натискане на бутона за известно време всички контакти се отварят, а след това се затварят контакти 1 и 2. При освобождаване се случва същото в обратен ред.
Най-сложната настройка за високоскоростно снимане:

И всъщност филмът:
Както можете да видите, контактът успява да прелети цялото необходимо разстояние за пет кадъра (т.е. 5 милисекунди) и не се наблюдава видимо отскачане. Може би отскачането може да се види на осцилограмата, но доЗа съжаление се сетих, че имам осцилоскоп едва когато мишката вече беше сглобена. Но по един или друг начин е ясно, че характерното време за отскачане е очевидно по-малко от минималното време за щракване и че границата между тях минава на около пет милисекунди.
Лирично отклонение. Как бих направил мишка, ако имах превключвател като този по-горе? И така:

Евтини и ядосани. Входът на процесора е не само идеален волтметър, но и кондензатор за няколко пикофарада. Така че в тези милисекунди, докато един контакт лети от втория към третия, напрежението няма да има време да се промени забележимо и когато пристигне, кондензаторът ще бъде зареден и дори ако контактът скочи, той все още няма да може да се разреди, така че няма да има отскачане. Е, освен ако не скочи до противоположния контакт, но това, както видяхме, е изключително малко вероятна ситуация.
Но доблестните разработчици на мишки, както ще видим след малко, не търсят лесни пътища.
Нека измерим нашия превключвател с мултицет. Първо откриваме, че нито един от контактите не е късо към захранването. Така или иначе. В покой има 2,5 волта мощност на втория контакт и нула на останалите. В натиснато състояние всички контакти са нула. Това предполага, че разработчиците не са следвали моя път и очевидно вторият контакт служи като вход на процесора, а третият контакт изобщо не се използва. Но най-смешното е, че след натискане на бутона нулата на втория контакт остава още пет секунди! За съжаление механизмът на работа и предимствата на подобно решение и мотивацията на разработчиците остават загадка за мен. Надявам се някой запознат да ме просветли.
По този начин цялата ни съгласувана схема за борба с бърборенето се разбива в празна стена от неразбиране на съвременните схеми.решения. Но всъщност не спирайте същото, когато работата е почти свършена. Така че да запояваме без разбиране.
Ще запоим кондензатора между изводи 1 и 2. И за да измерим ефекта, ще използваме скрипт като този, като леко го коригираме, така че да реагира както на отпускане, така и на натискане на бутона, и премахване на изкуствените времеви ограничения.
0.1uF кондензатор дава време на щракване от 600ms. Тоест, колкото и бързо да натискаме, бутонът ще се „отлепи“ не по-рано от 0,6 секунди. Твърде много е. Чрез линейна екстраполация приемаме, че 3,3 nF ще даде време от 20 ms. Запояваме - и виждаме време от около 100 ms. Но това време включва времето на реалното движение на пръста и без кондензатор не е много по-малко. След като пробвах още няколко стойности, реших да спра на 3,3 nF.
Тъй като нямаше SMD кондензатори, трябваше да запоя крака:

Това всъщност е всичко. Мишката беше успешно сглобена и продължава своята проста, но отговорна служба. Надявам се горната рецепта да е полезна не само за моята мишка.