Это тестовая программа!
Основное достоинство данного метода - простота схемной и программной реализации.
Программу, кстати, подправил (теперь v1.1) - показывается именно задержка заряда ёмкости в тактах.
Опрос входов идёт каждый такт 10 раз подряд и если, например, к третьему опросу ёмкость зарядилась,
то на индикаторе в строке "Тормоза:" вы увидите цифру "2" - см. фото.
Если задержка >9 - увидите "F"....
О резисторах подтяжки: при F = 4MHz и R = 10k задержка - 1 такт, ложных срабатываний нет, но можно
сказать - "на грани", при R = 20k задержка - 2 такта, при R = 56k ёмкость монтажа и пр. в моей
данной конструкции вызывала "нажатие"....
Очевидно также, что при F = 16MHz и R = 20k задержка будет 6...8 тактов. Опрос в этом случае
желательно производить в 3..4 тактах, ибо в первом ёмкость монтажа может не успеть зарядиться
(а скорее всего так оно и будет!).
Радикально увеличить "ёмкость нажатия" можно разместив в центре сенсора "земляной" пятачок.
Насчет команды "NOP" после включения резисторов подтяжки - см. Figure 24 в даташите tiny2313.
О защите входов - это личное дело каждого, а желающие могут почитать вот это и попробовать
применить TVS-диоды....
И последнее - алгоритм на "пальцах":
1. Выдаём "1" на подтягивающие R
2. NOP (холостой такт)
3. Читаем состояние - где "0" - есть касание, где "1" - нет.
ВСЁ!!!
О других вариантах реализации - пытаюсь сделать подобное устройство на tiny45. Чувствительность
метода конечно больше - у меня с сенсором 50*30мм чувствует прикосновение через изоляцию (бумагу).
И это при том что прикосновением считается изменение параметров в 1,5 раза! А если ловить изменение
на 5..10% ?
Теперь о грустном - программная реализация посложнее. И главное - невозможен одновременный опрос
нескольких сенсоров - только последовательный. А если у вас матрица из 12 клавиш ?
Ещё одна тонкость - а если при вкючении есть касание сенсора (случайно или юзер - дуб)?
Для себя я решил - это для одного-двух сенсоров с изоляцией (пластик до 1мм).