Convert LM393 based sound detection circuit to detect small sine pulse

Discussion in 'General Electronics Chat' started by Alan Bates, Nov 18, 2015.

  1. Alan Bates

    Thread Starter New Member

    Nov 18, 2015
    12
    1
    Hi - trying to hack together a circuit to take a small amplitude sine pulse signal (moving magnet passing static coil) of around 200Hz, and output a digital high low to an arduino. the signal will be used to calculate frequency.

    I know there are a few example diagrams out there for using LM393 as a comparator, so i thought as a test I could get hold of a 393 based sound detection module that uses an electret microphone. i'm thinking i should be able to replace the microphone signal with my input and save myself some breadboarding, but what do you think? Am i way off track? I'm assuming the microphone will be active and therefore i can't just wire the input to the terminals of the mic, but i was hoping there must be somewhere in the circuit i can insert my signal to get the desired result.

    Feel free to tell me if I'm in lala land - I can trace circuits and hack components together but my electrical engineering level is pretty low as you may have guessed. Cheers!
     
  2. GopherT

    AAC Fanatic!

    Nov 23, 2012
    6,061
    3,826
    @Alan Bates
    You can replace the microphone with an inductor and see ripple from the passing magnetic field.
     
  3. Alan Bates

    Thread Starter New Member

    Nov 18, 2015
    12
    1
    Thanks GopherT - to be clear, a coil and moving magnets exist. I have the coil terminals and want to insert their signal into the circuit.

    I think my module is similar to this one: http://www.mpja.com/download/31072mp.pdf
     
  4. Roderick Young

    Member

    Feb 22, 2015
    408
    168
    schemeit-project (1).png
    Perhaps something like the above? The only reason for R3 is because the LM393 has an open collector output. If you use a different op-amp, you may not need it. You'll have to play around with R1 and R2 values, but offhand, I'd make them both 10k ohms for an 8 ohm voice coil as L1.

    EDIT: oh, now I see the circuit that you were considering buying. Yes, you could mod that to work. Take out the 150 ohm resistor, and connect your voice coil between pins 2 and 3 of the op-amp. Looks like they already brought pin 2 out to the connector for you. Set the 50k trimmer to max resistance. I'd prefer that it be 500k, but the circuit might work with existing components.
     
    Last edited: Nov 18, 2015
  5. Alan Bates

    Thread Starter New Member

    Nov 18, 2015
    12
    1
    Thanks Roderick - sounds positive. I've just checked the coil and it's showing up as ~100 ohm on my DMM
     
  6. AnalogKid

    Distinguished Member

    Aug 1, 2013
    4,544
    1,251
    The reference input to the comparator is Vcc/2, so your input signal rest level needs to be close to this. For example, if the signal is 0.1V peak, then the rest level should be around 0.05 V below Vcc/2. If you can't get stable operation with all DC coupling, then AC couple your sensor.

    ak
     
  7. Alan Bates

    Thread Starter New Member

    Nov 18, 2015
    12
    1
    Thanks AnalogKid - I've now recieved my module. Slightly different circuit to the one I linked to but similar. See my sketched best guess below as I have it now. I have tweaked the circuit to respond to the peaks of the coil and I'm getting a clean digital output at working frequencies. So a good if dirty way to get something working quickly. I now have to tackle the digital processing of the signal to get a reliable frequency. Thanks for your help so far and I'm sure I'll be back for more...

    upload_2015-11-19_22-45-45.png
     
  8. wayneh

    Expert

    Sep 9, 2010
    12,148
    3,058
    You might consider pulling the output up to Vcc with a ~3.3K resistor, instead of the 10K feedback. That will give an enormous amount of hysteresis as configured. The hysteresis is OK if it suits your application, but the pull-up resistor to Vcc is pretty much necessary to get a "digital" output. The LM393 can pull the output to ground and sink current, but it cannot source current. You need the pull-up resistor to do that.
     
  9. Alan Bates

    Thread Starter New Member

    Nov 18, 2015
    12
    1
    ah yes - that makes sense (sort of - i'm sort of an idiot :)). hysteresis is filtering the signal to debounce it? so if i remove the 10K resistor, and add a smaller resistor between Vcc and the sensor pin? i will try that out.

    i've recorded some synchronised output - top waveform is the "digital" signal, bottom is the ac pulse analog signal from the coil. is the fact that the upper signal is inverted a reflection of the need for such a pull up?

    upload_2015-11-20_12-5-14.png
     
  10. wayneh

    Expert

    Sep 9, 2010
    12,148
    3,058
    Yup. The output is able to go low with only the comparator's low internal resistance in the way. But the highest voltage it can go to is given by Ohm's law. The 100Ω load and 5.3KΩ resistors make a voltage divider giving about 0.1V on the non-inverting input to the comparator. There's a 10K resistor between that point and the output, which should have little effect on the output voltage you measure. So your peak upper voltage is limited to ~0.1V.

    Oh, and hysteresis is not the same as debounce. Hysteresis is like a dead band on your home's thermostat, where the current setting (on or off) sticks over a small range. This prevents rapid oscillation between on and off. A larger value resistor (for instance 1MΩ) gives a narrower hysteresis band. Debounce is a way to prevent multiple trigger signals from a single event, commonly used on switches.
     
    Alan Bates likes this.
  11. Alan Bates

    Thread Starter New Member

    Nov 18, 2015
    12
    1
    ah - very helpful explanation. thanks wayneh! i'll try and test the theory with some wires tomorrow...
     
    wayneh likes this.
  12. Alan Bates

    Thread Starter New Member

    Nov 18, 2015
    12
    1
    ok - so i've spent some time tinkering with the off-the-shelf circuit and got what i think were ok results, but wanted to have more control over the values and connections, so ended up breadboarding a version with full size components. i've got something like this:

    upload_2016-1-18_20-48-15.png

    the VR is turned up to max, and i've recorded some output from the yellow wire that seems to match what i'd hoped for: a sub-zero signal with occasional square peaks corresponding to the pulses from the coil, which can be detected and analysed by the arduino. however, i'm sure this is more through luck and guesswork than wisdom so if anyone can point out any faults or improvements please do. thanks for your help so far
     
  13. AnalogKid

    Distinguished Member

    Aug 1, 2013
    4,544
    1,251
    Schematic of your version?
     
  14. wayneh

    Expert

    Sep 9, 2010
    12,148
    3,058
    What voltage is that putting to the comparator input, hi or low? It looks like it would be low, so you might even try just grounding that input and eliminating VR.
     
  15. Alan Bates

    Thread Starter New Member

    Nov 18, 2015
    12
    1
    best guess below:

    upload_2016-1-19_9-41-9.png
     
  16. Alan Bates

    Thread Starter New Member

    Nov 18, 2015
    12
    1
    Yeah, the pulses from the coil are pretty small (~0.1v) so the voltage at the comparator input has to be practically zero in order to detect them. i think i might be able to get away with grounding the input, but i wanted the ability to adjust the input so that i could confirm it was working.

    maybe i should consider an amplification stage? think i need to do some testing with known input frequencies, so that i can confirm the output to the arduino is accurately generated.
     
  17. AnalogKid

    Distinguished Member

    Aug 1, 2013
    4,544
    1,251
    No immediate need for a preamp just yet. The common mode range of the 393 extends below its negative rail (GND in your case) so it should do what you want. If you put a fixed resistor between the top of R1 and Vcc you will have much better adjustability. Your reference is about 50 x your input, so start with something around 20 x R1 and see if that gives you a good adjustment range. If you reverse the connections to the 393 you should get an LED blink on each positive-going input pulse.

    ak
     
  18. Alan Bates

    Thread Starter New Member

    Nov 18, 2015
    12
    1
    thanks AnalogKid - that's a good idea. as for the LED, i had it arranged that way initially, and got the LED pulsing, but I reversed the connections so that the output matched what i was hoping for - i.e. LOW with occasional HIGH. The led is really only there as a reassurance i've got the power connected :) but if there's a way of keeping my preferred output and having the LED trigger as well, let me know. Thanks again and I'll try the additional resistor.
     
  19. wayneh

    Expert

    Sep 9, 2010
    12,148
    3,058
    I agree with AK that this is not yet called for. A signal of 100mV is plenty for the 393. If it were less than 10mA, you might consider an amp.

    An IC doesn't like to see voltages on the inputs below the power rail. If your pickup is really only making a pulse of 100mV, an excursion to -100mV shouldn't bother the comparator. But if it starts getting bigger, maybe a volt or more, you might consider using a diode to limit the negative voltage on the comparator's input. Another solution is to change the bias up off of ground, for instance by placing the coil between two resistors so that its resting voltage is Vcc/2.
     
  20. Alan Bates

    Thread Starter New Member

    Nov 18, 2015
    12
    1
    righto - so to limit the negative voltage, i'd put a diode between the coil and the lm393 + input? i may add that just to be safe. levels may be lower than i thought but will test with some known signals and record the output to see if i can spot any false peaks or incorrect behaviour. thanks for your ongoing help
     
Loading...