witam, zastanawiam siê jak najpro¶ciej rozwiazaæ problem detekcji wci¶niêcia jednego z 32 klawiszy (kazdy zwiera sygna³ do masy). najwygodniej by bylo gdyby na jaki¶ port w uc podawany by³ binarnie nr klawisza, a oprócz tego wyzwolone przerwanie. jest kilka mo¿liwo¶ci, i nie wiem któr± wybraæ... dodatkowo, najlepij jakby zajmowa³o to jak najmniej pinów procka. mam kilka pomys³ów:
-uzycie 4 uk³adów 74148, i dodatkowo 16 diod, wtedy wykorzystuje 8 pinow procka (1- przerwanie, 2,3,4,5- nr ko¶ci do ktorej podpiety jest wcisniety przycisk, 6,7,8- nr pinu w ko¶ci ) mozna by jeszcze usun±c 2 piny, przetwarzaj±c nr ko¶ci na postaæ binarn±, ale to wymaga dodatkowego uk³adu albo kiku kolejnych diod, poza tym troche to miejsca zajmuje
-zrobienie ca³o¶ci na diodach, ale to lekki hardcore (ponad 80 diod),
-u¿ycie 2 ekspanderów na magistrali I2C (zalety- nie wykorzystuje zadnych dodatkowych pinów procka bo magistrala juz jest, ma³o miejsca zajmuje, ale do obs³ugi przerwania trzeba dodaæ du¿ego NOR-a na 32 diodach)
-analogowo, tzn mamy 32 rezystory po³aczone w szereg, z jednej strony podlaczone do masy, z drugiej do zasilania, podlaczamy przyciski miedzy mase a kolejne wêz³y , i w celu sprawdzenia który przycisk jest aktywny, mierzymy pr±d p³yn±cy ze ¼ród³a(za pomoc± wbudowanego w uc przetwornika). zalety - proste i ma³e wady - nie wiem na ile to bedzie stabilne.
macie jakie¶ inne ciekawe pomys³y?