I'm working on an ultrasonic ranging system. I've gotten some help from the members of this forum in the past to help clean up some signal issues, and to add some bypasses to clean up the power a little. Given that I'm not a EE, any help I get is deeply appreciated. Honestly, I'm just a dude with a soldering iron, an account at Mouser, and too much time on my hands.
So the question: How do I reduce the ring time? See the attached o-scope reading -- this is a pretty clean signal, as signals go, showing a solid ring from the initial transmit, then a good response ping a moment later. The trick is that if the target is too close, the response gets buried in the ring, and I can't detect it.
And the other question, which is like the first: Is there any way to clean up the signal a bit? Can I reduce the ring while improving the strength of the return, at the same time?
I've attached a complete circuit diagram (minus the voltage regulator, which is pretty straightforward).
- Power comes in on the left; supplies the amplifier.
- Amplifier / filter circuit lives in the middle. Nominally, it's a band pass filter that allows 40kHz to get through, while amplifying that 40kHz in the process.
- The headers on the right interface to the Arduino board to provide control to the multiplexer, and to provide a signal to the MOSFET that drives a "ping" signal.
- The headers across the top of the board go out to 4 sensing elements. Note that I've added a ground-filter to the return-side ground, which seemed to clean up the signal a bit, at the expense of a little overall amplitude.
- Switching MUX channels causes some noise on the line, but it fades pretty quick; because it's a single activity, it only cycles the transmit piezo element for an instant, so I can wait for 2ms before transmitting the ping, and there's little or no ill-effects from the switching transient.
... So any thoughts? Are there obvious ways that I can improve on this?
Thanks again for the help, all.
Dan
So the question: How do I reduce the ring time? See the attached o-scope reading -- this is a pretty clean signal, as signals go, showing a solid ring from the initial transmit, then a good response ping a moment later. The trick is that if the target is too close, the response gets buried in the ring, and I can't detect it.
And the other question, which is like the first: Is there any way to clean up the signal a bit? Can I reduce the ring while improving the strength of the return, at the same time?
I've attached a complete circuit diagram (minus the voltage regulator, which is pretty straightforward).
- Power comes in on the left; supplies the amplifier.
- Amplifier / filter circuit lives in the middle. Nominally, it's a band pass filter that allows 40kHz to get through, while amplifying that 40kHz in the process.
- The headers on the right interface to the Arduino board to provide control to the multiplexer, and to provide a signal to the MOSFET that drives a "ping" signal.
- The headers across the top of the board go out to 4 sensing elements. Note that I've added a ground-filter to the return-side ground, which seemed to clean up the signal a bit, at the expense of a little overall amplitude.
- Switching MUX channels causes some noise on the line, but it fades pretty quick; because it's a single activity, it only cycles the transmit piezo element for an instant, so I can wait for 2ms before transmitting the ping, and there's little or no ill-effects from the switching transient.
... So any thoughts? Are there obvious ways that I can improve on this?
Thanks again for the help, all.
Dan