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.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.