6st knappar till en ingång...

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
JimmyAndersson
Inlägg: 26579
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

6st knappar till en ingång...

Inlägg av JimmyAndersson »

Tänkte bara tipsa om en smidig grejj som jag nyss gjort:

Jag hade 6st tangentbordsknappar som skulle kopplas till en PIC-krets.
För att spara sladdar och ingångar så byggde jag en modifierad form av D/A-omvandlare med motstånd, (sådana brukar kallas "R2R-stege".)
Knapparna ger varsin egen spänning till "UT" och denna kopplas till en analog ingång på PIC-kretsen som läser av vilken knapp som trycktes ner.

Med den här principen kan man även trycka på flera knappar samtidigt om man vill, men då skulle jag nog ha valt antingen andra motstånd för att få bättre ut-värden. Motstånden valdes förresten för att få så stor skillnad som möjligt mellan varje ut-spänning. (Skulle vilja ha haft lite större skillnad, men jag äger inte alla motståndsvärden i världen...)


Bild

R1 - 180ohm
R2 - 470ohm
R3 - 1kohm
R4 - 1.8kohm
R5 - 3.9kohm
R6 - 1kohm
R7 - 1kohm

Knapparna ger följande spänningar ut, aningen avrundade: 1v, 1.8v, 2.5v, 3.4v, 4.3v. (räknat från knappen vid R5, till den längst till höger.)


Kan förresten tillägga att det fungerar. :)
Användarvisningsbild
Icecap
Inlägg: 26648
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

"Standart" är i övrigt att sätta motstånderna över var sin brytare och sedan sätta brytar/motstånd i serie, mata ena ändan från + och ha en pull-down i andra ändan där man tar ut den analoga spänningen.

På detta vis kan man, med "klurig nog" mjukvara, ta ut alla knapper även om man tryckar på alla samtidig.

Det finns en PIC application note som behandlar just detta.
Användarvisningsbild
Greve Hamilton
EF Sponsor
Inlägg: 544
Blev medlem: 4 september 2004, 15:03:35
Ort: GBG

Inlägg av Greve Hamilton »

Jo, visst är det bra att göra på detta sätt. Speciellt om man har ont om ingångar på mikrokontrollern.
Jag brukar dock göra så som Icecap säger.
Användarvisningsbild
JimmyAndersson
Inlägg: 26579
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Icecap: "Din" lösning var mycket bättre. 'Tänkte inte på det', som det brukar heta. :)
Med min variant får man ju en parallellkoppling av "brytarmotstånden" om man trycker ner fler knappar samtidigt (förutom när knappen utan motstånd trycks ner).

Min koppling är bara en snabblösning som jag ska använda för att testa olika spegelpositioner till mitt laserprojekt. Knapparna kommer från den numeriska delen av ett gammalt tangentbord. Lo-tech på hög nivå... :)
Användarvisningsbild
Icecap
Inlägg: 26648
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

En primitiv lösning på ett problem är fortfarande en lösning!

Att man kan göra det på många andra sätt är en annan sak, jag tycker att du har tänkt till och det är bra! :bravo:
Användarvisningsbild
JimmyAndersson
Inlägg: 26579
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Tack! :)
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

Länk eller nr?
Det finns en PIC application note som behandlar just detta.
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1353
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Inlägg av baron3d »

Hej
Har provat med en koppling som har en kondensator över R6.
Detta för att få en bra avstudsning. Programmet scannade porten kontinuerligt, så fort som det blev samma värde två ggr i rad accepterade jag knapptryckningen.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31460
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Men att ha exempelvis 16 knappar och sen kunna läsa av att allihop är nedtryckta kan ju bli lite svårt om man inte har en ADC med massor av bitar...
Malm
Inlägg: 215
Blev medlem: 22 februari 2004, 12:55:06
Ort: Borås

Inlägg av Malm »

Finns det inte någon trevlig liten IC som kan ta in knapparna som en parellell signal och sedan skicka in den seriellt till PIC:en? Kräver väl dock 2 pinnar på processorn...
Tekko
Inlägg: 9009
Blev medlem: 28 november 2004, 20:19:15

Inlägg av Tekko »

Denna variant används ofta på tex cd-spelare och andra hemelektronik saker.
Användarvisningsbild
Icecap
Inlägg: 26648
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

MadModder: där har du faktisk fel! Använder man rätt värden på motstånden räcker det med en AD på 5 bit för 16 knappar.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31460
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Jaså? Med 16 knappar kan man trycka ner dem i 65535 olika kombinationer. Hur är det möjligt att läsa av alla dessa kombinationer med 5 bitar?

[edit]
Kan det vara det här dokumentet?
Tips och tricks
Med den knappavläsarmetoden de visar där går det inte att läsa av ifall fler knappar är nedtryckta. Man får alltid det värde som knappen nedtryckt närmast PICen ger.

Däremot visar de en bra knappmatrisavläsning med liknande metod. :)
Användarvisningsbild
Icecap
Inlägg: 26648
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Javisst...får skylla på väckarklockan som ringde helvetes tidigt fastän den borde ha haft vett att vara tyst...dagen började liksom .... fel ("#¤&&/"%&#"% typ)

Inte den AN jag tänkte på och då MicroChip är nere för planerat maintenance får jag hänvisa senare.
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

Hittat appnoten?
Skriv svar