Ian Wolf / Mbed OS TestBenchFlow1

Dependencies:   KellerDruck_pressure PID PWM-Coil-driver Sensirion_SF04 VL6180

Fork of TestBenchFlow by Ian Wolf

Files at this revision

API Documentation at this revision

Comitter:
dmwahl
Date:
Mon Jul 24 15:38:39 2017 +0000
Parent:
2:471261505b2b
Child:
4:79b23d1fbcd1
Commit message:
Shutoff and injector valve running

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
main.h Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Thu Jul 20 20:48:12 2017 +0000
+++ b/main.cpp	Mon Jul 24 15:38:39 2017 +0000
@@ -53,6 +53,7 @@
         i2c1_m.lock();
         timer.reset();
         error = pumpPressure.readPT();
+        error |= mixerPressure.readPT();
         int wait = (200 - timer.read_ms());
         i2c1_m.unlock();
         Thread::wait(wait);
@@ -106,13 +107,11 @@
     while (true) {
         stdio_m.lock();
         timer.reset();
-        /*pc.printf("%.3fkPa %.2fPSI %.1fC %.1fF %02X %.2f%% %.0fRPM %.0f %s %.1f %.3f\n\r",
-                  pumpPressure.pressureKPA, pumpPressure.pressurePSI, pumpPressure.temperatureC,
-                  pumpPressure.temperatureF, pumpPressure.status, pump.read()*100, pumpRpm,
-                  ((float)sfm7033.flow.i16 / sfm7033.scaleFactor.u16), sfm7033.flowUnitStr, (double)pot1*18, ((double)pot2-.002)*pumpMaxPSI);*/
 
-        pc.printf("%.02fkPa %.02fpsi %.02fC %.02fF %02X %.2f%% %.0fRPM %u %.0f %s %.1f %.3f\r\n",
-                  pumpPressure.pressureKPA, pumpPressure.pressurePSI, pumpPressure.temperatureC, pumpPressure.temperatureF, pumpPressure.status, pump.read()*100, pumpRpm,
+        pc.printf("%.02fkPa %.02fpsi %.02fC %.02fF %02X %.02fkPa %.02fpsi %.02fC %.02fF %02X %.2f%% %.0fRPM %u %.0f %s %.1f %.3f\r\n",
+                  pumpPressure.pressureKPA, pumpPressure.pressurePSI, pumpPressure.temperatureC, pumpPressure.temperatureF, pumpPressure.status,
+                  mixerPressure.pressureKPA, mixerPressure.pressurePSI, mixerPressure.temperatureC, mixerPressure.temperatureF, mixerPressure.status,
+                  pump.read()*100, pumpRpm,
                   sfm7033.flow.u16, (((float)sfm7033.flow.i16 / 2) / sfm7033.scaleFactor.u16), sfm7033.flowUnitStr,
                   (double)pot1*18, ((double)pot2)*pumpMaxPSI);//, agentlevel;
         int wait = (1000 - timer.read_ms());
@@ -154,12 +153,12 @@
         timer.reset();
         if((double)pot1 < 0.05) {
             shutoff.off();
-            pc.printf("shutoff off\r\n");
+            //pc.printf("shutoff off\r\n");
             //Thread::wait(1000);
         }
         if((double)pot1 >= 0.1) {
             shutoff.on();
-            pc.printf("shutoff on\r\n");
+            //pc.printf("shutoff on\r\n");
             //Thread::wait(1000);
         }
         int wait = (200 - timer.read_ms());
@@ -204,13 +203,15 @@
 
     while (true) {
         //pc.printf("%.02fkPa %.02fpsi %.02fC %.02fF\r\n", pumpPressure.pressureKPA, pumpPressure.pressurePSI, pumpPressure.temperatureC, pumpPressure.temperatureF);
-        /*shutoff.on();
-        pc.printf("shutoff on\r\n");
-        Thread::wait(1000);
+        if((double)pot1 >= 0.1) {
+            injector.on();
+        }
+        //pc.printf("shutoff on\r\n");
+        Thread::wait(5);
 
-        shutoff.off();
-        pc.printf("shutoff off\r\n");*/
-        Thread::wait(1000);
+        injector.off();
+        //pc.printf("shutoff off\r\n");*/
+        Thread::wait(495);
     }
 }
 
--- a/main.h	Thu Jul 20 20:48:12 2017 +0000
+++ b/main.h	Mon Jul 24 15:38:39 2017 +0000
@@ -8,8 +8,8 @@
 #include "coil-driver.h"
 #include "VL6180.h"
 
-Coil shutoff(PE_5, 5000, 40, 6); // Shutoff valve driven by pin PE_12, 5ms spike time, 25kHz PWM at 15% duty cycle
-//Coil injector(PE_14, 200, 40, 3); // Injector valve driven by pin PE_14, 200us spike time, 25kHz PWM at 7.5% duty cycle
+Coil shutoff(PE_5, 5000, 40, 6); // Shutoff valve, 5ms spike time, 25kHz PWM at 15% duty cycle
+Coil injector(PF_8, 200, 40, 3); // Injector valve, 200us spike time, 25kHz PWM at 7.5% duty cycle
 
 
 // Mbed application shield display
@@ -65,10 +65,13 @@
 I2CPreInit i2c2(PB_11, PB_10, 100000);
 
 KELLER_PRESSURE pumpPressure(i2c1, 0x40);
+KELLER_PRESSURE mixerPressure(i2c1, 0x41);
+
+
 
 // Sensirion gas flow sensor object (i2c object, i2c address, calibration field, resolution 9-16 bit)
 // calibration field 1: Air, 2: O2, 3: N2O
-SF04 sfm7033(i2c2, SFM7033_ADDR, 1, 12); // Gas flow sensor (SFM7033)
+SF04 sfm7033(i2c2, SFM7033_ADDR, 1, 14); // Gas flow sensor (SFM7033)
 
 // Mbed application shield
 AnalogIn pot1(A0);