diff options
| author | Avi Levkovich <avi@twine-s.com> | 2018-07-26 14:33:15 +0300 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2018-07-26 14:33:15 +0300 |
| commit | 4ff8fc0265f11be7b73548e36c7ee3d1debfb8e4 (patch) | |
| tree | c8e137c49819152f466b40ea255cc21770bbf3bf /Software/Embedded_SW/Embedded/Modules | |
| parent | 904bbb32cf379ae0819c5101f1dcdfe999c582c6 (diff) | |
| download | Tango-4ff8fc0265f11be7b73548e36c7ee3d1debfb8e4.tar.gz Tango-4ff8fc0265f11be7b73548e36c7ee3d1debfb8e4.zip | |
Calculate Dispenser Pressure in MPascal / Pascal / Bar / PSI
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c index d3d549063..8a51bc210 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_init.c @@ -25,16 +25,40 @@ float DispenserPressure[MAX_SYSTEM_DISPENSERS] = {0}; float CalculateDispenserPressure (int DispenserId) { unsigned short data = 0; - float temp= 0.0; + float temp = 0.0; +/* data = ADC_GetReading(DispenserIdToPressureSensorId[DispenserId]); temp = 4096 - data; temp *= 3; temp *= 1000; //move to mv temp /= 4096; DispenserPressure[DispenserId] = 3000 - temp; - return( DispenserPressure[DispenserId]); + */ + + float Vlow = 0.004 * 130; // 4mA*130ohm (0 Pascal) + float VHigh = 0.020 *130; // 20mA*130ohm (1M Pascal) + + float Bits_0Pascal = Vlow * 4096 / 3; // Vlow * 4096bit / 3Vref + float Bits_1MPascal = VHigh * 4096 / 3; // VHigh * 4096bit / 3Vref + + float a = (1 - 0) / (Bits_1MPascal - Bits_0Pascal);// Mpascal/Bits + + data = ADC_GetReading(DispenserIdToPressureSensorId[DispenserId]); + temp = Bits_1MPascal - data; + + temp = a * temp; + + DispenserPressure[DispenserId] = 1 - temp; // [Mpascal] ( 1 Mpascal = 10 Bar ) + + //unmark one of them to convert from Mpascal to : + //----------------------------------- + //DispenserPressure[DispenserId] / = 1000000; //Pascal + //DispenserPressure[DispenserId] *=10; //Bar; + //DispenserPressure[DispenserId] *=145.0377; //PSI; + + return( DispenserPressure[DispenserId]); } |
