How does a burden resistor work

arduinoresistors

So I've been getting into the world of building circuits with an Arduino controller and a breadboard. I've been working in IT for years, but I'm not super familiar with electronics at this level.

While following a tutorial for building a "knock sensor" using a piezo speaker as the sensor, it connected the piezo speaker from ground to an analog input pin on the Arduino. Then, it connected a 1M ohm resister in parallel to that. All it said was that doing so protected the Arduino from the voltage spikes caused by the knock sensor.

After asking around, I learned that this resistor was called a "burden resistor," but I can't seem to understand how adding a resistor in parallel to the element that generates the voltage would protect the Arduino board.

Can someone explain this to a newbie like me?

This is the webpage that shows the burden resistor: http://arduino.cc/en/Tutorial/Knock

Best Answer

The piezo can generate very large voltages (e.g. 90V) above the operating range (6V) of the ATmega and would blow any input. That said the power is very little and any resistance will load the spike, so that current is absorbed in the 1Mg ohm resister, rather then the hi-impedance input of the ATmega.

Here is a link to Electrical Over-Stress and Electrostatic Discharge Protection of ICs by IT E2E group. It has link to a PDF presentation that does a great job explaining how the chips internals can tolerate or fail such voltages.