либо длинное нажатие либо короткое ...не помню, но защита стоит
Да не.. Это не годится. Для 8 кнопок задействовал всего одну ногу и один провод от кнопок к процу. А некоторые и по 16 цепляют и нормально работает. Цепляете на ADC. Кнопки подключены к делителям. То есть, если кнопки не нажаты, на проц. подается полное напряжение. При нажатии кнопки напряжение, подаваемое на проц. зависит от того какая кнопка нажата. Ну это наверняка Вам известно. В цикле проц. постоянно опрашивает кнопки, валкодер и прочие узлы. Признак нажатой кнопки - напряжение на входе проца меньше чем скажем 3,1 вольта. Включаем паузу на пару мсек или больше (зависит от качества кнопок) затем измеряете напряжение, определяете что нажали, ждете пока напряжение снова поднимется до 3,1 вольта. После чего выполняете команду. Паузу, конечно делаете не в виде delay(), а, например опрашиваете валкодер или вывод на экран. За это время напряжение на кнопке устаканится...
Никаких неприятностей, абсолютно. Кстати, для настройки делителя кнопок, паяете любые резисторы по расчету, не заморачиваясь с допусками. Запускаете небольшую программку, которая выдаст Вам на экран напряжение, которое получается при нажатии каждой кнопки. Эти значения и вводите в программу. Значения резисторов делителя принимаете исходя из следующего - ряд напряжений должен быть логарифмическим. То есть, например, первое значение 10, второе 10*1,5, третье 10*1,5^2 и т.д. Коэффициент зависит от количества элементов ряда.