Många brytare på få I/O-pinnar
Många brytare på få I/O-pinnar
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.
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.
-
- EF Sponsor
- Inlägg: 2109
- Blev medlem: 27 augusti 2005, 20:57:58
- Ort: Borlänge
Re: Många brytare på få I/O-pinnar
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
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!
thepirateboy: Tackar! Precis något sådant jag var ute efter!
Re: Många brytare på få I/O-pinnar
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
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.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!
Senast redigerad av jesse 18 december 2011, 17:09:18, redigerad totalt 1 gång.
Re: Många brytare på få I/O-pinnar
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.
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.
- Swech
- EF Sponsor
- Inlägg: 4750
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
Re: Många brytare på få I/O-pinnar
skiftregister
3 pinnar så har du i princip oändligt med ingångar
Swech
3 pinnar så har du i princip oändligt med ingångar
Swech
Re: Många brytare på få I/O-pinnar
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.
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
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
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.
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
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.
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
Finns det någon anledning att inte välja 74HC? Den verkar billigare också.
Re: Många brytare på få I/O-pinnar
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.