Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
alex Začetnik
Pridružen/-a: Čet Jan 2004 15:10 Prispevkov: 14 Kraj: Rečica ob Savinji
|
Objavljeno: Čet Jan 29, 2004 8:00 am Naslov sporočila: I2C vmesnik za tipkovnico |
|
|
Zanima me, če obstaje kakšen I2C vmesnik, ki bi čital matriko tipkovnice in podatke posredoval procesorju po I2C protokolu. Omogočati bi moral najmanj 8 x 5 matriko (40 tipk).
Če kdo ve za kaj takšnega, naj se oglasi.
Lep pozdrav
Alex |
|
Nazaj na vrh |
|
|
Silica Profesionalec
Pridružen/-a: Ned Jan 2004 22:43 Prispevkov: 91 Kraj: Ljubljana, Dunajska 159
|
Objavljeno: Čet Jan 29, 2004 9:59 am Naslov sporočila: |
|
|
Predlagam ti uporabo Philipsovega PCA9555. Je 16 itni I2C I/O port,
pa se moznost interupta ima. Ostanejo se ti trije I/O pini na katere
lahko obesis se kaksno ledico. Ce prijavis pri Juretu v SE clanek
dobis pri meni 1 vzorec v SO ohishju.
Se link za datasheet:
http://www.semiconductors.philips.com/pip/PCA9555BS.html
LP Tomaz |
|
Nazaj na vrh |
|
|
IR ELECTRONIC-Armin Začetnik
Pridružen/-a: Sre Jan 2004 16:34 Prispevkov: 11
|
|
Nazaj na vrh |
|
|
alex Začetnik
Pridružen/-a: Čet Jan 2004 15:10 Prispevkov: 14 Kraj: Rečica ob Savinji
|
Objavljeno: Čet Jan 29, 2004 12:18 pm Naslov sporočila: |
|
|
Na žalost se z nobenim od teh dveh IC-jev ne da brati tipkovnice s 40 tipkami. Tipke so zvezane v matriko 8 x 5. Torej, tipka se ne sklene od enega pina proti masi, ampak so dovoljene vse kombinacije v matriki.
Omenjena čipa sta namenjena ekspanziji porta, zelo uporabna zadeva, vendar ne za mojo aplikacijo.
Lep pozdrav
Alex |
|
Nazaj na vrh |
|
|
Silica Profesionalec
Pridružen/-a: Ned Jan 2004 22:43 Prispevkov: 91 Kraj: Ljubljana, Dunajska 159
|
Objavljeno: Čet Jan 29, 2004 1:15 pm Naslov sporočila: |
|
|
Alex, narobe razmisljas. Naredis sledece:
8 IOjev konfiguriras kot INPUT in jih na koncu linije zakljucis z pull up
upori, recimo 100K. 8 linij konfiguriras kot OUTPUT in v mirovnem
stanju postavis vseh 5 na logicno 1.
Algoritem branja tipke je sledec:
postavis prvi OUTPUT v 0 in preberes vseh 8 INPUTov. Ce se na katerem
od INPUTov pojavi 0, izracunas pozicijo tipke v matriki ki je bila sklenjena,
ca pa so vsi inputi 1 nadaljujes z postavitvijo 0 na drugem OUTPUTu
in tako do konca matrike. Tako v petih korakih (5x vpis in 5x branje)
preskaniras celotno matriko.
Mislim da je bil princip skeniranja matricne tipkovnice ze nekajkrat
opisan v SE, lahko pa me poklices na telefon ki ga imas v tvojem inboxu,
in ti bo z veseljem razlozil.
LP Tomaz |
|
Nazaj na vrh |
|
|
IR ELECTRONIC-Armin Začetnik
Pridružen/-a: Sre Jan 2004 16:34 Prispevkov: 11
|
Objavljeno: Čet Jan 29, 2004 1:23 pm Naslov sporočila: |
|
|
Caki, kako mislis vse kombinacije?
Ponavadi so tipke vezane v "vrstice" in "stolpce".
In posamezne vrstice in stolpce vezemo na pine.
In I2C na drugi strani.
Vec info
Armin |
|
Nazaj na vrh |
|
|
Gost
|
Objavljeno: Čet Jan 29, 2004 7:32 pm Naslov sporočila: TIPKOVNICA |
|
|
lp!
Kako deluje program za tipkovnico ki je vezana v matrico je nazorno narisano v Helpu Bascom-a,prav tako je podan samples za branje tipkovnice.Za Bascom AVR obstaja ze narejena LIB. za branje tipkovnice katera je priklopljena na PCF8574 (IO ekspander).
Mislim da ni noben problem priklopiti tipkovnico 8X8 pod pogojem da je na voljo dovolj pinov.
Pozdrav
Vlado |
|
Nazaj na vrh |
|
|
Silica Profesionalec
Pridružen/-a: Ned Jan 2004 22:43 Prispevkov: 91 Kraj: Ljubljana, Dunajska 159
|
Objavljeno: Čet Jan 29, 2004 7:50 pm Naslov sporočila: |
|
|
Tocno to Vlado, PCA9555 je v bistvu dvojni PCF8574, novejsa familija z
nekaj dodatnimi funkcijami ter 16 IO pini, tako da lahko z njim naredis
8x8 matriko, kar pomeni 64 tipk.
LP Tomaz |
|
Nazaj na vrh |
|
|
alex Začetnik
Pridružen/-a: Čet Jan 2004 15:10 Prispevkov: 14 Kraj: Rečica ob Savinji
|
Objavljeno: Pet Jan 30, 2004 7:55 am Naslov sporočila: |
|
|
Silica, hvala za pojasnilo. Nisem razmišljal v tej smeri. Stvar mi je sedaj popolnoma jasna. To je zelo enostavna fora za branje matrike.
Do sedaj smo imeli tipkovnico priključeno preko 74HC4017 in 74HC165.
4017 je dekadni števec in postavlja 8 izhodov po vrsti na logično 1.
HC165 je 8 bitni šift register, ki pretvarja paralelne podatke v serijske.
Zadeva deluje, vendar je nekoliko težja za programiranje in zasede tudi nekoliko več pinov procesorja kot I2C.
Prav zaradi tega je ta varianta z I/O ekspanderjem bolj elegantna za programiranje.
Še enkrat, hvala za odgovore.
Lep pozdrav
Alex |
|
Nazaj na vrh |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Pet Jan 30, 2004 12:43 pm Naslov sporočila: Še en način, kako realizirati matrično tipkovnico |
|
|
Moj odgovor je v priloženem zipanem trik.doc file-u. To pa zato, ker je v tekstu slika-shema, ki pomaga.
Mimogrede, očitno tale forum zahteva, da priložene file- zipamo, kar je prav za prav pametna poteza! Šparaj!
Pozdrav
Vilko |
|
Nazaj na vrh |
|
|
Silica Profesionalec
Pridružen/-a: Ned Jan 2004 22:43 Prispevkov: 91 Kraj: Ljubljana, Dunajska 159
|
Objavljeno: Pet Jan 30, 2004 1:00 pm Naslov sporočila: |
|
|
Vilko, tole ne bo dobro delovalo, ko postavis prvo kolino na 0,
je napetost na prvi vrstici, 0,7V ko ni pritisnjena nobena tipka in
0V ko je katera od tipk v vrstici sklenjena. To pa je premalo z
prozenje logicnega vhoda.
Matrika bo delovala, ce odstranis diode, kolone eno za drugo
postavljas na 0 in po vsaki postavitvi beres vrstice.
LP Tomaz |
|
Nazaj na vrh |
|
|
vilko Profesionalec
Pridružen/-a: Pon Jan 2004 11:54 Prispevkov: 807 Kraj: Ljubljana
|
Objavljeno: Pet Jan 30, 2004 5:11 pm Naslov sporočila: |
|
|
To je delovalo, sem preizkusil. Res pa da sploh nisem dal poolup uporov. |
|
Nazaj na vrh |
|
|
|