Eng Riyadh / Mbed 2 deprecated celever_heartbeat_monitor

Dependencies:   mbed

Committer:
riyood
Date:
Wed Mar 01 16:52:25 2017 +0000
Revision:
2:c65e1c89824c
Parent:
1:08d5b02b7eb4
Child:
3:937505b99ca7
led, buzzer with heart rate warning

Who changed what in which revision?

UserRevisionLine numberNew contents of line
riyood 0:4691e3b49e88 1 #include "mbed.h"
riyood 0:4691e3b49e88 2
riyood 2:c65e1c89824c 3 DigitalOut myBuzzer(D6);
riyood 2:c65e1c89824c 4
riyood 2:c65e1c89824c 5 DigitalOut myLedGreen(LED1);
riyood 2:c65e1c89824c 6
riyood 2:c65e1c89824c 7 DigitalIn myButton(PC_13);
riyood 1:08d5b02b7eb4 8 DigitalIn myPulse(D7);
riyood 2:c65e1c89824c 9
riyood 1:08d5b02b7eb4 10 Timer timer;
riyood 2:c65e1c89824c 11
riyood 2:c65e1c89824c 12 float getpulse(void);
riyood 2:c65e1c89824c 13 void Sound_AlarmBuzzer(void);
riyood 2:c65e1c89824c 14
riyood 2:c65e1c89824c 15 int main()
riyood 2:c65e1c89824c 16 {
riyood 2:c65e1c89824c 17 myBuzzer=0;
riyood 2:c65e1c89824c 18 myLedGreen=0;
riyood 2:c65e1c89824c 19
riyood 2:c65e1c89824c 20 float HeartBeat=0.0f;
riyood 2:c65e1c89824c 21 //myPulse.rise(&serviceMyPulse);
riyood 2:c65e1c89824c 22 printf("Heart Beat Monitor!\n\r");
riyood 2:c65e1c89824c 23 timer.start();
riyood 2:c65e1c89824c 24 timer.reset();
riyood 2:c65e1c89824c 25 //float HB_Array[6]={0.0f};
riyood 2:c65e1c89824c 26
riyood 2:c65e1c89824c 27 while(1) {
riyood 2:c65e1c89824c 28
riyood 2:c65e1c89824c 29 //to convert this time we need to perform a BPM=(1/t)*60
riyood 2:c65e1c89824c 30 HeartBeat=getpulse();//(1.0f/HeartBeat)*60.0f;
riyood 2:c65e1c89824c 31
riyood 0:4691e3b49e88 32
riyood 2:c65e1c89824c 33 printf("Heart Beat is: %5.1f\n\r",HeartBeat);
riyood 2:c65e1c89824c 34 if (HeartBeat < 50.0f) {
riyood 1:08d5b02b7eb4 35 printf( "Warning, low Heartbeat \n\r");
riyood 2:c65e1c89824c 36 while(myButton == 1) {
riyood 2:c65e1c89824c 37
riyood 2:c65e1c89824c 38 Sound_AlarmBuzzer();
riyood 2:c65e1c89824c 39
riyood 2:c65e1c89824c 40 }
riyood 2:c65e1c89824c 41 deepsleep();
riyood 2:c65e1c89824c 42 }
riyood 2:c65e1c89824c 43 if (HeartBeat > 90.0f) {
riyood 2:c65e1c89824c 44 printf("Warning, high HeartBeart \n\r");
riyood 2:c65e1c89824c 45 while(myButton == 1) {
riyood 2:c65e1c89824c 46
riyood 2:c65e1c89824c 47 Sound_AlarmBuzzer();
riyood 2:c65e1c89824c 48
riyood 2:c65e1c89824c 49 }
riyood 2:c65e1c89824c 50 deepsleep();
riyood 2:c65e1c89824c 51
riyood 2:c65e1c89824c 52 }
riyood 2:c65e1c89824c 53
riyood 2:c65e1c89824c 54 if (HeartBeat < 1.0f) {
riyood 2:c65e1c89824c 55 printf("WARNING, Heart Stopped!!!! \n\r");
riyood 2:c65e1c89824c 56 while(myButton == 1) {
riyood 2:c65e1c89824c 57
riyood 2:c65e1c89824c 58 Sound_AlarmBuzzer();
riyood 2:c65e1c89824c 59 }
riyood 2:c65e1c89824c 60 deepsleep();
riyood 2:c65e1c89824c 61
riyood 2:c65e1c89824c 62 }
riyood 2:c65e1c89824c 63
riyood 2:c65e1c89824c 64 }
riyood 2:c65e1c89824c 65
riyood 1:08d5b02b7eb4 66 }
riyood 1:08d5b02b7eb4 67 /*
riyood 1:08d5b02b7eb4 68 void serviceMyPulse(void){
riyood 1:08d5b02b7eb4 69 myled=1;
riyood 1:08d5b02b7eb4 70 wait_ms(100);
riyood 1:08d5b02b7eb4 71 myled=0;
riyood 0:4691e3b49e88 72 }
riyood 2:c65e1c89824c 73 */
riyood 2:c65e1c89824c 74
riyood 2:c65e1c89824c 75 float getpulse(void)
riyood 2:c65e1c89824c 76 {
riyood 2:c65e1c89824c 77
riyood 2:c65e1c89824c 78 float localHB;
riyood 2:c65e1c89824c 79 while(myPulse==0) {
riyood 2:c65e1c89824c 80 wait_ms(50);
riyood 2:c65e1c89824c 81 }
riyood 2:c65e1c89824c 82 while(myPulse==1) {
riyood 2:c65e1c89824c 83 wait_ms(50);
riyood 2:c65e1c89824c 84 }
riyood 2:c65e1c89824c 85 timer.reset();
riyood 2:c65e1c89824c 86
riyood 2:c65e1c89824c 87 myLedGreen=1;
riyood 2:c65e1c89824c 88 wait_ms(100);
riyood 2:c65e1c89824c 89 myLedGreen=0;
riyood 2:c65e1c89824c 90
riyood 2:c65e1c89824c 91
riyood 2:c65e1c89824c 92 while(myPulse==0) {
riyood 2:c65e1c89824c 93 wait_ms(50);
riyood 2:c65e1c89824c 94 }
riyood 2:c65e1c89824c 95 while(myPulse==1) {
riyood 2:c65e1c89824c 96 wait_ms(50);
riyood 2:c65e1c89824c 97 }
riyood 2:c65e1c89824c 98 localHB=timer.read();
riyood 2:c65e1c89824c 99
riyood 2:c65e1c89824c 100 myLedGreen=1;
riyood 2:c65e1c89824c 101 wait_ms(100);
riyood 2:c65e1c89824c 102 myLedGreen=0;
riyood 2:c65e1c89824c 103
riyood 2:c65e1c89824c 104
riyood 2:c65e1c89824c 105
riyood 2:c65e1c89824c 106 //to convert this time we need to perform a BPM=(1/t)*60
riyood 2:c65e1c89824c 107 localHB=(1.0f/localHB)*60.0f;
riyood 2:c65e1c89824c 108
riyood 2:c65e1c89824c 109 return localHB;
riyood 2:c65e1c89824c 110 }
riyood 2:c65e1c89824c 111
riyood 2:c65e1c89824c 112 void Sound_AlarmBuzzer(void)
riyood 2:c65e1c89824c 113 {
riyood 2:c65e1c89824c 114 myBuzzer=1;
riyood 2:c65e1c89824c 115 wait_ms(500);
riyood 2:c65e1c89824c 116 myBuzzer=0;
riyood 2:c65e1c89824c 117 wait_ms(500);
riyood 2:c65e1c89824c 118 }