ECG Electro Cardio Gram
-
Here is very simple ECG Electro Cardio Gram made with Arduino UNO , Bluetooth HC06 adapter and an AD8232 sensor.
https://www.aliexpress.com/item/32989203202.html?spm=a2g0s.9042311.0.0.27424c4dQYUJ6C
Arduino UNO uses analog (PinC.1) for input. Immediately after the analog signal measurement, it sends the value information via the serial port (Bluetooth module HC06) to the GUI-O application (CH-sweep chart object) on the smartphone.
That's enough speed for a heartbeat.
You can turn the sound ON or OFF with the "sound" button.
Result is on Youtube video - screenvideo from my phone.
-
Arduino Uno İçin Kod dosyaları varmı.
Nasıl bir kod yazmamız gerekir. -
@HilmihanEkim2208
Hello.
For easier communication, next time please write in English.This is done with Bascom IDE and not Arduino. The source code is in the attachment.
'------------------------------------------------------------------------------ ' ECG Electro Cardio Gram ' 2021-07-01 (c)gammda ' Ver-1 ' CardioGraph ' Use Arduino UNO analog input A1 (pinc.1) and AD8232 modul ' .-----------------------. ' |ATMEGA328 | ' |Clock 11.059200MHz | ' |Baud:19200 | ' '-----------------------' ' 1.Install GUI-O application on smartphone ' www.gui-o.com or https://play.google.com/store/apps/details?id=com.guio.guioapp ' 2.Start GUI-O and make Bluetooth connection with arduino board ' 3.Press on start GUI-O button '------------------------------------------------------------------------------ $regfile = "m328pbdef.dat" $crystal = 11059200 '$baud = 9600 'default baudrate for Bluetooth HC06 $baud = 19200 'NOTE! For proper connection, it is necessary to set 19200 on the bluetooth module HC06. 'For first test you can use default baudrate 9600 Config Serialin = Buffered , Size = 120 Const Timer1reload = 43200 Config Timer1 = Timer , Prescale = 256 Load Timer1 , Timer1reload On Ovf1 Timer1_isr Enable Timer1 Start Timer1 Enable Interrupts '-ADC-------------------------------------------------------------------------- Dim Channel As Byte 'A/D conversion Channel = 1 Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc Enable Interrupts '------------------------------------------------------------------------------ $lib "GetToken.Lib" $external Gettoken Declare Function Gettoken(strinput As String , Byval Bseparator As Byte , Byval Bcount As Byte ) As String Dim Sep As Byte Dim Pozicija As Byte '------------------------------------------------------------------------------ Dim Cardio As Integer Dim Pulse As Byte Dim Pulsex As Byte Pulsex = 60 Dim Timx As Byte Dim Timy As Byte Dim Pul1 As Byte Dim Soun_d As Bit Soun_d = 0 Dim Flags As Bit Flags = 0 Dim Data_key As Byte Dim Znak As String * 15 Dim Rdata As String * 100 Dim Init As String * 4 Gosub Guio_ini 'start initalization procedure on GUI-O - write objects on screen of smart phone '------------------------------------------------------------------------------ Main: Do If Ischarwaiting() = 1 Then Gosub Read_data End If Cardio = Getadc(channel) 'read walue of AD If Cardio > 740 Then 'sound if amplitude je more than 740 If Soun_d = 1 Then Print "@ton1 EDUR:500" 'sound appear on smart phone End If Pul1 = Pul1 + 1 'calculate pulse If Timy = 4 Then Pulse = Pul1 * 10 Pul1 = 0 Timy = 0 End If End If Print "@ch1 PLI:" ; Chr(34) ; "pl1" ; Chr(34) ; " YP:" ; Chr(34) ; Cardio ; Chr(34) ' write graph data (AD data) ECG to GUI-O If Timx > 1 Then Print "@ch0 PLI:" ; Chr(34) ; "pl0" ; Chr(34) ; " PLC:" ; Chr(34) ; "#000000" ; Chr(34) ; " YP:" ; Chr(34) ; Pulse ; Chr(34) ; " XP:" ; Chr(34) ; "0" ; Chr(34) 'Write graph pulse to GUI-O Print "@lbpulse TXT:" ; Chr(34) ; Pulse ; Chr(34) 'write numeric value on GUI-O Timx = 0 End If Loop End 'End of main cycle '------------------------------------------------------------------------------ Read_data: Reset Watchdog Data_key = Inkey() If Data_key = "@" Then Input Rdata Noecho Sep = &H20 Pozicija = 1 Znak = Gettoken(rdata , Sep , Pozicija) If Znak = "btsound" Then Toggle Soun_d If Soun_d = 1 Then Print "@btsound BTH:0.25" 'If sound is ON button outline appear Else Print "@btsound BTH:0" 'If sound is OFF button outline disappear End If End If Init = Mid(rdata , 1 , 4) If Init = "init" Then 'reading "@init" from GUI-O Gosub Guio_ini End If Rdata = "" Return '-Initialization procedure GUI-O Objects------------------------------------------------------- Guio_ini: Print "@sls 500" 'start writting objects Print "@cls" 'clear screen Print "@clh" 'clear HW components 'Print "@clo" 'clear orientation Print "@guis BGC:#000000 ASR:0.449671" 'bacground color X-Y ratio Print "|SORI UID:sori1 HID:sori ORI:2 SEN:0" Waitms 250 Print "|IM UID:imx X:15 Y:50 W:100 H:100 ROT:0 SHE:0 VIS:1 OPA:1 SCM:2 IP:" ; Chr(34) ; "ECG.jpg" ; Chr(34) 'GUI-O Image ECG.jpg copy to smartphone \Phone\Android\data\com.guio.guioapp\files\Pictures\ Print "|TON UID:ton1 HID:ton EDUR:1000 TONT:24" 'GUI-O define ton Print "|CH UID:ch0 X:65 Y:25 W:72 H:50 BTH:0.1 XTC:10 YTC:8 VIS:1 BSZ:5 DRA:0 BGC:#FFFFFF FGC:#900000 RAD:0 LT:0.15 XMA:5 YMA:8 SHVL:1 VLP:0 CHN:" ; Chr(34) ; "PULSE" ; Chr(34) ; " FFA:" ; Chr(34) ; "font6" ; Chr(34) ; " FSZ:4" Print "|CH UID:ch1 X:65 Y:75 W:72 H:50 BTH:0.1 XTC:10 YTC:8 VIS:1 BSZ:200 DRA:0 CHT:2 BMA:0.03 XLO:0 XHI:40000 BGC:#FFFFFF FGC:#900000 RAD:0 LT:0.15 XMA:5 YMA:8 SHVL:1 VLP:0 CHN:" ; Chr(34) ; "ELECTRO CARDIOGRAM" ; Chr(34) ; " FFA:" ; Chr(34) ; "font6" ; Chr(34) ; " FSZ:4" 'GUI-O graph for pulse and Cardio Print "|LB UID:lbpulse X:87 Y:35 ALP:1 ROT:0 SHE:1 FGC:#000000 FFA:" ; Chr(34) ; "font6" ; Chr(34) ; " FSZ:16 TXT:" ; Chr(34) ; "---" ; Chr(34) 'Label for number-pulse Print "|LB UID:lbpname X:85 Y:23 ALP:1 ROT:0 SHE:1 FGC:#000000 FFA:" ; Chr(34) ; "font8" ; Chr(34) ; " FSZ:4 TXT:" ; Chr(34) ; "PULSE BMP" ; Chr(34) 'Label for name Print "|LB UID:lbname X:2 Y:92 ALP:1 ROT:0 SHE:1 FGC:#FFFFFF FFA:" ; Chr(34) ; "font7" ; Chr(34) ; " FSZ:10 TXT:" ; Chr(34) ; "ECG" ; Chr(34) 'Label general name Print "|BT UID:btsound X:22 Y:92 W:10 H:10 ROT:0 RAD:1 SHVR:0.8 SHE:1 SHC:#404040 BGC:#808B96 SBGC:#808B96 FGC:#FFFFFF FSZ:6 BTH:0 FFA:" ; Chr(34) ; "font6" ; Chr(34) ; " TXT:" ; Chr(34) ; "Sound" ; Chr(34) ; " SVAL:" ; Chr(34) ; "Stop" ; Chr(34) 'Button for sound ON/OFF Print "@ch1 PLI:" ; Chr(34) ; "pl1" ; Chr(34) ; " PLC:" ; Chr(34) ; "#000000" ; Chr(34) ; " YP:" ; Chr(34) ; Cardio ; Chr(34) ; " XP:" ; Chr(34) ; "0" ; Chr(34) 'write data for cardio Print "@hls 250" 'end writting objects Return '-Timer_ISR-------------------------------------------------------------------------------- Timer1_isr: Timx = Timx + 1 Timy = Timy + 1 Return '------------------------------------------------------------------------------------------