Sida 1 av 1

Många brytare på få I/O-pinnar

Postat: 18 december 2011, 16:16:48
av LHelge
Jag skulle behöva koppla in ett gäng tryckknappar ~16 st till en microcontroller men har lite tight med I/O-pinnar över. Någon som kan tipsa om ett bra sätt att lösa detta.

Jag har funderat ut två, men jag vet inte om det finns fler:

1. En resistans mellan jord och en AD-ingång, knapparna kopplade som pull-up med olika resistans så det blir en spänningsdelare med olika värde beroende på vilken knapp man trycker på.

2. Pinne nio kopplad med en större resistor till 8 st andra pinnar, 2 tryckknappar per ingång är kopplade som pull-up resp. pull-down. pinne 1-8 pollas två ggr med pinne 9 hög resp. låg

Metod ett har fördelen att det teoretiskt bara behövs en ingång, men jag gissar att man egentligen skulle behöva dela upp det på flera AD-ingångar om man ska kunna känna av flera knappar samtidigt och det är givetvis brist på AD-ingångar också. Metod två klarar av ger 2N-1 knappar för N portar och det kommer förmodligen inte fungera bra att trycka på två knappar som sitter jämter varandra samtidigt.

Fler förslag?

Jag är ute efter något i stil med charlieplexing till lysdioder, 20 knappar på 5 digitala portar hade varit utmärkt!¨

Jag vet det givna svaret, byt till en större processor. Jag ska det, men jag vill kunna testa det på den lilla först.

Re: Många brytare på få I/O-pinnar

Postat: 18 december 2011, 16:19:13
av labmaster
Hur många I/O-pinnar har du över?

Re: Många brytare på få I/O-pinnar

Postat: 18 december 2011, 16:23:42
av thepirateboy
En googling gav detta förslag, kanske kan va nåt http://www.piclist.com/techref/microchi ... 8diode.htm

Re: Många brytare på få I/O-pinnar

Postat: 18 december 2011, 16:28:49
av LHelge
labmaster: Om vi säger så här, desto färre pinnar jag behöver använda här, desto fler kan jag göra annat skoj med!

thepirateboy: Tackar! Precis något sådant jag var ute efter!

Re: Många brytare på få I/O-pinnar

Postat: 18 december 2011, 16:32:22
av labmaster
Om du från början berättat att du har 4 I/O pinnar ledigt så hade jag gett dig samma förslag som thepirateboy :).

Re: Många brytare på få I/O-pinnar

Postat: 18 december 2011, 17:08:55
av jesse
labmaster: Om vi säger så här, desto färre pinnar jag behöver använda här, desto fler kan jag göra annat skoj med!

thepirateboy: Tackar! Precis något sådant jag var ute efter!
Det måste ju vara relativt till vad det ska få kosta i externa kretsar och programvara också. Det går säkert att klara med en enda pinne om det är så viktigt. Men då krävs det lite pyssel. Men funkar det med ett definierat antal pinnar är det ju betydligt lättare att komma på en lösning.

Re: Många brytare på få I/O-pinnar

Postat: 18 december 2011, 17:09:09
av sodjan
Kanske någon av :
http://www.microchip.com/wwwproducts/De ... e=en023500
http://www.microchip.com/wwwproducts/De ... e=en537376
Då får du interrupt m.m. "på köpet".

Det beror lite på om det ska vara en "bra" eller "snål" lösning.

Re: Många brytare på få I/O-pinnar

Postat: 18 december 2011, 20:35:32
av Swech
skiftregister
3 pinnar så har du i princip oändligt med ingångar

Swech

Re: Många brytare på få I/O-pinnar

Postat: 19 december 2011, 08:40:44
av LHelge
Jag ville inte definiera antal pinnar just för att det är en prioriteringsfråga, har en massa andra funktioner som jag skulle vilja få in om de får plats. Men nu har jag fått en massa förslag.

Sweech förslag ligger bäst till just nu då det är hyffsat simpelt att implementera, jag kan få in 16+ både dioder och brytare på totalt 5 pinnar. Men framför allt, de går att få tag på nästan överallt, annars hade port expanders också fungerat bra, där sparar jag ju en pinne till.

Re: Många brytare på få I/O-pinnar

Postat: 19 december 2011, 14:34:09
av jesse
paralellkoppar du shiftregister kan du ha både ingågnar och utgångar på dem. Då behöver du fyra pinnar. clock och latch gemensamt, data in och data ut separat. Shifta ut data med 74HC595 samtidigt som du läser in data med 74HC165. Så har jag gjort med en panel med lysdioder, display och knappar. Samtidigt som jag shiftar ut data till lysdioder, bakgrundsbelysning och display så läser jag in status på knapparna. Länk till projektet.

Re: Många brytare på få I/O-pinnar

Postat: 19 december 2011, 15:42:09
av LHelge
Så jag hade tänkt, men jag delar nog upp latchen.

Vad blir den praktiska skillnaden mellan att använda 74HC595 & 74HC165 jämfört med t ex HEF4094B & HEF2021B.

Drivspänningen är 3.3V och klockfrekvens vill jag komma upp i så hög som möjligt, men minst 1MHz. Verkar ju inte vara några problem med 74HC-kretsarna enligt databladet.

Re: Många brytare på få I/O-pinnar

Postat: 19 december 2011, 17:16:50
av jesse
Den praktiska skillnaden är väl ingen i ditt fall, tror jag?

74HC klarar matning från 2 till 6 volt
4000-serien omkring 3-15 volt men är långsammare.
1 MHz bör de väl ändå klara, antar jag. Datablad enligt NXP visar längsta propagation delay på 230 nS.

Re: Många brytare på få I/O-pinnar

Postat: 19 december 2011, 17:27:46
av LHelge
Finns det någon anledning att inte välja 74HC? Den verkar billigare också.

Re: Många brytare på få I/O-pinnar

Postat: 19 december 2011, 17:30:18
av jesse
Jag väljer alltid 74HC numera. Bara om jag ska driva något med 12 volt kör jag med 4000-serien. Dom är oftast dyrare.