Sida 1 av 1
Tangentbordsfråga
Postat: 3 maj 2006, 12:29:24
av thepirateboy
Hur brukar ni ansluta tangentbord till mikrokontrollers? Tänker då på ett 4x4 eller liknande. Detta är ett enkelt sätt men 74C922 är ju så larvigt dyr, iaf på ELFA.
http://www.isk.kth.se/kursinfo/6b2266/keypad/keyenk.htm
Kan det finnas andra enkla lösningar som funkar lika bra? Har tänkt att koppla ett tangentbord på en Atmega 128.
Postat: 3 maj 2006, 12:35:29
av lgrfbs
det går fint att bygga ett tagentbord med motstånd och sedan läsa av
med en AD omvandlare i MCU kretsen.
Om Atmega 128 har AD vet jag inte.
Postat: 3 maj 2006, 12:50:47
av Icecap
Man kan göra på olika sätt, ska du ha ett 4x4 behöver du egentligen 8 pinnar på processorn varav 4 av dom kan användas till annant också, t.ex. LCD-modul kommunikation. Du behöver även 4 st 1N4148 eller liknande samt 4 10K motstånder.
Sen gör du dekodningen i mjukvara, det är ganska enkelt och att ha extern krets till dekodning är ofta onödigt.
Att dekoda t-bord via AD-omvandlaren fungerar inte alls bra eller enkelt när t-bordet är en matris men det kan nog gå om man klurar nog, jag tror bara att det blir väldigt besvärligt att få stabilt.
Postat: 3 maj 2006, 12:55:29
av sodjan
Ta beskrivningen på länken av hur 74C922 fungerar och skriv det
som AVR kod istället.
Postat: 3 maj 2006, 12:59:10
av thepirateboy
Ok, pollar man bara då och kollar om någon tangent är nedtryckt, och undersöker sedan vilken av tangenterna som är nedtryckt, grovt sett?
Edit: Ja, beskrivningen står ju i länken som sagt.
Postat: 3 maj 2006, 13:02:04
av DragonOrb
Såhär har jag gjort ialafall.
Först lägger man ut 5volt på första kolumnen, sedan läser man av alla knappar på första raden. Ifall man inte får napp där så lägger man första kolumnen låg och lägger 5volt på andra kolumnen och skannar igenom rad 2.
sen fortsätter man så.
Postat: 3 maj 2006, 13:05:02
av Icecap
För att snabba upp vid "ingen tryckning" kan man lägga ut '1' på alla kolumner och kolla om någon rad är '1', i så fall måste man dekoda, i annat fall kan man köra vidare utan åtgärd.
Postat: 5 maj 2006, 16:10:46
av Samot
ska det vara 4x4 är det ju bara att använda interna pullup och använda 4 utgångar på processorn jorda en unik kombination av de fyra benen. Behövs några dioder också.
Postat: 5 maj 2006, 16:32:35
av Greensilver
Jag byggde en lös modul till det eftersom man rätt ofta bara vill testa lite och då är det lite trist att behöva koplpa upp allt på breadborden.
http://www.elektronikforumet.com/forum/ ... hp?t=11082
Modulen lägger ut knappens nummer i ordningen på en fyrabitars buss, färdigt att läsa av från mikrokontrollern i ens projekt. Avkänningen sker genom att 9 pinnar (3 för x och 4 för y) ligger med aktiverade pull-up motstånd. När en knapp strycks ned sluts respektive rad och kolumn mot en gemensam jord.
Postat: 5 maj 2006, 17:31:16
av bearing
Vad har man dioderna till?
Har inte jag behövt...
Postat: 5 maj 2006, 17:37:01
av Samot
Inte jag heller
redigerade mitt inlägg lite, den meningen är till en annan grej! sorry, såg inte det!
Edit: Varför behövs 8 ben Icecap?
Postat: 5 maj 2006, 21:06:19
av Icecap
4x4 keyboard = 4 pinnar ut + 4 pinnar in = 8 pinnar. Dioderna är till för om man tryckar ner mer än 1 knapp åt gången, utan dioder kommer det då att vara risk för att 2 utgånger på var sitt nivå kortsluts. Ingen katastrof kanske men vad blir resultatet? '0'? '1'? '½'?
Postat: 5 maj 2006, 22:07:19
av thepirateboy
Tackar för svaren, jag ska koppla upp allt imorgon med en Atmega 128, har precis varit och etsat adapterkort till denna då den bara finns i TQFP.