1 z 32?

Feb 03, 2007 13 Replies

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?



nuclear napisał(a):

Dołożenie drugiego procka tylko do obsługi klawiatury. Niby wydaje się że to przerost formy nad treścią, ale... Zalety:

-małe (jeden układ np. w TQFP),

-tanie (niewiele drożej niż 4x74148, dużo taniej niż dwa enkodery na I2C),

-komunikacja z głównym procesorem tak jak Ci najwygodniej,

-możliwość przerzucenia części zadań z głównego procesora (odkłócanie klawiatury, detekcja długiego/krótkiego naciśnięcia itp.) Wady:

-zaraz zostanę zlinczowany za pchanie wszędzie mikroprocesora ;)

U¿ytkownik "nuclear" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:eq2pjj$slc$ snipped-for-privacy@news.onet.pl...

Hmm mo¿e u¿yæ gotowca z klawiatury?? tylko wtedy klawa musiala by miec kilka mas...

U¿ytkownik "jarek" snipped-for-privacy@poczta.fm napisa³ w wiadomo¶ci news:eq2t34$p5h$ snipped-for-privacy@opal.futuro.pl...

to odpada, masa jest wszedzie ta sama, i sie zmienic tego nie da

U¿ytkownik "Darek R." snipped-for-privacy@w.pl napisa³ w wiadomo¶ci news:eq2rfn$2hm$ snipped-for-privacy@news.onet.pl...

hehe, to juz by by³ trzeci proc na 1 p³ytce, ale przemy¶le to (tyle ze osobi¶cie nie toleruje smd jak nie trzeba...)

Wiesz, widzia³em rozwi±zanie z rezystorami np. w wie¿y... . Sprzêt dzia³a pare lat i klawiatura nie g³upieje. W przypadku zwierania do masy zyskujesz od razu priorytet (wiêkszy dla przycisków bli¿ej procka). Napiêcie na wej¶ciu przetwornika bêdzie siê zmieniaæ w zakresie od 0 (wci¶niêty pierwszy przycisk) do Vcc i bêdzie przybieraæ jedn± z 32 warto¶ci. Przetworniki z regu³y maj± z 8..10 bitów, wiêc zapas masz spory, nie powinno byæ problemu z okre¶leniem który to przycisk. Ewentualnie mo¿esz stworzyæ dwie takie ga³êzie po 16 przycisków itp....

Pozdrawiam Konop

No coz, jesli ekonomia uzasadnia to czemu nie.

Ale .. 4 rejestry przesuwajace 8 bitowe i zrobione.

I nawet nie trzeba sie odklucaniem przejmowac..

J.

U¿ytkownik "Konop" snipped-for-privacy@gazeta.pl napisa³ w wiadomo¶ci news:eq2uq3$dgd$ snipped-for-privacy@inews.gazeta.pl...

wiem, jedyne co to nie chce mi sie liczyæ tych rezystorów, bo to jednak nie mog± yæ takie same.. ale mam to w alternatywie

dobra, powiedzmyze strawa sie zama rozwiaza³a - okaza³o sie ze jednak musi byæ mozliwo¶c wykrycia faktu wci¶niecia wiecej niz jednego klawisza, wiêc biore po prostu 2 multipleksery 16 wejsciowe i i tak kilkanascie razy na sek sprawdzam stan wej¶æ, nie powinno byæ to problemem. w takiej sytuacji problem traci racje bytu. pozdrawiam

a mo¿e procesor od klawiatury PC?, tyle ¿e bêdzie trudniej chyba kupiæ jak uC.

wczoraj naprawia³em jakie¶ urz±dzonko i mia³o 82C79 jako sterownik wy¶wietlacza i czytnik klawiatury.

U¿ytkownik "nuclear" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:eq32lj$lrk$ snipped-for-privacy@news.onet.pl...

Wychodzi, ¿e 40/44 nó¿kowy mikrokontroler by³by tañszy i lepszy

Ten sposób jest prosty i był wykorzystany w gazetce "Nowy elektronik". Pozdrawiam Michał

nuclear napisał(a):

Pomyśl alternatywnie o rejestrach przesuwnych - wpisujesz stan klawiszy równolegle jako 32 bity (4 rejestry po 8 bitów ew. 2 po 16) i wysuwasz szeregowo. Do obsługi tego potrzebne są tylko 3 linie: sterowanie zatrzaśnięciem stanu klawiszy (od procesora), zegar transmisji (od procesora) i dane (do procesora). Zdecydowanie mniej niż do kontroli 2

16-bitowych multiplekserów.

Dwie klawiatury matrycowe 4x4. Prosciej sie chyba nie da.

m.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required