Piezo Vibration Sensors

Introduction

Piezoelectric sensors are often used to detect strain, small mechanical forces changes and most applications where vibration, impact and touch need to be sensed. They are also the basis for energy harvesting applications. These
sensors essentially change shape slightly when they receive a small impact or force. This change in shape produces a varying voltage. Piezos have all kinds of applications from sensing footsteps on stairs to the hitting of a drum to the pitter-patter of children’s footsteps in flashing sneakers. You could use two piezos on a table connected to a microcontroller to time the arrival of their signals to determine the position of a knock on the table. Piezos can also be used as microphones.

What You Will Need to Know

To get the most out of this lab, you should be familiar with the following concepts beforehand. If you’re not, review the links below:

Items You Will Need

A Simple Knock Sensor

A Better Piezo Circuit

Piezo sensors are very sensitive. They can produce a wide range of voltages, while also detecting changes as small as a few microvolts. Because of this, they can be difficult to read across their entire sensitivity range. To sense these small changes we can use a transistor as an amplifier. We can also use an operational amplifier, or op amp. I prefer the latter (and it is shown in the next section). But here is transistor method.

PiezoTransistorAmplifer

Using an Op Amp With a Piezo

Below, an op amp (operational amplifier) is used to amplify the piezo’s signal. D1 is a zener diode. It keeps the voltage from the piezo from exceeding 3.3V. It is a good idea to use a 3.3V zener (like the 1n4728) if using a 3.3.V Arduino (like the Nano 33 IoT) and a 5.1V zener diode (like the 1n4733) if using a 5V Arduino (like the Uno). Experiment with different values for R1 (100k – 3M) and R2 (10k – 2M).

Note that the Arduino is not shown here, but it still being used. Simply connect the ground from the Arduino to the ground of this circuit while powering the op amp with the Arduino’s 3.3V output.

PiezoOpAmp

Further Reading

Homebrew Piezo (make piezo sensors in your kitchen)

Arduino drum pads

Piezoelectric sensor on Wikipedia