Преглед на файлове

Add output in all cases

Per Mårtensson преди 3 години
родител
ревизия
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,
   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 };
+
+//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.
 uint16_t COM_SPI(uint16_t TX_data) {
 
@@ -301,7 +333,16 @@ void UpdateUI() {
     //Output LED's.
     digitalWrite(LED_STATUS_POWER, 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.
     UpdateSerialOutput();
 
@@ -327,7 +368,16 @@ void UpdateUI() {
  
     //Output LED's.
     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(500);
     
@@ -349,11 +399,30 @@ void UpdateUI() {
     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);
 
   }
 }
 
+//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() {