You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.3 KiB
65 lines
1.3 KiB
#ifndef THREE_WAY_VALVE_H
|
|
#define THREE_WAY_VALVE_H
|
|
|
|
#include <stm32f4xx_hal.h>
|
|
|
|
// 定义三通阀控制和检测相关的引脚
|
|
#define POWER_OUT_PIN GPIO_PIN_4 // 三通阀供电
|
|
#define POWER_OUT_PORT GPIOE
|
|
#define VT_OUT_PIN GPIO_PIN_11 // 三通阀 VT 管脚
|
|
#define VT_OUT_PORT GPIOE
|
|
|
|
#define INT_1_PIN GPIO_PIN_9 // 对应三通阀 OUT1
|
|
#define INT_1_PORT GPIOF
|
|
#define INT_2_PIN GPIO_PIN_10 // 对应三通阀 OUT2
|
|
#define INT_2_PORT GPIOF
|
|
|
|
#define READ_FLIP 0 // read 电平反转
|
|
|
|
/**
|
|
* 控制
|
|
* VT H ON_C
|
|
* VT L OFF_C
|
|
*
|
|
* 反馈状态
|
|
* INT_2 INT_1 状态
|
|
* L H ON_C
|
|
* H L OFF_C
|
|
*/
|
|
|
|
class ThreeWayValve {
|
|
public:
|
|
enum ValveMode {
|
|
ON_C = 0x00, // ON 连通 上电
|
|
OFF_C = 0x01, // OFF 连通 断电
|
|
ON_OFF_NC = 0x02 // ON OFF 关闭
|
|
};
|
|
|
|
ThreeWayValve();
|
|
|
|
// 初始化 GPIO 引脚
|
|
void initGPIO();
|
|
|
|
// 设置模式
|
|
void setMode(ValveMode mode);
|
|
|
|
// 获取模式
|
|
ValveMode getMode();
|
|
|
|
void powerOn();
|
|
void powerOff();
|
|
|
|
private:
|
|
|
|
|
|
// 设置 触发电压使能
|
|
void setVtEnable(bool enable);
|
|
|
|
// true 高电平 false 低电平
|
|
bool getVOUT1State();
|
|
|
|
// true 高电平 false 低电平
|
|
bool getVOUT2State();
|
|
};
|
|
|
|
#endif // THREE_WAY_VALVE_H
|