How to send the ECG signal to the arduino UNO?

I have the ECG working right now from the amplifiers and the notch filter, and I have to program the arduino to get the signal and show it on the serial plotter, but it's so confusing. DO you guys have any examples I can use to do it? everything I have seen is by using the sensor, but I do not use that one.

Thanks in advance.

This is the signal I’m getting from the oscilloscope that I want to put on the Arduino serial plotter.

I’m actually just looking to get the BPM of the heart, but I want to see how to get it on my serial plotter.

Could you take a few moments to Learn How To Use The Forum

It will help you get the best out of the forum in the future.

  • Your OS and version can be valuable information, please include it along with extra security you are using.
  • Always list the version of the IDE you are using and the board version if applicable.
  • Use quote or add error messages as an attachment NOT a picture.
  • How to insert an image into your post. ( Thanks @Robin2 )
  • Add your sketch where applicable but please use CODE TAGS ( </> )
  • Add a SCHEMATIC were needed even if it is hand drawn
  • Add working links to any specific hardware as needed (NOT links to similar items)
  • Remember that the people trying to help cannot see your problem so give as much information as you can


  • Ensure you have FULLY inserted the USB cables.
  • Check you have a COMMON GROUND where required. ( Thanks @Perry)
  • Where possible use USB 2.0 ports or a USB 2.0 POWERED HUB to rule out USB 3.0 issues.
  • Try other computers where possible.
  • Try other USB leads where possible.
  • You may not have the correct driver installed. CH340/341 or CP2102 or FT232 VCP Drivers - FTDI
  • There may be a problem with the board check or remove your wiring first.
  • Remove any items connected to pins 0 and 1.


  • Close any other serial programs before opening the IDE.
  • Ensure you turn off any additional security / antivirus just to test.
  • There may be a problem with the PC try RESTARTING it.
  • You may be selecting the wrong COM port.
  • Avoid cloud/network based installations where possible OR ensure your Network/Cloud software is RUNNING.
  • Clear your browsers CACHE.
  • Close the IDE before using any other serial programs.
  • Preferably install IDE’s as ADMINISTRATOR or your OS equivalent


  • CH340/341 based clones do not report useful information to the “get board info” button.
  • NANO (Old Types) some require you to use the OLD BOOTLOADER option.
  • NANO (ALL Types) See the specific sections lower in the forum.
  • NANO (NEW Types) Install your board CORE’s.
  • Unless using EXTERNAL PROGRAMMERS please leave the IDE selection at default “AVRISP mkII”.
  • Boards using a MICRO usb connector need a cable that is both DATA and CHARGE. Many are CHARGE ONLY.

CREATE editor install locations.

  • On macOs ~/Applications/ArduinoCreateAgent-1.1/
  • On Linux ~/ArduinoCreateAgent-1.1/config.ini
  • On Windows C:\Users[your user]\AppData\Roaming\ArduinoCreateAgent-1.1

Performing the above actions may help resolve your problem without further help.
Language problem ?
Try a language closer to your native language:

Thanks to all those who helped and added to this list.

I have read it and made the proper changes. I don't know what's wrong with my post but thanks for sending it agin.

1 Like

What, precisely, is generating the waveform (and don't say a human heart...)

It's possible you could just connect the point you're scoping to the A0 analog input of an Uno and run something like:

const uint8_t pinECG = A0;

void setup() 
    //don't need to declare A0 as input (default)
    Serial.begin( 115200 );

void loop() 
    uint16_t ecg = analogRead( pinECG );
    float volt = (float)ecg * 5.0 / 1024;
    Serial.println( volt );

I’m reading the frequency of the heart beat. I’ll try that and let you know.

Question: why 1156 and not 9600?

By "1156" are you referring to the serial baud rate? If so: Why not use 115200 or faster?

At 9600bps it takes a millisecond to send one byte over serial.

At 115200, that same byte takes ~87 microseconds. The less time spent doing something like waiting for serial bytes to be sent means more frequent sampling of your input signal.