Reading from Piezoelectric disk at 44.1kHz?

Wawa:
A piezo disk can be used as contact microphone, but not to pick up low level sound through air.
A common electret microphone would be my preferred choice.
If you use a board with high gain pre-amp and threshold detector (digital out), then any Arduino can be used.
You might have to tweak the board to reject low frequencies.
Leo..

Common electret microphones usually have a frequency response only to 15kHz. Many go to 20 kHz but you need to check the spec.

Search Youtube for Ants Amplified.

GoForSmoke:
Search Youtube for Ants Amplified.

Typical use of 'contact' microphone.
A piezo disk works well for that.
Leo..

A piezo glued to a large thin diaphragm (wavelength diameter or more) may get that much strain from not loud sounds.

But the same diaphragm if conductive might be read a number of ways.

  • capacitance sensing on a plate close to the diaphragm
  • put a magnet on one side of the diaphragm and a linear Hall sensor on the other, the vibrating conductive surface will change the field.
  • possibly charge the diaphragm and use a linear Hall sensor to read diaphragm vibrations.

Set up a thin reflective diaphragm and bounce a laser beam from it so that the vibrating surface causes the beam to strike or miss a phototransistor. This is taken from the surveillance technique of bouncing IR off an outside window of a room where people are speaking. Glass windows vibrate from voices well enough for this to work.

I may even be possible to pick up ions in a gas or candle flame being vibrated but the flame may need to be in an electrical field to bias the anions and cations in the flame to separate enough to read. In one Veritassium video they use two strongly charged plates to make a flame split in two with each half bent towards one plate -- but that was like 10K volts to make such an extreme.

The flame though, it should respond to very small sounds, no?

OP wants to detect one single 10kHz sine wave.
I doubt that any (relatively heavy) mechanical solution would work.
Small diafragm electret microphones are designed for that.
Leo..

mattjones188:
Yes the piezo will be reading sound. It will be in a very quiet environment and the sound it will be looking for is a chirp that is about 100us long at 10kHz. I am looking to find the time to that first peak. So I could use a clamping diode to stop it from going over 3.3V? Or a BJT? So how could I use an external adc to find the peak? Or is there something out there that is small and can record at 44.1kHz?

A PC soundcard can read at 44.1KHz ( 0.000022676 sec cycle ) and the piezo would need amplifying to be readbale at all, no need for diodes.

OTOH there are Arduino boards with 32-bit 48MHz and faster ARM chips that you can get free audio sketches for.
Search on MKRZero and the PJRC Teensy 3 line. The high end Teensy I saw lst clocks at 180MHz and has an FPU.

An electret mic is probably your best bet, they are sensitive. Take care about static with them.

OP is not interested in 'sound' (sampling).

As already said, use an electret/preamp/threshold detector.
Then feed that into a digital (interrupt) pin.
Any slowduino is fast enough for that.
Leo..

A bit of hardware would help here.

1/ a preamp to get the level to a reasonable value.
2/ A fast precision rectifier. (one doesn't know whether the transient is positive or negative going)
3/ a reference and a comparator.
4/ perhaps a leaky peak hold to give a slow adc a chance to read the value - a bit like a ppm meter

I've made something similar for 'de-clicking' the signal from old scratched vinyl records - it works well.

Good old analog stuff!

Allan

Or you can run a WAV file through a software filter and get the highs.