0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于CW32 MCU的L9110风扇模块设计

武汉芯源半导体 来源:武汉芯源半导体 2023-09-06 10:02 次阅读

一、简介

1. L9110风扇模块是一种常见的电机驱动模块,可以用于控制小型直流风扇的转动,常被用于:

(1)电子设备散热:将L9110风扇模块连接到需要散热的电子设备上,通过控制风扇的转速来提高设备的散热效果,保持设备的正常工作温度。

(2) DIY电子项目:L9110风扇模块是制作各种DIY电子项目的理想选择。通过将其与微控制器板结合使用,可以构建自己的智能风扇、温度控制系统等。这为爱好者提供了灵活性和创造力的发挥空间。

(3)模型制作:L9110风扇模块也可以在模型制作领域中找到应用。通过将风扇模块嵌入模型中,并通过控制模块来改变风扇的速度和转向,可以增加模型的真实感和互动性。

2.本实验用到了CW32F030C8T6小蓝板、L9110风扇模块、LED通信号灯模块、轻触微动立式按键开关及Keil5开发环境。

二、风扇三档转速调节系统说明

(1)L9110风扇模块

L9110风扇模块,可控制正反转,具有安装孔,可以吹灭20cm外的打火机或蜡烛火焰,经常被用于灭火机器人之上。

【连线】:VCC连5V,GND连GND,INA连PA0,INB连PA1

(2)LED交通信号灯模块

【连线】:GND连GND,R连PC13,Y连PC14,G连PC15

(3)轻触微动立式按键开关

【连线】:VCC连+3.3V,GND连GND,OUT接PB9

三、核心代码

L9110.c:
#include "L9110.h"
#include "GTIM.h"


void L9110_GPIO_Init()      //INA接PA0,INB接PA1
{
  __RCC_GPIOA_CLK_ENABLE();
  
  GPIO_InitTypeDef GPIO_InitStruct;
  GPIO_InitStruct.IT = GPIO_IT_NONE; 
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //推挽输出模式
  GPIO_InitStruct.Pins = GPIO_PIN_0|GPIO_PIN_1;
  GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
  GPIO_Init(CW_GPIOA, &GPIO_InitStruct);
  
  PA00_AFx_GTIM2CH1();  //PA0引脚复用为GTIM通道1
  PA01_AFx_GTIM2CH2();  //PA1引脚复用为GTIM通道2
}


void Turn_around(int16_t value)  //风扇转动函数
{
  if(value>0)
  {
    GTIM_SetCompare1(CW_GTIM2,value); //设置CRR1的值为value
    GTIM_SetCompare2(CW_GTIM2,0);
  }
  else
  {
    GTIM_SetCompare1(CW_GTIM2,0);
    GTIM_SetCompare2(CW_GTIM2,-value);//设置CRR2的为value
  }
}
GTIM.c:
#include "GTIM.h"


void GTIM2_Init(void) //输出PWM到INA和INB引脚
{
  RCC_APBPeriphClk_Enable1(RCC_APB1_PERIPH_GTIM2,ENABLE);  //使能APB外设时钟
  
  GTIM_InitTypeDef GTIM_Initstruct;
  GTIM_Initstruct.Mode = GTIM_MODE_TIME;  //工作模式-->定时器模式
  GTIM_Initstruct.OneShotMode = GTIM_COUNT_CONTINUE;//连续计数模式
  GTIM_Initstruct.ToggleOutState = DISABLE;  //电平反转失能
  GTIM_Initstruct.Prescaler = BTIM_PRS_DIV64;  //预分频
  GTIM_Initstruct.ReloadValue =1000-1;//计数重载周期,16bit自动重载寄存器ARR,ARR的值最大为65535
  GTIM_TimeBaseInit(CW_GTIM2,>IM_Initstruct);
  //定时时长=预分频/计数器时钟源频率*(计数重载周期+1),即T=64/64000000*1000s=1ms
  GTIM_OCInit(CW_GTIM2,GTIM_CHANNEL1,GTIM_OC_OUTPUT_PWM_LOW);//向GTIMx_CCMR寄存器中的 CCyM 位写入0xF
  GTIM_OCInit(CW_GTIM2,GTIM_CHANNEL2,GTIM_OC_OUTPUT_PWM_LOW);
  //当 GTIM2_CNT <= GTIM2_CCR1(GTIM2_CCR2)时,CH1(CH2)通道输出高电平,否则输出低电平
  GTIM_Cmd(CW_GTIM2,ENABLE); //GTIM2使能
  
  GTIM_SetCompare1(CW_GTIM2,0); 
  GTIM_SetCompare2(CW_GTIM2,0);
  //GTIM2_CCR1(GTIM2_CCR2)中的比较值设为0,CH1(CH2) 通道输出保持为低电平
}
main.c
#include "main.h"
#include "LED.h"
#include "L9110.h"
#include "GTIM.h"
#include "Key.h"


int main()
{
  LED_Init();       //三个LED灯用来指示风扇转动状态
  L9110_GPIO_Init();//L9110风扇模块引脚初始化配置
  Key_GPIO_Init();  //轻触微动立式按键开关用来进行三档转速调节
  GTIM2_Init();     //输出PWM到INA,INB引脚
  while(1)
  {
    Key_Scan();     //扫描按键并执行相应功能
    LED_Indicator();//指示灯
  }
}

四、效果演示+说明

(1)系统上电处于0档,风扇不转,红色LED灯点亮

(2)第一次按下按键开关,系统设置为正向一档,风扇满占空比旋转,风力达到最大,同时红灯熄灭,黄灯点亮,代表风扇顺时针旋转。此后第二次、第三次按下开关,转速依次下降,第四次按下开关,系统回到0档

(3)第五次按下按键开关,系统设置为反向一档,风扇满占空比旋转,风力达到最大,同时红灯熄灭,绿灯点亮,代表风扇逆时针旋转。此后第六次、第七次按下开关,转速依次下降,第八次按下开关,系统回到0档

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    237

    文章

    22449

    浏览量

    645878
  • 风扇
    +关注

    关注

    4

    文章

    397

    浏览量

    36877
  • 驱动模块
    +关注

    关注

    0

    文章

    57

    浏览量

    14003
  • CW32
    +关注

    关注

    1

    文章

    122

    浏览量

    225

原文标题:【CW32优秀项目展示】基于CW32的L9110风扇模块的应用

文章出处:【微信号:武汉芯源半导体,微信公众号:武汉芯源半导体】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    l9110

    l9110马达控制驱动芯片使用说明
    发表于 03-25 22:44

    在做循迹的小车,驱动是L9110,发现一个奇怪的现象

    在做循迹的小车,驱动是L9110,发现一个奇怪的现象,如果L9110的两根控制线INA INB先连接在单片机上,然后开电源后L9110就会发烫,电机不转,单片机也不工作了;如果我先只连接L91
    发表于 06-05 21:59

    请问电机驱动芯片L298N和L9110有什么区别?

    现在我在自己DIY一个智能小车,请问直流小电机的驱动芯片L298N和L9110有什么区别?
    发表于 04-17 06:44

    循迹小车开电源后L9110发烫

    在做循迹的小车,驱动是L9110,发现一个奇怪的现象,如果L9110的两根控制线INA INB先连接在单片机上,然后开电源后L9110就会发烫,电机不转,单片机也不工作了;如果我先只连接L91
    发表于 06-05 04:35

    STM32控制L9110电机驱动模块

    #STM32控制L9110电机驱动模块##使用标准库#需要材料(用其他STM32开发板也可以,对照硬件电路图改驱动即可)1.战舰V32.L9110电机驱动模块#main.c#inclu
    发表于 08-11 09:15

    用Arduino实现DHT11自动控制L9110电机风扇 精选资料分享

    温湿度传感器3.L9110电机驱动风扇模块4.杜邦线5.USB数据线二.硬件图片.在这里准备Arduinoleixing的板子,建议使用Arduino nano或者UNO板子,我在这里使用的是Arduino UNO R3板子
    发表于 09-08 08:06

    请问Arduino如何通过L9110进行电机的控制?

    请问Arduino如何通过L9110进行电机的控制?
    发表于 10-15 07:00

    如何利用L9110电机驱动电路?

    如何利用L9110电机驱动电路?
    发表于 10-20 07:54

    CW32 MCU开发资料汇总(手册、工具、固件库)

    1、CW32 MCU数据手册:*附件:CW32L083数据手册.pdf*附件:CW32F030数据手册.pdf*附件:CW32F020数据手
    发表于 07-27 14:47

    请问L9110芯片什么情况下会烧掉?

    L9110芯片什么情况下会烧掉?​
    发表于 10-20 06:43

    中微爱芯L9110S性能强大,可以替换LG的L9110、HTD9202、友台、兰科、华冠、麦格希尔、中科芯亿达9110S。

    中微爱芯L9110S性能强大,可以替换LG的L9110、HTD9202、友台、兰科、华冠、麦格希尔、中科芯亿达9110S。
    的头像 发表于 12-13 10:22 2045次阅读
    中微爱芯L<b class='flag-5'>9110</b>S性能强大,可以替换LG的<b class='flag-5'>L9110</b>、HTD9202、友台、兰科、华冠、麦格希尔、中科芯亿达<b class='flag-5'>9110</b>S。

    基于CW32L9110风扇模块的应用设计

    L9110风扇模块是一种常见的电机驱动模块,可以用于控制小型直流风扇的转动
    的头像 发表于 08-31 14:44 720次阅读
    基于<b class='flag-5'>CW32</b>的<b class='flag-5'>L9110</b><b class='flag-5'>风扇</b><b class='flag-5'>模块</b>的应用设计

    快乐解说MCUCW32的工作电压特性

    快乐解说MCUCW32的工作电压特性
    的头像 发表于 09-18 10:56 288次阅读

    基于CW32的RC522刷卡模块的应用

    基于CW32的RC522刷卡模块的应用
    的头像 发表于 11-02 14:53 538次阅读
    基于<b class='flag-5'>CW32</b>的RC522刷卡<b class='flag-5'>模块</b>的应用

    基于CW32的物联网应用

    CW32】基于CW32的物联网应用
    的头像 发表于 11-02 15:55 335次阅读
    基于<b class='flag-5'>CW32</b>的物联网应用