Code supports writing to the SD card as well as working with the Volckens group smartphone apps for the mbed HRM1017

Dependencies:   ADS1115 BLE_API BME280 Calibration CronoDot EEPROM LSM303 MCP40D17 NCP5623BMUTBG SDFileSystem SI1145 STC3100 mbed nRF51822

Fork of UPAS_BLE_and_USB by Volckens Group Sensors

Revision:
49:19e828650618
Parent:
48:b8cbef6aaed2
Child:
51:91cfb90e901c
Child:
53:03d8d5b1f06b
--- a/main.cpp	Sun Jun 14 01:51:04 2015 +0000
+++ b/main.cpp	Sun Jun 14 18:05:08 2015 +0000
@@ -49,6 +49,11 @@
 
 int omronReading;
 float omronVolt; //V
+float omronVMin = 0.7; //V
+float omronVMax = 2.3; //V
+float omronMFMin = 0.2209; //g/L
+float omronMFMax = 3.548944; //g/L
+
 float atmoRho; //g/L
 float MF0 = -8.794;
 float MF1 = 27.914;
@@ -87,7 +92,9 @@
 
 int main()
 {
-    
+    // Setup and Initialization
+   //---------------------------------------------------------------------------------------------//
+   
     if(volflowSet==1.0){
         gainFlow = 100;}
     else if(volflowSet==2.0){
@@ -120,18 +127,20 @@
     sprintf(filename, "/sd/UPAS0010LOG_%02d-%02d-%02d_%02d-%02d-%02d.txt",RTCtime[5],RTCtime[4],RTCtime[3],RTCtime[2],RTCtime[1],RTCtime[0]);
     FILE *fp = fopen(filename, "w");
     fclose(fp);
-    pc.printf("%d\r\n",digital_pot_setpoint); 
-                
-            
+    //pc.printf("%d\r\n",digital_pot_setpoint); 
+   
+   //---------------------------------------------------------------------------------------------//             
+   //Following lines are needed to enter into the initiallization flow control loop
+               
     wait(10);
-    
+ 
     omronReading = ads.readADC_SingleEnded(0, 0xC583); // read channel 0 PGA = 2 : Full Scale Range = 2.048V
     omronVolt = (omronReading*4.096)/(32768*2);
     //Mass Flow tf from file: UPAS v2 OSU-PrimaryFlowData FullSet 2015-05-29 CQ mods.xlsx
-    if(omronVolt<=0.6427){
-        massflow = 0.000127;
-    }else if(omronVolt>=2.3){
-        massflow = 3.548944;
+    if(omronVolt<=omronVMin){
+        massflow = omronMFMin;
+    }else if(omronVolt>=omronVMax){
+        massflow = omronMFMax;
     }else{
         massflow = MF4*pow(omronVolt,(float)4)+MF3*pow(omronVolt,(float)3)+MF2*pow(omronVolt,(float)2)+MF1*omronVolt+MF0;}
         deltaMflow = massflow-massflowSet;    
@@ -139,16 +148,18 @@
         //pc.printf("%f,%f,%f,%f,%d,%u,%x\r\n",omronVolt,massflow,massflowSet,deltaMflow,digital_pot_set,digital_pot_set,digital_pot_set);                  
         wait(5);
     
+     //---------------------------------------------------------------------------------------------//    
+     //Sets the flow withen +-1.5% of the desired flow rate based on mass flow
     
     while(abs(deltaMflow)>.015){
       
             omronReading = ads.readADC_SingleEnded(0, 0xC583); // read channel 0 PGA = 2 : Full Scale Range = 2.048V
             omronVolt = (omronReading*4.096)/(32768*2);
             //Mass Flow tf from file: UPAS v2 OSU-PrimaryFlowData FullSet 2015-05-29 CQ mods.xlsx
-            if(omronVolt<=0.7){
-                massflow = 0.2209;
-            }else if(omronVolt>=2.3){
-                massflow = 3.548944;
+            if(omronVolt<=omronVMin){
+                massflow = omronMFMin;
+            }else if(omronVolt>=omronVMax){
+                massflow = omronMFMax;
             }else{
             massflow = MF4*pow(omronVolt,(float)4)+MF3*pow(omronVolt,(float)3)+MF2*pow(omronVolt,(float)2)+MF1*omronVolt+MF0;}
             
@@ -172,6 +183,11 @@
             }
 
      RGB_LED.set_led(0,1,0);
+     
+      //---------------------------------------------------------------------------------------------// 
+      //---------------------------------------------------------------------------------------------//    
+      //---------------------------------------------------------------------------------------------//       
+      // Main Control Loop
     
     while(1) {
 
@@ -211,10 +227,10 @@
             //UPAS0009=-2.662*L14^4+16.421*L14^3-35.797*L14^2+34.579*L14-11.77
             //massflow = -2.662*pow(omronVolt,(float)4)+16.421*pow(omronVolt,(float)3)-35.797*pow(omronVolt,(float)2)+34.579*omronVolt-11.77;
             //UPAS0010=-3.6933*L14^4+21.633*L14^3-44.694*L14^2+40.387*L14-12.82
-            if(omronVolt<=0.7){
-                massflow = 0.2209;
-            }else if(omronVolt>=2.3){
-                massflow = 3.548944;
+            if(omronVolt<=omronVMin){
+                massflow = omronMFMin;
+            }else if(omronVolt>=omronVMax){
+                massflow = omronMFMax;
             }else{
             massflow = MF4*pow(omronVolt,(float)4)+MF3*pow(omronVolt,(float)3)+MF2*pow(omronVolt,(float)2)+MF1*omronVolt+MF0;}