Help with analogue circuitry.

Welcome all. Below I attached schematics of one of my projects. I would like to ask for any feedback and criticism that I could build upon and improve. Device in question is a receiver of ultrasonic wave with triggering circuit. In this arrangement IC555 generates transmitter triggering pulse of 12.5us with approx. 3ms interval. Receiver is connected to “in” input and amplified, bandpass filtered, rectified and low pass filtered this is then pushed to output “A”. Further part of circuit amplifies signal again to achieve desired amplitude and gradient of a slope. This signal is compared against 2.05V and output of comparator it is added to triggering signal. Idea behind is that both triggering signal and received signal are added and time is measured between two raising edges of square wave signal as in picture 2. If anyone can spot anything that could be improved, please comment. One issue I am aware of is buffering between stages for impedance matching.

A0031DS.jpg

Why analog ? I think that the signal to an interrupt input of an Arduino can measure it as well. Perhaps even the slow Arduino Uno can do that. If the input signal is too low, but still above 0.6V, then a single transistor can be used to amplify it for the Arduino input.

The schematic seems theoretical and so 1980's. Every resistor/diode/opamp adds noise and inaccuracy. Was a single comparator not enough ?

Today, such schematics are used for special circuits. For example high frequency circuits. However, a pulse of 12.5 µs is not special.

@Koepel. Thank you for your feedback. Yes, circuit might appear theoretical as it is University project level. IC555 might be easily substituted with Arduino digital output. This is due to circuit being designed and completed prior to MCU selection and in final stages I had no time to set one of internal timers to generate reliable PWM pulse with desired properties. Also being advised that timer 0 is for system timer 1 is used for time measurement and timer 2 being only 8 bit it would limit my abilities to reproduce single pulse and pause needed. However, agree if more time was available use of IC555 could be simplified. Input signal is very noisy and of low amplitude picture below present it. Therefore, for accurate threshold detection I have been advised to filter it and amplified it. Another consideration was that Zener diode-based voltage reference usually has amplitude much greater than signal.

A0000DS.jpg

I meant to replace the whole circuit with an Arduino.
Ouch, that is an ugly input signal :astonished: Then you need indeed OpAmps. My knowledge of OpAmps is too long ago, I hope someone else can say something about it.

A zener diode is a noise generator. That means you clean the input signal and add noise with the reference voltage :frowning:

Thank you for your comments anyway it helps to prepare for my “defence” as someone could ask me why to bother in analogue domain at all

4.jpg

What you're doing makes me think of the popular, dirt cheap, very effective HC-SR04 ultrasound distance sensor.

Schematic here, and another one here.

Yes, it uses similar sensor. ~However my goal is to measure time of flight in order to extract speed of wind.

Ah, so something likelike this project, right?

I don't see a 555 there, but that's a rather minor detail. Either you use the 555 to trigger the circuit and then read with an Arduino when this happened, or you use the pulse from an Arduino pin - both will work the same (just that one method needs more parts).

One issue though: you need two pairs of sensors/transducers to also tell the direction of the wind, and you don't want them to fire at the same time, or you don't know whose signal you receive...

Yes have that part done. I have 4 transducers and multiplexer connecting them in right order. Reason for this solution with IC555 is as stated lack of time into development of alternative as using standard commands and loops would decrease accuracy this part I had covered previously in this forum. Also at this stage I cannot make any alterations to the project. So trying to gather as much feedback as I can to prepare answers for it