When we have the good fortune of using a sensor
with a high level voltage and a low output impedance, we
can just connect it to one of the ADC pins of an Arduino
and get 10 bits of resolution with little effort.
However, if we want to push the limits of sensitivity or
take advantage of sensors which have high output
impedance, small scale signals, or small signals riding on a
large DC offset, we can leverage an analog front end to
condition the signal and get the most value from the 10-
bit ADC in the Arduino.
Two essential devices dramatically simplify the design
and implementation of an analog
front end: the op-amp and the
instrumentation amplifier. The
LM358 op-amp is the perfect
general-purpose version and the
AD623 is the perfect general-purpose instrumentation amplifier
which play well with an Arduino.
Of course, there is often more
than one right answer to any design
challenge and there are multiple
ways of interfacing sensors to a
microcontroller. The op-amp and
instrumentation amplifier are sharp
arrows to have in your quiver of
To ensure the integrity of the
measurements in this article, I
incorporated a cat scanner to
monitor each operation.
Figure 10 shows the bench set
up with the cat scanner in
FIGURE 9. Shows the same experiment as before. I touched the sensor
briefly and recorded the unconditioned voltage from the sensor, the
voltage from the pre-amp, and the voltage from the instrumentation
amplifier. You can see the impact of the higher sensitivity on the
smoothness of the plots. Top trace: Resolution of 0.3°C from the TMP36.
Middle trace: Resolution of 0.1°C from the pre-amp. Bottom trace:
Resolution of 0.01°C from the instrumentation amplifier.
FIGURE 10. Maxwell — the cat scanner — monitoring every
aspect of this experiment.
44 February 2016