Go Down

Topic: Mutli-plexing ADC inputs (Read 1 time) previous topic - next topic

Owen_vallis

Hello,

I have an 8x8 button pad project (similar to the Monome) where I'm trying to add pressure sensitivity to the buttons. Given that there are 64 buttons, even with the Mega I needed to do some multiplexing.

As of right now, I basically scan one of the 8 rows with 5V, and then read all 8 buttons along that row into the first ADCs (0-7). I also added the diodes to the button matrix to prevent ghosting.

To get the "pressure sensitivity", I used some 10e-4 conductive spandex fabric, and cut it into little donuts for the button pads. When you squish it between the button pads and the contacts, it goes from (~[ch8734] - ~100ohms). It seems to work really well if I'm only reading one button on a row ( I get close to 0-950); however, if I press two buttons on the same row simultaneously it affects the ADC input value for both buttons (effectively halving values, so the range drops to ~0-450). Holding more along the same row seems to compound the effect.

I think it has to do with the way I'm multiplexing the buttons. Although I'm only looking at the value of a single button at a time in the ADC, each row is connected to the same 5V and ground source. So I think that the resistance values for all buttons on a single row affect each other. I thought the Diodes might help isolate the changing resistance of each button in the same way it prevents the ghosting... but it doesn't seem to be the case.  It seems like I might have to isolate every button (all 64, yikes!!) using 4051 multiplexers or something of the like.

As to a schematic, its really the exact same circuit as PCBs like the Sparkfun button pads, or the Monome/Arduinome pads + the conductive fabric.

Here is a link to a similar project form a few years back. There is not a lot of info unfortunately.

http://cnmat.berkeley.edu/user/adrian_freed/blog/2007/07/11/adding_pressure_sensitivity_monome_keys

This commercial device seems to come close to the 64 inputs, so there must be a way to do it ( I just hope its not using lots of 4051s : | )

http://www.icon-global.com/ShowPro.aspx?ID=100

Any thoughts would be helpful

AltairLabs

#1
Jan 23, 2011, 07:19 pm Last Edit: Jan 23, 2011, 08:44 pm by AltairLabs Reason: 1
Quote
As to a schematic, its really the exact same circuit as PCBs like the Sparkfun button pads, or the Monome/Arduinome pads + the conductive fabric.
can you give a link?

Sounds like an X-Y matrix.  When you "scan" with 5v you are activating a row from what an IO pin?  Does the "scan" voltage hold up when several buttons are down?  You can check this without a scope by stopping the scan in software.

Owen_vallis

#2
Jan 23, 2011, 10:51 pm Last Edit: Jan 23, 2011, 10:55 pm by Owen_vallis Reason: 1
I am driving each row of an I/O pin (40ma max right?) A single row looks like this. The simu software says the whole thing is only pulling .300 ma or so (something doesn't seem right with that though?)

http://www.flickr.com/photos/53288465@N07/5382391714/

As there are 8 of these rows, I put the diodes in to prevent "ghost" presses. I'll check the voltages with a multi meter on Tuesday.

The circuit is based off of this

http://
http://docs.monome.org/doku.php?id=tech:source_files:40h:grid_layout


Go Up