基于与STM32的加湿器之雾化片驱动

基于与STM32的加湿器之雾化片驱动

  加湿器是一种由电力驱动,用于增加环境湿度的家用电器。加湿器通过特定的方式(如蒸发、超声波振动或加热)将水转化为水蒸气,并将这些水蒸气释放到空气中,从而增加空气中的湿度。主要功效是改善室内环境的湿度,减少因空气干燥带来的不适,如皮肤干燥、喉咙不适等。同时,加湿器还能在一定程度上减少空气中的浮尘,去除异味,并创造更舒适的居住环境。

1.工作原理

  根据工作原理的不同,加湿器主要分为以下几类:

  蒸发式加湿器:利用风机的作用使水蒸发并扩散到空气中,达到加湿的目的。这种加湿器使用方便、无噪音,适合在需要安静环境的场所使用。

  超声波加湿器:通过高频震荡将水雾化为超微小颗粒,并通过小风扇将水雾扩散到空气中。超声波加湿器的加湿效果好,能快速提高空气湿度,但可能会产生一定的噪音。

  加热加湿器:通过加热将水转化为水蒸气并释放到空气中。加热加湿器不仅能增加空气湿度,还能杀死空气中的细菌和病毒,改善室内空气质量。但加热加湿器需要较高的能耗,并在加热过程中可能产生噪音。

2.市场与发展

  随着人们生活水平的提高和对居住环境舒适度的要求增加,加湿器的市场需求不断增长。市场上出现了各种品牌、型号的加湿器产品,以满足不同消费者的需求。未来加湿器产品将更加智能化、便捷化。例如,通过智能控制实现自动调节湿度、与智能家居系统联动等功能。同时,随着环保意识的提高和技术的进步,节能、环保的加湿器产品也将受到更多消费者的青睐。

3.加湿器雾化片驱动

  加湿器雾化片是加湿器中的核心部件,负责将水分子雾化成微小的颗粒,并释放到空气中,从而增加空气湿度。

  加湿器雾化片,也称为超声波雾化片或换能片,是一种利用超声波振动原理将液态水转化为气态水雾的装置。通过高频振动将水分子打散成微小颗粒,形成水雾,并随着空气流动扩散到室内,达到加湿的效果。

  随着加湿器市场的不断扩大和消费者需求的多样化,加湿器雾化片的生产和研发也在不断进步。目前市场上已经出现了多种类型的雾化片产品,如超声波雾化片、压电陶瓷雾化片等。

  本次采用的加湿器雾化片为超声波雾化片,采用5V工作电压,工作频为110KHZ,工作电流大约300mA,2.0接线端子。硬件实物如下图所示:

  加湿器雾化片硬件电路设计如下图所示:

  使用NMOS管实现PWM输出110KHZ频率,外加三脚升压电感升压实现雾化片驱动。利用电感的互感特性,将初级电能转化为磁能,磁能感应到次级时,次级将磁能再转换成电能,一系列的电磁转换过程,只要将初级设计成一个小感量,次级设计成一个大感量,当电感器流过一个交变的电流,就可以达到一个升压的效果。三角电感实物图和封装如下图所示:

  本次设计采用的三脚电感参数为6*8(25uH+800uH)。

3.加湿器雾化片驱动

3.1 HAL库配置PWM模式

  本次雾化片驱动引脚为PB9,可通过TIM4_CH4通道进行驱动。使用HAL库配置信息如下:

3.2 PWM代码生成

  TIM4_CH4初始化代码如下:

c 复制代码
void MX_TIM4_Init(void)
{

  /* USER CODE BEGIN TIM4_Init 0 */

  /* USER CODE END TIM4_Init 0 */

  TIM_ClockConfigTypeDef sClockSourceConfig = {0};
  TIM_MasterConfigTypeDef sMasterConfig = {0};
  TIM_OC_InitTypeDef sConfigOC = {0};

  /* USER CODE BEGIN TIM4_Init 1 */

  /* USER CODE END TIM4_Init 1 */
  htim4.Instance = TIM4;//定时器4
  htim4.Init.Prescaler = 0;//预分配系数
  htim4.Init.CounterMode = TIM_COUNTERMODE_UP;//向上计数
  htim4.Init.Period = 654;//重装载值,一个技术周期时间:1/72*654=9.08us,约为110KHZ
  htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;//无时钟分频因子
  htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;//自动重装载允许
  if (HAL_TIM_Base_Init(&htim4) != HAL_OK)//定时器初始化
  {
    Error_Handler();
  }
  sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;//时钟源
  if (HAL_TIM_ConfigClockSource(&htim4, &sClockSourceConfig) != HAL_OK)
  {
    Error_Handler();
  }
  if (HAL_TIM_PWM_Init(&htim4) != HAL_OK)//初始化定时器
  {
    Error_Handler();
  }
  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK)
  {
    Error_Handler();
  }
  sConfigOC.OCMode = TIM_OCMODE_PWM1;//PWM模式1
  sConfigOC.Pulse = 0;//占空比
  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;//有效电平为高电平
  sConfigOC.OCFastMode = TIM_OCFAST_ENABLE;//快速比较使能
  if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_4) != HAL_OK)//TIM4_PWM初始化
  {
    Error_Handler();
  }
  /* USER CODE BEGIN TIM4_Init 2 */

  /* USER CODE END TIM4_Init 2 */
  HAL_TIM_MspPostInit(&htim4);//定时器引脚与时钟配置

}

  定时器4通道4硬件引脚配置和启动代码示例:

c 复制代码
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
{

  GPIO_InitTypeDef GPIO_InitStruct = {0};
  if(timHandle->Instance==TIM4)
  {
  /* USER CODE BEGIN TIM4_MspPostInit 0 */

  /* USER CODE END TIM4_MspPostInit 0 */

    __HAL_RCC_GPIOB_CLK_ENABLE();//开启PB时钟
    /**TIM4 GPIO Configuration
    PB9     ------> TIM4_CH4
    */
    GPIO_InitStruct.Pin = GPIO_PIN_9;//PB9
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;//复用推挽输出
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;//响应速度
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  /* USER CODE BEGIN TIM4_MspPostInit 1 */
		HAL_TIM_PWM_Start(timHandle,TIM_CHANNEL_4);//初始化通道4
  /* USER CODE END TIM4_MspPostInit 1 */
  }
}

3.3 主函数和启动加湿器

c 复制代码
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_TIM4_Init();
  MX_USART2_UART_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */
	printf("串口初始化完成\r\n");
	TIM4->CCR4=327;//设置占空比,高低电平各占一半
/* USER CODE END 2 */
while(1)
{

}

4.运行效果

相关推荐
十月的皮皮2 天前
stm20260720-从新手 C 到量产 STM32 工程:程序设计推导指南
c语言·开发语言·stm32·stm32cubemx·hal库
开发笔记-阿牛2 天前
解析一款有意思的产品||CK6159A语音芯片设计的儿童专注力训练机-舒尔特玩具
stm32·单片机·嵌入式硬件·音频
搞全栈小苏2 天前
SIMetrix_simplis8.4安装教程——附安装包
stm32·单片机·嵌入式硬件·电力电子
qq_573967822 天前
STM32控制器
stm32·单片机·嵌入式硬件
某林2122 天前
履带小车底盘stm32F103RCT6开发
人工智能·stm32·单片机·嵌入式硬件·架构·人机交互·ros2
做萤石二次开发的哈哈2 天前
萤石 ERTC Windows SDK 包含哪些类型定义?
stm32·单片机·嵌入式硬件
亿道电子Emdoor2 天前
【Aitium】PCB导出DXF文件出现eDuplicateRecordName报错
stm32·单片机·嵌入式硬件·altium
巴巴媛6663 天前
STM32学习笔记【38.DHT11实验】
笔记·stm32·学习
深圳市泰凌微电子3 天前
HK航顺 HK32F407RGT7替STM32F405RGT6 微控制器32位MCU
stm32·单片机·嵌入式硬件
小心亦新3 天前
STM32学习16--定时器输出比较2直流电机
stm32·嵌入式硬件·学习