Подтяжка резисторами выходов осуществлена?
#define DIS !ACT
Что за восклицательный знак? в чем проблемя написать HIGH?
boolean kst[KEYS] = {0}; у вас в коде в 0 будет только 3 ключ - но это не точно, компилятора под рукой нет, лучше инициализируйте явно.
ну так у вас при поднесенных ключах не войдет в If на 38 строке, и прога пропустит и пойдет дальше без ифа
46 String request;
47 for (int i = 0; i < 3; i++) {
48 Serial.println (request);
49 }
А это что за мусорная строка и зачем ее 3 раза выводить?