Eng Riyadh / Mbed 2 deprecated celever_heartbeat_monitor

Dependencies:   mbed

Committer:
riyood
Date:
Thu Mar 02 13:37:47 2017 +0000
Revision:
4:811ddbbdc15d
Parent:
3:937505b99ca7
changing the pins

Who changed what in which revision?

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