/** * @file ALGO_Temperature_ATY.h * * @param Project ALGO_Algorithm_ATY_LIB * * @author ATY * * @copyright * - Copyright 2017 - 2026 MZ-ATY * - This code follows: * - MZ-ATY Various Contents Joint Statement - * * https://mengze.top/MZ-ATY_VCJS * - CC 4.0 BY-NC-SA - * * https://creativecommons.org/licenses/by-nc-sa/4.0/ * - Your use will be deemed to have accepted the terms of this statement. * * @brief functions of NTC or others temperature calc * * @version * - 1_01_230107 > ATY * -# Preliminary version, first Release * - 1_02_251120 > ATY * -# Full test ******************************************************************************** */ #ifndef __ALGO_Temperature_ATY_H #define __ALGO_Temperature_ATY_H #include "INCLUDE_ATY.h" /******************************* For user *************************************/ /******************************************************************************/ #define ALGO_TEMP_Kelvin_T0 0 // K #define ALGO_TEMP_Celsius_C0 0 // C #define ALGO_TEMP_Fahrenheit_F0 0 // F #define ALGO_TEMP_TtoC(T) ((T) - 273.15) #define ALGO_TEMP_CtoT(C) ((C) + 273.15) #define ALGO_TEMP_CtoF(C) ((C) * 1.8 + 32) #define ALGO_TEMP_FtoC(F) (((F) - 32 ) / 1.8) #define ALGO_TEMP_FtoT(F) (ALGO_TEMP_CtoT(ALGO_TEMP_FtoC((F)))) #define ALGO_TEMP_TtoF(T) (ALGO_TEMP_CtoF(ALGO_TEMP_TtoC((T)))) /** * @brief Calculate resistance from ADC voltage, NTC down(pull up) * @param vADC ADC voltage in mV * @param vRef NTC ref voltage in mV * @param rRefK ref resistance in kOhm */ #define ALGO_VoltageToResDown(vADC, vRef, rRefK) \ (((double)rRefK * (double)vADC) / ((double)vRef - (double)vADC)) /** * @brief Calculate resistance from ADC voltage, NTC up(pull down) * @param vADC ADC voltage in mV * @param vRef NTC ref voltage in mV * @param rRefK ref resistance in kOhm */ #define ALGO_VoltageToResUp(vADC, vRef, rRefK) \ (((double)rRefK * ((double)vRef - (double)vADC)) / (double)vADC) double ALGO_ResToKelvinTemp(double Rntc, double R25, double B); double ALGO_VolToKelvinTemp(double vADC, double vRef, double rRefK, double R25, double B, uint8_t rRefPos); double ALGO_ResToKelvinTempABC(double Rntc, double A, double B, double C); double ALGO_Temp_RTD_T(double T); double ALGO_Temp_RTD_Res_Fast(double rtdRes); double ALGO_Temp_RTD_Res_Above(double rtdRes); double ALGO_Temp_RTD_Res_Below(double rtdRes); double ALGO_Temp_RTD_Res_PT100(double resist); double ALGO_Temp_RTD_Res_PT1000(double resist); double ALGO_Temp_TC_TempToVol(uint8_t type, double Temp); double ALGO_Temp_TC_VolToTemp(uint8_t type, double voltage); double ALGO_RT_Table_R2T(double R, const double* tableT, const double* tableR, uint16_t tableSize); double ALGO_RT_Table_T2R(double T, const double* tableT, const double* tableR, uint16_t tableSize); // #define ALGO_Temperature_ATY_Test_ATY #ifdef ALGO_Temperature_ATY_Test_ATY uint32_t ALGO_Temperature_ATY_Test(void); #endif /* ALGO_Temperature_ATY_Test_ATY */ #endif /* __ALGO_Temperature_ATY_H */ /******************************** End Of File *********************************/