/** * @file ALGO_Temperature_ATY.h * * @param Project ALGO_Algorithm_ATY_LIB * * @author ATY * * @copyright * - Copyright 2017 - 2023 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 Familiar functions of NTC or others temperature calc * * @version * - 1_01_230107 > ATY * -# Preliminary version, first Release ******************************************************************************** */ #ifndef __ALGO_Temperature_ATY_H #define __ALGO_Temperature_ATY_H #include "INCLUDE_ATY.h" #include "ALGO_AlgorithmBase_ATY.h" /******************************* For user *************************************/ // #define __DEBUG_ALGO_Temperature_ATY /******************************************************************************/ #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) \ (((float)rRefK * (float)vADC) / ((float)vRef - (float)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) \ (((float)rRefK * ((float)vRef - (float)vADC)) / (float)vADC) float ALGO_ResToKelvinTempABC(float Rntc, float A, float B, float C); float ALGO_ResToKelvinTemp(float Rntc, float R25, float B); float ALGO_VolToKelvinTemp(float vADC, float vRef, float rRefK, float R25, float B, uint8_t rRefPos); float ALGO_Temp_RTD_Res_Fast(float rtdRes); float ALGO_Temp_RTD_Res_Above(float rtdRes); float ALGO_Temp_RTD_Res_Below(float rtdRes); double ALGO_Temp_RTD_T_PT1000(double T); double ALGO_Temp_RTD_Res_PT100(double resist); double ALGO_Temp_RTD_Res_PT1000(double resist); float ALGO_Temp_TC_TempToVol(uint8_t type, float Temp); float ALGO_Temp_TC_VolToTemp(uint8_t type, float voltage); #endif /* __ALGO_Temperature_ATY_H */ /******************************** End Of File *********************************/