Fixed issues related to Temperature and EC
This commit is contained in:
@@ -90,9 +90,10 @@ int main(void)
|
||||
uint32_t previous_millis_red = 0;
|
||||
uint32_t current_millis;
|
||||
|
||||
float ref_final;
|
||||
float reference_resistor_100R = 0, reference_resistor_1K = 0, temperature_RTD = 0, thermal_compensaded_EC = 0;
|
||||
|
||||
float mag_reference, mag_rtd, mag_ec;
|
||||
|
||||
float mag_rtd_reference = 0, mag_ec_reference = 0, mag_rtd = 0, mag_ec = 0;
|
||||
|
||||
/* USER CODE END 1 */
|
||||
|
||||
@@ -125,9 +126,6 @@ int main(void)
|
||||
|
||||
HAL_TIM_Base_Start_IT(&htim3);
|
||||
|
||||
//AD5934_MovingAvg_Init (&g_rtd_filter);
|
||||
//AD5934_MovingAvg_Init (&g_ref_filter);
|
||||
//AD5934_MovingAvg_Init (&g_ec_filter);
|
||||
|
||||
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_4, GPIO_PIN_SET); // LED Green Off
|
||||
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET); // LED Red Off
|
||||
@@ -143,7 +141,7 @@ int main(void)
|
||||
|
||||
/* Infinite loop */
|
||||
/* USER CODE BEGIN WHILE */
|
||||
/*
|
||||
|
||||
while(averages<20)
|
||||
{
|
||||
AD5934_Process_System();
|
||||
@@ -151,28 +149,15 @@ int main(void)
|
||||
|
||||
current_millis = g_ms_counter;
|
||||
|
||||
if((current_millis % 20) == 0) // Send data each 20ms
|
||||
if((current_millis % 100) == 0) // Send data each 40ms
|
||||
{
|
||||
if (g_ref_imag_filter.value_valid) // Reference Resistor on Board: 100 Ohms or 1000 Ohms
|
||||
{
|
||||
//reference_resistor = g_ref_filter.filtered_value;
|
||||
reference_resistor = sqrtf((g_ref_real_filter.filtered_value * g_ref_real_filter.filtered_value)+(g_ref_imag_filter.filtered_value * g_ref_imag_filter.filtered_value));
|
||||
//reference_resistor = ref_now;
|
||||
//uint16_t reference_final = AD5934_REF_OUT_SCALE_MAX - AD5934_Compress_To_IntScale(g_ref_filter.filtered_value, current_ref_mux);
|
||||
|
||||
averages++;
|
||||
}
|
||||
averages++;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
digital_outputs_toggle(0);
|
||||
digital_outputs_toggle(1);
|
||||
digital_outputs_toggle(2);
|
||||
digital_outputs_toggle(3);
|
||||
digital_outputs_toggle(4);
|
||||
digital_outputs_toggle(5);
|
||||
digital_outputs_toggle(6);
|
||||
digital_outputs_toggle(7);
|
||||
|
||||
|
||||
|
||||
while (1)
|
||||
@@ -181,88 +166,38 @@ int main(void)
|
||||
AD5934_Process_System();
|
||||
ADS1015_Process_System();
|
||||
|
||||
|
||||
current_millis = g_ms_counter;
|
||||
|
||||
if((current_millis % 500) == 0) // Send data each 100ms
|
||||
{
|
||||
|
||||
//if (g_ref_filter.value_valid) // Reference Resistor on Board: 100 Ohms or 1000 Ohms
|
||||
//{
|
||||
mag_reference = g_ref_filter.filtered_value;
|
||||
//mag_reference = sqrtf(((float)ref_now * (float)ref_now) + ((float)ref_now_i * (float)ref_now_i));
|
||||
//mag_reference = sqrtf((g_ref_real_filter.average * g_ref_real_filter.average)+(g_ref_imag_filter.average * g_ref_imag_filter.average));
|
||||
//mag_reference = (float)ref_now;
|
||||
//reference_resistor = g_ref_filter.filtered_value;
|
||||
//uint16_t reference_final = AD5934_REF_OUT_SCALE_MAX - AD5934_Compress_To_IntScale(g_ref_filter.filtered_value, current_ref_mux);
|
||||
|
||||
//intToStr(reference_final, tempString);
|
||||
//ref_final = g_ref_filter.filtered_value;
|
||||
FloatToString(tempString, mag_reference);
|
||||
//Convert2Hex(ref_now, tempString);
|
||||
//intToStr(ref_now, tempString);
|
||||
rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
|
||||
//intToStr(ref_now_i, tempString);
|
||||
//rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
|
||||
rs485_send_broadcast(&newline, 1);
|
||||
//}
|
||||
|
||||
//if (g_rtd_filter.value_valid) // PT100 or PT1000 in °C
|
||||
//{
|
||||
//mag_rtd = (float)rtd_now;
|
||||
mag_rtd = g_rtd_filter.filtered_value;
|
||||
//mag_rtd = sqrtf((g_rtd_real_filter.average * g_rtd_real_filter.average)+(g_rtd_imag_filter.average * g_rtd_imag_filter.average));
|
||||
//mag_rtd = sqrtf(((float)rtd_now * (float)rtd_now) + ((float)rtd_now_i * (float)rtd_now_i));
|
||||
//temperature_RTD = AD5934_Calculate_Temperature(mag_reference, mag_rtd);
|
||||
temperature_RTD = AD5934_Calculate_Temperature(mag_reference,mag_rtd);// AD5934_GetImpedance(mag_reference,mag_rtd);//
|
||||
//uint16_t rtd_final = AD5934_RTD_OUT_SCALE_MAX - AD5934_Compress_To_IntScale(g_rtd_filter.filtered_value, current_rtd_mux);
|
||||
//uint16_t rtd_final = AD5934_Compress_To_IntScale(temperature_RTD, current_rtd_mux);
|
||||
//intToStr(rtd_final, tempString);
|
||||
//float rtd_final = g_rtd_filter.filtered_value; //g_rtd_filter.filtered_value;
|
||||
FloatToString(tempString, temperature_RTD);
|
||||
//Convert2Hex(rtd_now, tempString);
|
||||
//intToStr(rtd_now, tempString);
|
||||
rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
|
||||
//Convert2Hex(rtd_now_i, tempString);
|
||||
//intToStr(rtd_now_i, tempString);
|
||||
//rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
|
||||
rs485_send_broadcast(&newline, 1);
|
||||
|
||||
//}
|
||||
/*if (g_rtd_imag_filter.value_valid) // PT100 or PT1000 in °C
|
||||
if (g_rtd_filter.value_valid) // PT100 or PT1000 in °C
|
||||
{
|
||||
|
||||
//float mag_rtd = sqrtf((g_rtd_real_filter.filtered_value * g_rtd_real_filter.filtered_value)+(g_rtd_imag_filter.filtered_value * g_rtd_imag_filter.filtered_value));
|
||||
temperature_RTD = AD5934_Calculate_Temperature(reference_resistor, mag_rtd);
|
||||
temperature_RTD = AD5934_Calculate_Temperature(g_ref_100R_LowGain_filter.filtered_value, g_ref_1K_MidGain_filter.filtered_value, g_rtd_filter.filtered_value);// AD5934_GetImpedance(mag_reference,mag_rtd);//
|
||||
//uint16_t rtd_final = AD5934_RTD_OUT_SCALE_MAX - AD5934_Compress_To_IntScale(g_rtd_filter.filtered_value, current_rtd_mux);
|
||||
//uint16_t rtd_final = AD5934_Compress_To_IntScale(temperature_RTD, current_rtd_mux);
|
||||
//intToStr(rtd_final, tempString);
|
||||
float rtd_final = temperature_RTD; //g_rtd_filter.filtered_value;
|
||||
FloatToString(tempString, rtd_final);
|
||||
uint16_t rtd_final = AD5934_Compress_To_IntScale(temperature_RTD, current_rtd_mux);
|
||||
intToStr(rtd_final, tempString);
|
||||
//FloatToString(tempString, temperature_RTD);
|
||||
rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
|
||||
rs485_send_broadcast(&newline, 1);
|
||||
}*/
|
||||
|
||||
//if (g_ec_filter.value_valid) // EC
|
||||
//{
|
||||
//mag_ec = sqrtf((g_ec_real_filter.filtered_value * g_ec_real_filter.filtered_value)+(g_ec_imag_filter.filtered_value * g_ec_imag_filter.filtered_value));
|
||||
mag_ec = sqrtf(((float)ec_now * (float)ec_now) + ((float)ec_now_i * (float)ec_now_i));
|
||||
}
|
||||
if (g_ec_filter.value_valid) // EC
|
||||
{
|
||||
mag_ec = AD5934_GetAdmittance(g_ref_100R_MidGain_filter.filtered_value, g_ref_1K_MidGain_filter.filtered_value, g_ref_1K_HighGain_filter.filtered_value, g_ref_10K_HighGain_filter.filtered_value, g_ec_filter.filtered_value);
|
||||
thermal_compensaded_EC = AD5934_EC_Compensate_Magnitude_To_25C(mag_ec, temperature_RTD);
|
||||
//uint16_t ec_final = AD5934_Compress_To_IntScale(thermal_compensaded_EC, current_ec_mux);
|
||||
|
||||
//intToStr(ec_now, tempString);
|
||||
// float ec_final = g_ec_filter.filtered_value;
|
||||
FloatToString(tempString, mag_ec);
|
||||
//Convert2Hex((ec_now+0x80008000), tempString);
|
||||
uint16_t ec_final = AD5934_Compress_To_IntScale(mag_ec, current_ec_mux);
|
||||
intToStr(ec_final, tempString);
|
||||
//FloatToString(tempString, thermal_compensaded_EC);
|
||||
rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
|
||||
//intToStr(ec_now_i, tempString);
|
||||
//rs485_send_broadcast(tempString, (strlen((uint8_t*)tempString)));
|
||||
rs485_send_broadcast(&newline, 1);
|
||||
//}
|
||||
}
|
||||
|
||||
if (g_ph_filter.value_valid) // pH
|
||||
{
|
||||
uint16_t ph_final = ADS1015_Compress_To_IntScale(g_ph_filter.filtered_value);
|
||||
|
||||
intToStr(ph_final, tempString);
|
||||
//float ph_final = g_ph_filter.filtered_value;
|
||||
//FloatToString(tempString, ph_final);
|
||||
@@ -275,6 +210,7 @@ int main(void)
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Piscar LED verde em PB4 a cada 1 segundo
|
||||
if ((current_millis - previous_millis_green) >= 1000)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user