浏览代码

Add output in all cases

Per Mårtensson 4 年之前
父节点
当前提交
dac73769c9
共有 1 个文件被更改,包括 71 次插入2 次删除
  1. 71 2
      src/main.cpp

+ 71 - 2
src/main.cpp

@@ -128,6 +128,38 @@ const PROGMEM float Lambda_Conversion[753] {
   5.438, 5.485, 5.533, 5.582, 5.632, 5.683 ,5.735, 5.788, 5.841, 5.896, 5.953, 6.010, 6.069, 6.129, 6.190, 6.253, 6.318, 6.384, 6.452, 6.521,
   5.438, 5.485, 5.533, 5.582, 5.632, 5.683 ,5.735, 5.788, 5.841, 5.896, 5.953, 6.010, 6.069, 6.129, 6.190, 6.253, 6.318, 6.384, 6.452, 6.521,
   6.592, 6.665, 6.740, 6.817, 6.896, 6.976, 7.059, 7.144, 7.231, 7.320, 7.412, 7.506, 7.602, 7.701, 7.803, 7.906, 8.013, 8.122, 8.234, 8.349,
   6.592, 6.665, 6.740, 6.817, 6.896, 6.976, 7.059, 7.144, 7.231, 7.320, 7.412, 7.506, 7.602, 7.701, 7.803, 7.906, 8.013, 8.122, 8.234, 8.349,
   8.466, 8.587, 8.710, 8.837, 8.966, 9.099, 9.235, 9.374, 9.516, 9.662, 9.811, 9.963, 10.119 };
   8.466, 8.587, 8.710, 8.837, 8.966, 9.099, 9.235, 9.374, 9.516, 9.662, 9.811, 9.963, 10.119 };
+
+//Oxygen Conversion Lookup Table. (ADC 307-854).
+const PROGMEM float Oxygen_Conversion[548] {
+  00.00, 00.04, 00.08, 00.13, 00.17, 00.21, 00.25, 00.30, 00.34, 00.38, 00.42, 00.47, 00.51, 00.55, 00.59, 00.64, 00.68, 00.72, 00.76, 00.81,
+  00.85, 00.89, 00.93, 00.98, 01.02, 01.06, 01.10, 01.15, 01.19, 01.23, 01.27, 01.31, 01.36, 01.40, 01.44, 01.48, 01.53, 01.57, 01.61, 01.65,
+  01.70, 01.74, 01.78, 01.82, 01.86, 01.91, 01.95, 01.99, 02.03, 02.08, 02.12, 02.16, 02.20, 02.24, 02.29, 02.33, 02.37, 02.41, 02.45, 02.50,
+  02.54, 02.58, 02.62, 02.66, 02.71, 02.75, 02.79, 02.83, 02.87, 02.92, 02.96, 03.00, 03.04, 03.08, 03.13, 03.17, 03.21, 03.25, 03.29, 03.33,
+  03.38, 03.42, 03.46, 03.50, 03.54, 03.58, 03.63, 03.67, 03.71, 03.75, 03.79, 03.83, 03.88, 03.92, 03.96, 04.00, 04.04, 04.08, 04.12, 04.17,
+  04.21, 04.25, 04.29, 04.33, 04.37, 04.41, 04.45, 04.50, 04.54, 04.58, 04.62, 04.66, 04.70, 04.74, 04.78, 04.82, 04.86, 04.91, 04.95, 04.99,
+  05.03, 05.07, 05.11, 05.15, 05.19, 05.23, 05.27, 05.31, 05.35, 05.39, 05.44, 05.48, 05.52, 05.56, 05.60, 05.64, 05.68, 05.72, 05.76, 05.80,
+  05.84, 05.88, 05.92, 05.96, 06.00, 06.04, 06.08, 06.12, 06.16, 06.20, 06.24, 06.28, 06.32, 06.36, 06.40, 06.44, 06.48, 06.52, 06.56, 06.60,
+  06.64, 06.68, 06.72, 06.76, 06.80, 06.84, 06.88, 06.92, 06.96, 07.00, 07.03, 07.07, 07.11, 07.15, 07.19, 07.23, 07.27, 07.31, 07.35, 07.39,
+  07.43, 07.47, 07.51, 07.55, 07.59, 07.62, 07.66, 07.70, 07.74, 07.78, 07.82, 07.86, 07.90, 07.94, 07.98, 08.02, 08.06, 08.09, 08.13, 08.17,
+  08.21, 08.25, 08.29, 08.33, 08.37, 08.41, 08.45, 08.49, 08.52, 08.56, 08.60, 08.64, 08.68, 08.72, 08.76, 08.80, 08.84, 08.88, 08.91, 08.95,
+  08.99, 09.03, 09.07, 09.11, 09.15, 09.19, 09.23, 09.26, 09.30, 09.34, 09.38, 09.42, 09.46, 09.50, 09.54, 09.57, 09.61, 09.65, 09.69, 09.73,
+  09.77, 09.81, 09.85, 09.89, 09.92, 09.96, 10.00, 10.04, 10.08, 10.12, 10.16, 10.19, 10.23, 10.27, 10.31, 10.35, 10.39, 10.43, 10.47, 10.50,
+  10.54, 10.58, 10.62, 10.66, 10.70, 10.73, 10.77, 10.81, 10.85, 10.89, 10.93, 10.97, 11.00, 11.04, 11.08, 11.12, 11.16, 11.20, 11.23, 11.27,
+  11.31, 11.35, 11.39, 11.43, 11.46, 11.50, 11.54, 11.58, 11.62, 11.66, 11.69, 11.73, 11.77, 11.81, 11.85, 11.89, 11.92, 11.96, 12.00, 12.04,
+  12.08, 12.11, 12.15, 12.19, 12.23, 12.27, 12.30, 12.34, 12.38, 12.42, 12.46, 12.49, 12.53, 12.57, 12.61, 12.65, 12.68, 12.72, 12.76, 12.80,
+  12.84, 12.87, 12.91, 12.95, 12.99, 13.03, 13.06, 13.10, 13.14, 13.18, 13.21, 13.25, 13.29, 13.33, 13.36, 13.40, 13.44, 13.48, 13.51, 13.55,
+  13.59, 13.63, 13.67, 13.70, 13.74, 13.78, 13.82, 13.85, 13.89, 13.93, 13.96, 14.00, 14.04, 14.08, 14.11, 14.15, 14.19, 14.23, 14.26, 14.30,
+  14.34, 14.38, 14.41, 14.45, 14.49, 14.52, 14.56, 14.60, 14.64, 14.67, 14.71, 14.75, 14.78, 14.82, 14.86, 14.90, 14.93, 14.97, 15.01, 15.04,
+  15.08, 15.12, 15.15, 15.19, 15.23, 15.26, 15.30, 15.34, 15.37, 15.41, 15.45, 15.48, 15.52, 15.56, 15.59, 15.63, 15.67, 15.70, 15.74, 15.78,
+  15.81, 15.85, 15.89, 15.92, 15.96, 16.00, 16.03, 16.07, 16.11, 16.14, 16.18, 16.22, 16.25, 16.29, 16.32, 16.36, 16.40, 16.43, 16.47, 16.51,
+  16.54, 16.58, 16.61, 16.65, 16.69, 16.72, 16.76, 16.79, 16.83, 16.87, 16.90, 16.94, 16.97, 17.01, 17.05, 17.08, 17.12, 17.15, 17.19, 17.22,
+  17.26, 17.30, 17.33, 17.37, 17.40, 17.44, 17.47, 17.51, 17.55, 17.58, 17.62, 17.65, 17.69, 17.72, 17.76, 17.79, 17.83, 17.86, 17.90, 17.94,
+  17.97, 18.01, 18.04, 18.08, 18.11, 18.15, 18.18, 18.22, 18.25, 18.29, 18.32, 18.36, 18.39, 18.43, 18.46, 18.50, 18.53, 18.57, 18.60, 18.64,
+  18.67, 18.71, 18.74, 18.78, 18.81, 18.85, 18.88, 18.92, 18.95, 18.98, 19.02, 19.05, 19.09, 19.12, 19.16, 19.19, 19.23, 19.26, 19.30, 19.33,
+  19.36, 19.40, 19.43, 19.47, 19.50, 19.54, 19.57, 19.60, 19.64, 19.67, 19.71, 19.74, 19.77, 19.81, 19.84, 19.88, 19.91, 19.94, 19.98, 20.01,
+  20.05, 20.08, 20.11, 20.15, 20.18, 20.22, 20.25, 20.28, 20.32, 20.35, 20.38, 20.42, 20.45, 20.48, 20.52, 20.55, 20.58, 20.62, 20.65, 20.68,
+  20.72, 20.75, 20.78, 20.82, 20.85, 20.88, 20.92, 20.95
+};
 //Function for transfering SPI data to the CJ125.
 //Function for transfering SPI data to the CJ125.
 uint16_t COM_SPI(uint16_t TX_data) {
 uint16_t COM_SPI(uint16_t TX_data) {
 
 
@@ -301,7 +333,16 @@ void UpdateUI() {
     //Output LED's.
     //Output LED's.
     digitalWrite(LED_STATUS_POWER, LOW);  
     digitalWrite(LED_STATUS_POWER, LOW);  
     digitalWrite(LED_STATUS_HEATER, LOW);  
     digitalWrite(LED_STATUS_HEATER, LOW);  
-
+    //Output display data.
+    myNex.writeStr("lambda.txt",(String)(Lookup_Lambda(adcValue_UA) * AirFuelRatioOctane));
+    myNex.writeStr("adca.txt",(String)Lookup_Lambda(adcValue_UA));
+    myNex.writeStr("heaterstatus.txt",(String)HeaterStatus);
+    myNex.writeStr("hardwareid.txt",(String)hardwareId);
+    myNex.writeStr("cj125_status.txt",(String)CJ125_Status);
+    myNex.writeStr("adcr.txt",(String)adcValue_UR);
+    float SupplyVoltage = (((float)adcValue_UB / 1023 * 5) / 10000) * 110000;
+    myNex.writeStr("adcb.txt",(String)adcValue_UB);
+    myNex.writeStr("supplyvoltage.txt",(String)SupplyVoltage);
     //Output serial data.
     //Output serial data.
     UpdateSerialOutput();
     UpdateSerialOutput();
 
 
@@ -327,7 +368,16 @@ void UpdateUI() {
  
  
     //Output LED's.
     //Output LED's.
     digitalWrite(LED_STATUS_HEATER, LOW);
     digitalWrite(LED_STATUS_HEATER, LOW);
-    
+      //Output display data.
+    myNex.writeStr("lambda.txt",(String)(Lookup_Lambda(adcValue_UA) * AirFuelRatioOctane));
+    myNex.writeStr("adca.txt",(String)Lookup_Lambda(adcValue_UA));
+    myNex.writeStr("heaterstatus.txt",(String)HeaterStatus);
+    myNex.writeStr("hardwareid.txt",(String)hardwareId);
+    myNex.writeStr("cj125_status.txt",(String)CJ125_Status);
+    myNex.writeStr("adcr.txt",(String)adcValue_UR);
+    float SupplyVoltage = (((float)adcValue_UB / 1023 * 5) / 10000) * 110000;
+    myNex.writeStr("adcb.txt",(String)adcValue_UB);
+    myNex.writeStr("supplyvoltage.txt",(String)SupplyVoltage);
     //Delay for flashing LED's.
     //Delay for flashing LED's.
     delay(500);
     delay(500);
     
     
@@ -349,11 +399,30 @@ void UpdateUI() {
     myNex.writeStr("hardwareid.txt",(String)hardwareId);
     myNex.writeStr("hardwareid.txt",(String)hardwareId);
     myNex.writeStr("cj125_status.txt",(String)CJ125_Status);
     myNex.writeStr("cj125_status.txt",(String)CJ125_Status);
     myNex.writeStr("adcr.txt",(String)adcValue_UR);
     myNex.writeStr("adcr.txt",(String)adcValue_UR);
+    float SupplyVoltage = (((float)adcValue_UB / 1023 * 5) / 10000) * 110000;
     myNex.writeStr("adcb.txt",(String)adcValue_UB);
     myNex.writeStr("adcb.txt",(String)adcValue_UB);
+    myNex.writeStr("supplyvoltage.txt",(String)SupplyVoltage);
 
 
   }
   }
 }
 }
 
 
+//Lookup Oxygen Content.
+float Lookup_Oxygen(int Input_ADC) {
+  
+    //Declare and set default return value.
+    float OXYGEN_CONTENT = 0;
+
+    //Validate ADC range for lookup table.
+    if (Input_ADC > 854) Input_ADC = 854;
+    
+    if (Input_ADC >= 307 && Input_ADC <= 854) {
+      OXYGEN_CONTENT = pgm_read_float_near(Oxygen_Conversion + (Input_ADC - 307));
+    }
+    
+    //Return value.
+    return OXYGEN_CONTENT;
+    
+}
 
 
 void setup() {
 void setup() {