Tangentbordsfråga

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Tangentbordsfråga

Inlägg 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.
Användarvisningsbild
lgrfbs
Inlägg: 7313
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Inlägg 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.
Användarvisningsbild
Icecap
Inlägg: 26650
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg 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.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Ta beskrivningen på länken av hur 74C922 fungerar och skriv det
som AVR kod istället.
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Inlägg 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.
DragonOrb
Inlägg: 381
Blev medlem: 16 oktober 2003, 21:57:19
Ort: Flen

Inlägg 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å.
Användarvisningsbild
Icecap
Inlägg: 26650
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg 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.
Samot
Inlägg: 311
Blev medlem: 15 november 2004, 18:32:13

Inlägg 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å.
Användarvisningsbild
Greensilver
Inlägg: 1305
Blev medlem: 21 januari 2005, 21:24:57
Ort: Sverige
Kontakt:

Inlägg 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.
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Inlägg av bearing »

Vad har man dioderna till?
Har inte jag behövt...
Samot
Inlägg: 311
Blev medlem: 15 november 2004, 18:32:13

Inlägg 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?
Användarvisningsbild
Icecap
Inlägg: 26650
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg 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'? '½'?
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Inlägg 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.
Skriv svar