Обновление
This commit is contained in:
parent
a56859a4c2
commit
460ad6a3b0
|
|
@ -0,0 +1,52 @@
|
|||
//
|
||||
// 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;
|
||||
}
|
||||
Loading…
Reference in New Issue