i try to build emg sensor + arduino from diy found on internet. every things work fine, but i want only raw signal for some bigger project not rectify. i do circuit as below

enter image description here

and signal looks like enter image description here

as you can see when it reaches value 0 it stops. i try to get some real raw signal and modify code, but nothing change, so i think it's hardware. any guess how to remove this offset ? configuration of tl072 should be different?

  • 1
    \$\begingroup\$ Post schematics instead of that drawing of your breadboard. Fritzing van make them, and they are much more useful than the sketch. \$\endgroup\$
    – JRE
    Sep 23 '16 at 15:20
  • 2
    \$\begingroup\$ The Arduino ADC does not accept voltages below ground. You will have to add a DC offset to your AC signal to move it to a range (0VDC to 5VDC) that the Arduino can digitize. \$\endgroup\$
    – JRE
    Sep 23 '16 at 15:21
  • \$\begingroup\$ That is to say, you need to add an offset, not get rid of one. \$\endgroup\$
    – JRE
    Sep 23 '16 at 15:22
  • \$\begingroup\$ thank's for answer. to add offset do i need another amplifier or how it's the best way to do this? \$\endgroup\$
    – fgtuw29
    Sep 23 '16 at 15:36
  • \$\begingroup\$ @fgtuw29, use an op amp output to put the offset at vref of the inamp. \$\endgroup\$ Sep 25 '16 at 18:23

You need something like this:


simulate this circuit – Schematic created using CircuitLab

That adds 2.5V to the AC signal. It also inverts the AC, but I don't think that will bother things.

Depending on how you have your existing TL072 connected, you could probably do this all in that one stage.

But, you didn't post your schematic and I don't feel like drawing one from your breadboard sketch, so I'll just leave this as is.

You've got 5V on the Arduino, but it is usually very noisy. I've used 5V in the schematic just to make it clear that you need a regulated voltage. The two 9V batteries aren't regulated, so you can't generate your 2.5V from them.

You might be able to use the Arduino 5V if you use a large enough value for C1 to clean up all the noise. I've put a 1µF in. That ought to do as a starting place.

  • \$\begingroup\$ i try to make your circuit, but i get only 1023 value so, something went wrong. maybe i connect something wrong. i can't find all elements in Fritzing, i try to do it tomorow. \$\endgroup\$
    – fgtuw29
    Sep 23 '16 at 23:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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