Fertirrega_v6 Scaled to 4096

This commit is contained in:
2026-07-29 17:55:04 +01:00
parent f1cf74ceaf
commit c90139bd57
17 changed files with 11748 additions and 11171 deletions
+97 -3
View File
@@ -194,10 +194,26 @@ extern "C" {
#define AD5934_TIME_PER_SWEEP 60 // 60 ms entre o início de cada sweep
#define AD5934_TIME_MUX_SETTLING 10 // 10 ms de espera após trocar o MUX
#define AD5934_BURST_SIZE 7
#define AD5934_BURST_SIZE 5
#define AD5934_TRIM_COUNT 1
#define AD5934_HISTORY_SIZE 8
#define AD5934_IIR_ALPHA 0.25f
#define AD5934_HISTORY_SIZE 6
#define AD5934_IIR_ALPHA 0.4f
#define AD5934_EC_FLOAT_SCALE_MIN 0.0f
#define AD5934_EC_FLOAT_SCALE_MAX 15000.0f
#define AD5934_EC_OUT_SCALE_MIN 0
#define AD5934_EC_OUT_SCALE_MAX 4096
#define AD5934_REF_FLOAT_SCALE_MIN 1850.0f
#define AD5934_REF_FLOAT_SCALE_MAX 2450.0f
#define AD5934_REF_OUT_SCALE_MIN 0
#define AD5934_REF_OUT_SCALE_MAX 4096
#define AD5934_RTD_FLOAT_SCALE_MIN 1850.0f
#define AD5934_RTD_FLOAT_SCALE_MAX 2450.0f
#define AD5934_RTD_OUT_SCALE_MIN 0
#define AD5934_RTD_OUT_SCALE_MAX 4096
@@ -256,6 +272,7 @@ typedef enum {
} AD5934_State_t;
typedef struct {
float burst[AD5934_BURST_SIZE];
uint8_t burst_index;
@@ -290,6 +307,79 @@ static const uint8_t ADG715_Channel_Map[AD5934_CH_MAX] = {
[AD5934_CH_EC_HIGH_GAIN] = (ADG715_SW3 | ADG715_SW8)
};
static const float AD5934_Scale_Float_Min[AD5934_CH_MAX] = {
AD5934_REF_FLOAT_SCALE_MIN,
AD5934_REF_FLOAT_SCALE_MIN,
AD5934_REF_FLOAT_SCALE_MIN,
AD5934_REF_FLOAT_SCALE_MIN,
AD5934_REF_FLOAT_SCALE_MIN,
AD5934_REF_FLOAT_SCALE_MIN,
AD5934_REF_FLOAT_SCALE_MIN,
AD5934_REF_FLOAT_SCALE_MIN,
AD5934_REF_FLOAT_SCALE_MIN,
AD5934_RTD_FLOAT_SCALE_MIN,
AD5934_RTD_FLOAT_SCALE_MIN,
AD5934_RTD_FLOAT_SCALE_MIN,
AD5934_EC_FLOAT_SCALE_MIN,
AD5934_EC_FLOAT_SCALE_MIN,
AD5934_EC_FLOAT_SCALE_MIN
};
static const float AD5934_Scale_Float_Max[AD5934_CH_MAX] = {
AD5934_REF_FLOAT_SCALE_MAX,
AD5934_REF_FLOAT_SCALE_MAX,
AD5934_REF_FLOAT_SCALE_MAX,
AD5934_REF_FLOAT_SCALE_MAX,
AD5934_REF_FLOAT_SCALE_MAX,
AD5934_REF_FLOAT_SCALE_MAX,
AD5934_REF_FLOAT_SCALE_MAX,
AD5934_REF_FLOAT_SCALE_MAX,
AD5934_REF_FLOAT_SCALE_MAX,
AD5934_RTD_FLOAT_SCALE_MAX,
AD5934_RTD_FLOAT_SCALE_MAX,
AD5934_RTD_FLOAT_SCALE_MAX,
AD5934_EC_FLOAT_SCALE_MAX,
AD5934_EC_FLOAT_SCALE_MAX,
AD5934_EC_FLOAT_SCALE_MAX
};
static const uint16_t AD5934_Scale_Out_Min[AD5934_CH_MAX] = {
AD5934_REF_OUT_SCALE_MIN,
AD5934_REF_OUT_SCALE_MIN,
AD5934_REF_OUT_SCALE_MIN,
AD5934_REF_OUT_SCALE_MIN,
AD5934_REF_OUT_SCALE_MIN,
AD5934_REF_OUT_SCALE_MIN,
AD5934_REF_OUT_SCALE_MIN,
AD5934_REF_OUT_SCALE_MIN,
AD5934_REF_OUT_SCALE_MIN,
AD5934_RTD_OUT_SCALE_MIN,
AD5934_RTD_OUT_SCALE_MIN,
AD5934_RTD_OUT_SCALE_MIN,
AD5934_EC_OUT_SCALE_MIN,
AD5934_EC_OUT_SCALE_MIN,
AD5934_EC_OUT_SCALE_MIN
};
static const uint16_t AD5934_Scale_Out_Max[AD5934_CH_MAX] = {
AD5934_REF_OUT_SCALE_MAX,
AD5934_REF_OUT_SCALE_MAX,
AD5934_REF_OUT_SCALE_MAX,
AD5934_REF_OUT_SCALE_MAX,
AD5934_REF_OUT_SCALE_MAX,
AD5934_REF_OUT_SCALE_MAX,
AD5934_REF_OUT_SCALE_MAX,
AD5934_REF_OUT_SCALE_MAX,
AD5934_REF_OUT_SCALE_MAX,
AD5934_RTD_OUT_SCALE_MAX,
AD5934_RTD_OUT_SCALE_MAX,
AD5934_RTD_OUT_SCALE_MAX,
AD5934_EC_OUT_SCALE_MAX,
AD5934_EC_OUT_SCALE_MAX,
AD5934_EC_OUT_SCALE_MAX
};
extern int16_t temperature_dut_samples[2][AD5934_TEMP_AVERAGES];
extern int16_t temperature_ref_samples[2][AD5934_TEMP_AVERAGES];
extern float temperature_display[AD5934_TEMP_AVERAGES];
@@ -335,12 +425,16 @@ float AD5934_Get_Ref_Resistance(void);
float AD5934_GetTemperature(float mag_ref);
float AD5934_Calculate_Temperature(float mag_ref, float mag_dut);
float AD5934_GetImpedance(float temperature_dut);
float AD5934_GetMagnitude(void);
void AD5934_Wait_For_Data_Valid(void);
uint16_t AD5934_Compress_To_IntScale(float value, uint8_t scale);
float AD5934_Round_Float_Precision(float value, uint8_t number_of_decimals);
float AD5934_Linear_Correction(float raw_value);
+3 -3
View File
@@ -130,8 +130,8 @@ extern "C" {
#define ADS1015_BURST_SIZE 5
#define ADS1015_TRIM_COUNT 1
#define ADS1015_HISTORY_SIZE 8
#define ADS1015_IIR_ALPHA 0.3f
#define ADS1015_HISTORY_SIZE 6
#define ADS1015_IIR_ALPHA 0.4f
@@ -186,7 +186,7 @@ typedef struct {
extern ADS1015_filter_t g_ph_filter;
extern volatile uint32_t g_ms_counter; // Increment each 1ms Timer
void ADS1015(ADS1015_I2C* i2c, I2C_HandleTypeDef* hi2c, uint8_t i2cAddress);
void ADS1015_Init(void);
uint16_t ADSreadADC_SingleEnded(ADS1015_I2C* i2c, uint8_t channel);
int16_t ADSreadADC_Differential_0_1(ADS1015_I2C* i2c);
int16_t ADSreadADC_Differential_2_3(ADS1015_I2C* i2c);