基质喷涂
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

#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