Heater PID closed-loop on PB12 (HEAT_EN) with safety protections

This commit is contained in:
2026-10-10 10:04:48 +08:00
parent 6246a87c3c
commit 30540d884d
8 changed files with 276 additions and 40 deletions
+15
View File
@@ -143,6 +143,21 @@ void usart1_irq_handler(void);
#define PWR_HOLD_PORT GPIOA
#define PWR_HOLD_PIN GPIO_PIN_11
/* >>>>>>>>>>>>>>>>>>>>[HEATER OUTPUT(加热驱动 PB12=HEAT_EN)]<<<<<<<<<<<<<<<<<<<< */
/* PB12:高 = 加热开,低 = 关(2N7002K 电平转换 → VBE2412 PMOS → 24V 加热回路)。
开关频率限制:慢 PWM 周期 1s、占空比 10% 步进——脉宽恒 >=100ms,开关频率恒 1Hz。 */
#define HEATER_EN_RCU RCU_GPIOB
#define HEATER_EN_PORT GPIOB
#define HEATER_EN_PIN GPIO_PIN_12
#define HEATER_PWM_PERIOD_MS 1000U /* PWM 载波周期(1s,恒 1Hz 开关频率) */
#define HEATER_PWM_STEP_PCT 10U /* 占空比步进(每档脉宽 = 100ms) */
#define HEATER_PID_PERIOD_MS 500U /* PID 计算周期 */
#define HEATER_PID_KP 8.0f /* PID 参数:初值,需上板实测整定 */
#define HEATER_PID_KI 0.05f
#define HEATER_PID_KD 0.0f /* NTC 噪声对微分放大,先禁用 */
#define HEATER_OVERTEMP_C 150.0f /* 过温强制关断阈值(滞回保护) */
#define HEATER_OVERTEMP_HYST 5.0f /* 过温恢复滞回 */
/******************************************************************************/
#define DEBUG_UART USART1