STM32控制气泵和电磁阀实现

您所在的位置:网站首页 氧气泵和气泵的区别在哪里 STM32控制气泵和电磁阀实现

STM32控制气泵和电磁阀实现

2024-07-09 22:37| 来源: 网络整理| 查看: 265

一、功能简介

     使用STM32控制气泵和电磁阀的开和关,气泵和电磁阀的供电电压为12V。

二、实现过程

1、气泵和电磁阀的开和关均为开关量,实现控制方法有多种,比如继电器,但是继电器动作有噪声且体积较大,更好的方法为使用mos管。

2、mos管的选型:mos管选择主要注意两个参数即可,一是导通的电流,二是耐压值,并且常用NMOS管,根据要求,气泵和电磁阀供电电压为12V,所以选择的mos管耐压值要大于12V,这里选用耐压值为30V的MOS管,并且导通电流为5.8A,如下图

3、控制电路:

4、程序代码

/* 引脚 定义 */ #define LED0_GPIO_PORT GPIOB #define LED0_GPIO_PIN GPIO_PIN_0 #define LED0_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOB_CLK_ENABLE(); }while(0) /* PB口时钟使能 */ #define LED1_GPIO_PORT GPIOB #define LED1_GPIO_PIN GPIO_PIN_1 #define LED1_GPIO_CLK_ENABLE() do{ __HAL_RCC_GPIOB_CLK_ENABLE(); }while(0) /* PB口时钟使能 */ void led_init(void) { GPIO_InitTypeDef gpio_init_struct; LED0_GPIO_CLK_ENABLE(); /* LED0时钟使能 */ LED1_GPIO_CLK_ENABLE(); /* LED1时钟使能 */ gpio_init_struct.Pin = LED0_GPIO_PIN; /* LED0引脚 */ gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP; /* 推挽输出 */ gpio_init_struct.Pull = GPIO_PULLUP; /* 上拉 */ gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH; /* 高速 */ HAL_GPIO_Init(LED0_GPIO_PORT, &gpio_init_struct); /* 初始化LED0引脚 */ gpio_init_struct.Pin = LED1_GPIO_PIN; /* LED1引脚 */ HAL_GPIO_Init(LED1_GPIO_PORT, &gpio_init_struct); /* 初始化LED1引脚 */ LED0(1); /* 关闭 LED0 */ LED1(1); /* 关闭 LED1 */ } int main(void) { uint8_t key; HAL_Init(); /* 初始化HAL库 */ sys_stm32_clock_init(RCC_PLL_MUL9); /* 设置时钟, 72Mhz */ delay_init(72); /* 延时初始化 */ led_init(); /* 初始化LED */ key_init(); /* 初始化按键 */ LED0(0); /* 先点亮LED0 */ while(1) { key = key_scan(0); /* 得到键值 */ if (key) { switch (key) { case WKUP_PRES: /* 控制蜂鸣器 */ LED0_TOGGLE(); /* LED0状态取反 */ break; case KEY1_PRES: /* 控制LED1(GREEN)翻转 */ LED1_TOGGLE(); /* LED1状态取反 */ break; case KEY0_PRES: /* 同时控制LED0, LED1翻转 */ LED0_TOGGLE(); /* LED0状态取反 */ LED1_TOGGLE(); /* LED1状态取反 */ break; } } else { delay_ms(10); } } }

最终实现单片机控制气泵和电磁阀的开和关。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3