Аз понеже не знам какво е матрица за бутони ще предложа това което ми дойде на необразования ум: да кажем, че имаш 8 порта, които ще ползваш. Ако използваш по 1 бит за бутон имаш 8 варианта, ако използваш по 2 - 28, ако използваш 3 - 56. Т.е. твоите 45 бутона можеш да ги събереш в тези 8+28+56=92 избора (даже остават).
Връзваш най-честно използваните бутони за по един порт, следващите с по 2 и най-рядко използваните с по 3. Да кажем, че си именувал бутоните по честота на използването, т.е. бутон 0 е най-често използван, бутон 44 - най-рядко. Задаваш им следните стойности:
0 - 0000 0001
1 - 0000 0010
.
.
.
7 - 1000 0000
8 - 0000 0011
9 - 0000 0101
10 - 0000 1001
.
.
.
14 - 1000 0001
15 - 0000 0110
16 - 0000 1010
.
.
.
35 - 1100 0000
36 - 0000 0111
37 - 0000 1110
.
.
.
41 - 1110 0000
42 - 0000 1011
43 - 0001 0110
44 - 0010 1100
Така повечето комбинации няма да работят, понеже ще ги разпознаваш като по-рядко натискан бутон, например 0+1 ще се разпознава като 8, но при 35+36 имаме 1100 0111, което е уникална комбинация от входове, така че ще ги разпознаеш като два бутона едновременно. При внимателно нареждане (на бутоните с по 3 входа) може да се повиши малко броя на комбинации, но като цяло ще може да се натиска само по 1 бутон май
Поздрави