I'm trying to interface a large number of contacts (<=1024) under velostat with an arduino DUE. I have a large array of pads and I want to detect when any one point goes high (think of this as a super low-resolution single-input touchscreen).

What is the best option for interfacing with these inputs? Are there any encoders that are large enough to handle this?



I would do this with scanning, in much the same way that a keyboard is scanned, and also similar to the way large memory is arranged internally in rows and columns.

Your 1024 contacts can be arranged in a 32 row x 32 column array, and there are I2C shift registers and I/O port extenders that can be used to help you scan a large array like this and read it from the Arduino

  • \$\begingroup\$ Unfortunately the contacts are single point (the source is on the other side of a velostat sheet and can't easily be subdivided into rows). We also found that polling was not sufficiently fast to detect the inputs so we're trying to run an interrupt (possibly a second pressure sensor layer just for initiating an interrupt) \$\endgroup\$
    – pdel
    Mar 3 '14 at 17:59
  • \$\begingroup\$ the pressure sensor is a good idea, you can make it coarse so that each sensed region covers say 32 or 64 contacts. Then when an interrupt occurs you can quickly scan the 32 or 64 contacts covering just the region of interest. \$\endgroup\$
    – Brian Onn
    Mar 4 '14 at 3:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.