Part 4: Initial Results
Serial Terminal Output
After programming the Arduino with code from Part 3, we open a serial terminal window and see a series of data dumps, organized in a grid. With the MatrixArray empty / unloaded, we should see all zeros, or very low readings.
Pressing an index finger down on the center of the MatrixArray, we should see some readings if everything has been connected properly...
Success! In the screenshot at right, we see readings near the center of the Matrix, which vary proportionally with applied force.
Now that we've verified that the project is basically working, we'll get the probes out and take a look at the operation of the system on a digital scope. This will show a clear picture of system operation / timing, and maybe provide some clues about where optimizations could be made.
Setting the horizontal window to display a full MatrixArray scan cycle, and labelling the signals according to Arduino pin names, here's what we observe:
From the image, we can see a finger press picked up on multiple rows / columns (signal A0). We also note that a single scan cycle takes about 57msec to complete. If that's fast enough for our design, then we could stop here. But for many designs, that's far too slow - you probably wouldn't call a touchpad with a 17Hz refresh rate "responsive".
So, let's start optimizing.