// // Created by cfif on 27.01.2026. // #include "stdint.h" // Функция для вычисления давления в кгс/см² float calculate_pressure_kgf_cm2(uint32_t adc_value) { float vdd = 5.0f; // Напряжение питания float vout; // Выходное напряжение датчика float pressure; // Давление в кгс/см² // Преобразуем значение АЦП в напряжение (12 бит = 4095) vout = ((float)adc_value / 4095.0f) * vdd; // Вычисляем давление по формуле из даташита: // Vout = Vdd * (0.025 * P + 0.1) // Решаем относительно P: // P = (Vout/Vdd - 0.1) / 0.025 pressure = (vout/vdd - 0.1f) / 0.025f; return pressure; } // Функция для вычисления давления в MPa float calculate_pressure_mpa(uint32_t adc_value) { float vdd = 5.0f; float vout; float pressure; vout = ((float)adc_value / 4095.0f) * vdd; // Для MPa: Vout = Vdd * (0.254929 * P + 0.1) // P = (Vout/Vdd - 0.1) / 0.254929 pressure = (vout/vdd - 0.1f) / 0.254929f; return pressure; } // Функция для вычисления давления в PSIA float calculate_pressure_psia(uint32_t adc_value) { float vdd = 5.0f; float vout; float pressure; vout = ((float)adc_value / 4095.0f) * vdd; // Для PSIA: Vout = Vdd * (0.001758 * P + 0.074126) // P = (Vout/Vdd - 0.074126) / 0.001758 pressure = (vout/vdd - 0.074126f) / 0.001758f; return pressure; }