Piezo Detect Vibration 20mm
Piezo Vibration Sensor – 20 mm Disc Element
Overview:
A compact, versatile 20 mm piezoelectric disc sensor that generates voltage when subjected to mechanical vibration, impact, or sound. Commonly used in DIY projects for detecting knocks, taps, vibrations, or even simple sound detection with microcontrollers like Arduino, ESP32, or Raspberry Pi.
Key Features:
Element Size: 20 mm diameter ceramic disc
Generates voltage on mechanical stress (vibration/impact)
No power supply needed—works in passive mode
Easy to interface with analog/digital inputs
Ideal for knock sensors, vibration alarms, and sound sensing
Technical Specifications:
Parameter | Value |
---|---|
Piezo Disc Diameter | ~20 mm |
Impedance (at resonance) | ~1 kΩ max |
Interface | Two-wire – connect + to input, – to GND |
Recommended Load Resistor | ~1 MΩ for signal damping |
Output Type | AC voltage pulses on vibration or impact |
Recommended Voltage Input | Connect to ADC via resistor & optional diode |
Working Principle:
Upon mechanical stress (e.g., tap, vibration), the piezo disc produces brief voltage pulses. Use a 1 MΩ resistor in parallel to stabilize the signal and optionally a diode & capacitor for peak detection forum.arduino.cc+7courses.grainger.illinois.edu+7ardumotive.com+7.
Wiring Example – Arduino Uno:
Piezo Element | Arduino Uno |
---|---|
+ (red wire) | A0 (analog input), with 1 MΩ resistor to GND |
– (black wire) | GND |
Optionally, add a diode + 50 nF cap across the piezo for peak hold theorycircuit.com+3electropeak.com+3wiki.keyestudio.com+3courses.grainger.illinois.edu.
Applications:
Knock/tap detection (e.g., knock-to-open doors)
Vibration sensing for machines, vehicles, or structures
Sound-triggered projects (clap detection)
Impact detection and alarms
DIY percussion instruments
Resources:
📘 Arduino Official “Detect a Knock” Example:
Showcases code exactly using a piezo disc on A0 faranux.com+9docs.arduino.cc+9forum.arduino.cc+9
✅ Quick Arduino Code Sketch:
CopyEditconst int piezoPin = A0; void setup() { Serial.begin(9600); } void loop() { int val = analogRead(piezoPin); Serial.println(val); delay(100); }