Celé zapojení je uspořádané okolo IC3 PCF8574P,který zajištuje komunikaci po I2C s možností generování přerušení pří stisku klávesy.
Klávesnice je standartní(jeden společný vývod pro všechny tlačítka),který je připojen na VDD,
výstupy jsou připojeny přes snižovací odpory na vstupy IC1 CMOS4532 a IC2 CMOS4030.
IC1 a IC2 jsou zapojeny podle katalogového zapojení CMOS4532.
Jediný rozdíl oproti katalogovému zapojení je úprava detekce tlačítka,tak,aby detekce probíhala
pro všechny číselná tlačítka.
Hvězdička a mřízka jsou přes tranzistorové invertory připojeny přímo na IC3.
Napájení je taktéž standartní:5V/max 15mA.
Je provedeno přes ochranou diodu(proti přepólování) a stabilizační kondenzátor.
Zapojení má dvě indikační LED,první slouží k indikaci správně připojeného napětí a
druhá je ovládána přes I2C(je vhodná ke kontrole komunikace,po power resetu zhasnutá).
Obsazení datového bajtu:
0.bit až 3.bit - obsahuje BCD kód stisklého tlačítka
4.bit - příznak stisknutého tlačítka(0 - stisknuto číselné tlačítko)
5.bit - příznak tlačítka hvězdička(0 - tlačítko stisknuto)
6.bit - příznak tlačítka mřížka(0 - tlačítko stisknuto)
7.bit - Indikační led I2COK(0 - svítí)
POZOR:za žádných okolností neměňte hodnoty 0.bitu až 6.bitu(po power resetu jsou na log.1-pro PCF8574 == vstup)
,pokud byte tam zapsali log.0(PCF8574 == výstup log.0),mohlo by dojít k poškození všech IC,
protože by došlo ke zkratu IC na VSS přes Px IC3(v tomto ohledu pomůže katalog PCF8574 dostupný na:
www.datasheetcatalog.com/ - zapojení vstupně/výstupního "kvazi" portu)
Schéma:
verze pro EAGLE viz.: Poznámka
Potřebné součástky:
R1-vicenásobný odpor typ A hodnoty 100K/2% nebo 5%
R2,R3 - 100K/1%
R4,R5,R6 - 510R/1%
R7,R8 - 1K/1%
D1,D2,D3 -1N40007
C1- 220mikroF/25V
LED - 3mm LED oranžové(NAPOK) a zelené(I2COK) barvy
T1,T2,T3 - BC337-40 nebo BC547C(možná náhrada)
IC1-CMOS 4532
IC2-CMOS 4030
IC3 - PCF8574P
KLAVESNICE - F-KV12KEY(GME)
K-záleží na vás(pamatujte:konektor musí mít pět pinů),já jsem použil šroubou svorkovnici ARK 500/2 a ARK 500/3
Omezení zapojení:
Zapojení nemá žádný pamatovací prvek,takže je potřeba mít dostatečně rychlý řídící prvek,jinak nedojde k detekci stisku.
Poznámka:
Bylo zjištěno uživately,že může dojít k poškození všech IO,pokud se odešle do PCF8574 špatná data.
Řěšením je osazení odporů o minimální hodnotě 1K do datových cest (IC1 - Q1(7) a Q2(6) ; IC2 - QA(3) a QC(10)) vedoucích k IC3 - PCF8574.
Pokud odešlete do PCF8574 na špatné pozice log 0,dojde ke zkratu mezi IC3 a IC1 nebo IC2.
Za tuto chybu se omlouvám.
Komentáře
Není to malinko drbání se za uchem druhou rukou?
IMHO levněji vyjde koupit nejlevnější PS/2 klávesnici a jedním ATmega8 to přetransformovat na I2C, dokonce ani krystal není potřeba, vnitřní RC oscilátor by měl stačit.
Neni nahodou PS/2 klavesnice
Neni nahodou PS/2 klavesnice o neco malinko vetsi nez ona ciselna s 12ti klavesami? Nekomu by se to treba nemuselo az tak hodit ;-)
Existuju aj PS/2 "numpad"
Existuju aj PS/2 "numpad" klavesnice.
"Hardware, ktory sa da
"Hardware, ktory sa da znicit pomocou software si nic ine ani nezasluzi."
Co tak do signalnej cesty zapojit 1k rezistory? Pri tej uvazovanej dynamike signalu to nic neposkodi a pri nespravnom nastaveni to ochrani porty. - HM?
Zbytecne slozite
Nebylo by jednodušší použít dva PCF8574 a připojit je přímo ke klávesnici. Když se COM připoji k zemi, nebudou potřeba ani odpory. Zbyle vystupy můžou ovládat až čtyři LED.