I do understand from my reading that I should amplify the signal from an electret to be able to read it with an Arduino. I'd love to know the science behind that, why should we amplify the signal to be able to get a correct reading ?


Arduino (or any chip that uses ADC for that matter) has a resolution. For example, arduino analog read divides 5V to 1024 levels. A.k.a 0V -> 0, 5V->1024. That gives you 4.8mV per level.

Now assume that you want to read the voltage fluctuation of a very low voltage power supply that fluctuates from 0 mV to ~8mV. What does the arduino read? You'll see either 0 or 1. So basically, you just can't successfully read that low voltage with your current setup.

Now, if you use an analog OPAMP and amplify that signal to 5V, (0mV->0V, 8mV->5V) then you can use all 1024 levels available to you, provided by arduino.

That's why you need to amplify the signal.

  • How do you figure out the voltage fluctuation ? (or what is the matching indication in a datasheet ?)
    – Nidupb
    Dec 27 '16 at 23:49
  • It will be in the datasheet. You just have to read it. I don't think there is a standard symbol for it, but look for Vrms as units maybe.
    – Majenko
    Dec 28 '16 at 0:03
  • As Majenko said, you can check the datasheet. It's probably the first thing you want to do dealing with electronics. If you can't find it, then perhaps, just create an amplifier opamp circuit, tie it to arduino or which board you like and read the voltages and send to pc. You can put a potentiometer to opamp to change amplify rate and so on. There is much information about this on google or here.
    – user29094
    Dec 28 '16 at 11:55

Not the answer you're looking for? Browse other questions tagged or ask your own question.