Projet_BMC / Mbed 2 deprecated PulseSensor2

Dependencies:   mbed USBDevice

Committer:
salvolicitra
Date:
Thu May 31 21:45:15 2018 +0000
Revision:
0:030060e88177
Child:
1:4800e2f494f1
Final update of SUOMI; This code was written for the Pervasive System course at the "La Sapienza" University of Rome. The program uses a PulseSensor to measure the BPM and returns it via the serial port; an LED notify us the end of the; measurement.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
salvolicitra 0:030060e88177 1 #include "mbed.h"
salvolicitra 0:030060e88177 2 #include "PulseSensor.h"
salvolicitra 0:030060e88177 3
salvolicitra 0:030060e88177 4 Serial pc(USBTX, USBRX);
salvolicitra 0:030060e88177 5 DigitalOut led(D12);
salvolicitra 0:030060e88177 6 PulseSensor sensor;
salvolicitra 0:030060e88177 7 InterruptIn button(USER_BUTTON);
salvolicitra 0:030060e88177 8
salvolicitra 0:030060e88177 9 int result;
salvolicitra 0:030060e88177 10 int len = 20;
salvolicitra 0:030060e88177 11 int values,count,trash;
salvolicitra 0:030060e88177 12 int myBPM;
salvolicitra 0:030060e88177 13
salvolicitra 0:030060e88177 14 void pressed(){
salvolicitra 0:030060e88177 15 pc.printf("Your data are been sent\r\n");
salvolicitra 0:030060e88177 16 }
salvolicitra 0:030060e88177 17
salvolicitra 0:030060e88177 18 void sendDataToProcessing(char symbol, int data){
salvolicitra 0:030060e88177 19 if(symbol == 'B') {
salvolicitra 0:030060e88177 20 if(count<len){
salvolicitra 0:030060e88177 21 result = data<50?50:(data>120?120:data);
salvolicitra 0:030060e88177 22 //pc.printf("\rLoading");
salvolicitra 0:030060e88177 23 count++;
salvolicitra 0:030060e88177 24 //for(int i=0;i<(j%4);++i) pc.printf(" .");
salvolicitra 0:030060e88177 25 if(result<51 || result >119) trash++;
salvolicitra 0:030060e88177 26 else values+=result;
salvolicitra 0:030060e88177 27
salvolicitra 0:030060e88177 28 }
salvolicitra 0:030060e88177 29 if(count==len){
salvolicitra 0:030060e88177 30 myBPM=values/(len-trash);
salvolicitra 0:030060e88177 31 if(myBPM == 0){//if the result is composed only
salvolicitra 0:030060e88177 32 pc.printf("\rOps, something was wrong, I restart the measurement\r\n");
salvolicitra 0:030060e88177 33 led=0;count=0;values=0;trash=0;
salvolicitra 0:030060e88177 34 }
salvolicitra 0:030060e88177 35 else{
salvolicitra 0:030060e88177 36 led = 1;
salvolicitra 0:030060e88177 37 pc.printf("\rYour average BPM are: %d\r\n[Black]\trestart the measurement\r\n[Blue]\tconfirm the data\r\n",myBPM);
salvolicitra 0:030060e88177 38 button.fall(&pressed);
salvolicitra 0:030060e88177 39 count++;
salvolicitra 0:030060e88177 40 }
salvolicitra 0:030060e88177 41 }
salvolicitra 0:030060e88177 42 }
salvolicitra 0:030060e88177 43 }
salvolicitra 0:030060e88177 44
salvolicitra 0:030060e88177 45 int main() {
salvolicitra 0:030060e88177 46 pc.baud(115200);
salvolicitra 0:030060e88177 47 pc.printf("\r\n+++++++++++++++++++++++++++++++++++++++++++++++");
salvolicitra 0:030060e88177 48 pc.printf("\r\nStart to inizialize the process\n");
salvolicitra 0:030060e88177 49 led=0;count=0;trash=0;values=0;
salvolicitra 0:030060e88177 50 PulseSensor sensor(A0, sendDataToProcessing);
salvolicitra 0:030060e88177 51 while(1) {
salvolicitra 0:030060e88177 52 sensor.start();
salvolicitra 0:030060e88177 53 }
salvolicitra 0:030060e88177 54 }