voltage drop across multiple (duplicate) sensors (FSRs)

Hallo

I have constructed a prototype multitouch grid, using a column and row arrangement of electrodes, separated by Velostat. Each column is individually powered (digital pin set HIGH) in sequence, while every row is read in turn (per step). So, electrode column 1 goes HIGH, the rest are LOW, then each grounding electrode (rows 1 - 3 eg.) is read in turn. Then the cycle is repeated for column 2 (all others LOW). This works as expected, and the code is pretty simple, hence it's absence here. My question is this: how can I prevent a voltage drop when activating/touching several rows on the same column, i.e. multiple vertical touches. I understand that each charged column will have a finite amount of current, so if I activate multiple touches on that column I will see a decrease in each of the analog readings for those touches.

This behaviour is not seen when touching different columns on the same row (multiple horizontal touches).

Thanks for looking.

Brendan

You need to post a diagram of your circuit, or we'll be at cross purposes. You mention
current flowing for instance, which I would not expect for a simple array read by
analogPins as they take no measurable current.

Hi Mark
thanks for the reply; a sketch of the circuit is attached.
The pseudo code is as follows:

set all Digital pins low
set D1 HIGH, read A1 - A3
set D2 HIGH and previous D pin LOW, read A1 - A3
set D3 HIGH and previous D pin LOW, read A1 - A3
repeat

It may not be important, and I would never suggest any nefarious behaviour by this excellent community, but I'm required to say that the concept and application is patent pending and under IP protection by my institution. I'm prototyping a multitouch interface, nothing earth-shattering or Nobel-worthy :wink:

If I touch A1/D1, then A1/D2 and A1/D3, there is no drop in the 3 analog readings; if I touch D1/A1, then D1/A2 and D1/A3 the analog readings progressively decrease. I kind of understand WHY this is happening, as in my OP, but I suspect that, from my initial research, the solution may involve a sophisticated matrix of capacitors. Am I right?

Thanks again.

Brendan

newMatrix.png

oops, slight error in the diagram: each analogue pin is grounded individually. Sorry.

During scanning, do you set the unused D-lines as INPUT (high impedance).
Setting them LOW is like shorting the D-line to ground.

What is the resistor value, and what A/D values are you getting.
Leo..

Hallo Wawa

that's a good point, that I overlooked in my original idea. You're right, I am just setting them LOW. Each resistor value is 220 Ohm, and that is giving me almost full scale 10-bit A/D, or ~ 30 to 900. However, in the problem scenario (D1/A1, then also D1/A2 then D1/A3), each successive reading drops by around 300, so A1 reads 900, then A1 and A2 read ~ 400, A1, A2 and A3 read ~ 200.

I will try "true" switching as you suggest (setting unused pins to INPUT). And also try larger resistor values (< 10k Ohm).

As you can tell, I'm more of an artist and less of an engineer (although many of you here are clearly both!!)

Many thanks

Brendan

Do a search for diode matrix key board or N-Key rollover.
Dwight

Yes, float all the columns but one, then you won't get so much interference from the others unless
you press multiple points on the same column. Without having a diode at each grid point you
can never get full independence from other grid points in a resistive touch sensor like this.