人人狠狠综合久久亚洲-脱岳裙子从后面挺进去在线观看-午夜无码片在线观看影院-波多野结衣在线播放

技術(shù)干貨:基于武漢芯源CW32的L9110風(fēng)扇模塊的應(yīng)用設(shè)計

來源:武漢芯源| 發(fā)布日期:2023-11-09 17:37

L9110風(fēng)扇模塊是一種常見的電機(jī)驅(qū)動模塊,可以用于控制小型直流風(fēng)扇的轉(zhuǎn)動,常被用于:

(1)電子設(shè)備散熱:將L9110風(fēng)扇模塊連接到需要散熱的電子設(shè)備上,通過控制風(fēng)扇的轉(zhuǎn)速來提高設(shè)備的散熱效果,保持設(shè)備的正常工作溫度。

(2) DIY電子項目:L9110風(fēng)扇模塊是制作各種DIY電子項目的理想選擇。通過將其與微控制器板結(jié)合使用,可以構(gòu)建自己的智能風(fēng)扇、溫度控制系統(tǒng)等。這為愛好者提供了靈活性和創(chuàng)造力的發(fā)揮空間。

(3)模型制作:L9110風(fēng)扇模塊也可以在模型制作領(lǐng)域中找到應(yīng)用。通過將風(fēng)扇模塊嵌入模型中,并通過控制模塊來改變風(fēng)扇的速度和轉(zhuǎn)向,可以增加模型的真實感和互動性。

2.本實驗用到了CW32F030C8T6小藍(lán)板、L9110風(fēng)扇模塊、LED交通信號燈模塊、輕觸微動立式按鍵開關(guān)及Keil5開發(fā)環(huán)境
一、風(fēng)扇三檔轉(zhuǎn)速調(diào)節(jié)系統(tǒng)說明

(1)L9110風(fēng)扇模塊

L9110風(fēng)扇模塊,可控制正反轉(zhuǎn),具有安裝孔,可以吹滅20cm外的打火機(jī)或蠟燭火焰,經(jīng)常被用于滅火機(jī)器人之上。

【連線】:VCC連5V,GND連GND,INA連PA0,INB連PA1

(2)LED交通信號燈模塊

【連線】:GND連GND,R連PC13,Y連PC14,G連PC15

(3)輕觸微動立式按鍵開關(guān)

【連線】: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引腳復(fù)用為GTIM通道1
  PA01_AFx_GTIM2CH2();  //PA1引腳復(fù)用為GTIM通道2
}


void Turn_around(int16_t value)  //風(fēng)扇轉(zhuǎn)動函數(shù)
{
  if(value>0)
  {
    GTIM_SetCompare1(CW_GTIM2,value); //設(shè)置CRR1的值為value
    GTIM_SetCompare2(CW_GTIM2,0);
  }
  else
  {
    GTIM_SetCompare1(CW_GTIM2,0);
    GTIM_SetCompare2(CW_GTIM2,-value);//設(shè)置CRR2的為value
  }
}
GTIM.c:
#include "GTIM.h"


void GTIM2_Init(void) //輸出PWM到INA和INB引腳
{
  RCC_APBPeriphClk_Enable1(RCC_APB1_PERIPH_GTIM2,ENABLE);  //使能APB外設(shè)時鐘
  
  GTIM_InitTypeDef GTIM_Initstruct;
  GTIM_Initstruct.Mode = GTIM_MODE_TIME;  //工作模式-->定時器模式
  GTIM_Initstruct.OneShotMode = GTIM_COUNT_CONTINUE;//連續(xù)計數(shù)模式
  GTIM_Initstruct.ToggleOutState = DISABLE;  //電平反轉(zhuǎn)失能
  GTIM_Initstruct.Prescaler = BTIM_PRS_DIV64;  //預(yù)分頻
  GTIM_Initstruct.ReloadValue =1000-1;//計數(shù)重載周期,16bit自動重載寄存器ARR,ARR的值最大為65535
  GTIM_TimeBaseInit(CW_GTIM2,>IM_Initstruct);
  //定時時長=預(yù)分頻/計數(shù)器時鐘源頻率*(計數(shù)重載周期+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);
  //當(dāng) 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)中的比較值設(shè)為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燈用來指示風(fēng)扇轉(zhuǎn)動狀態(tài)
  L9110_GPIO_Init();//L9110風(fēng)扇模塊引腳初始化配置
  Key_GPIO_Init();  //輕觸微動立式按鍵開關(guān)用來進(jìn)行三檔轉(zhuǎn)速調(diào)節(jié)
  GTIM2_Init();     //輸出PWM到INA,INB引腳
  while(1)
  {
    Key_Scan();     //掃描按鍵并執(zhí)行相應(yīng)功能
    LED_Indicator();//指示燈
  }
}

三、效果演示+說明

(1)系統(tǒng)上電處于0檔,風(fēng)扇不轉(zhuǎn),紅色LED燈點亮

(2)第一次按下按鍵開關(guān),系統(tǒng)設(shè)置為正向一檔,風(fēng)扇滿占空比旋轉(zhuǎn),風(fēng)力達(dá)到最大,同時紅燈熄滅,黃燈點亮,代表風(fēng)扇順時針旋轉(zhuǎn)。此后第二次、第三次按下開關(guān),轉(zhuǎn)速依次下降,第四次按下開關(guān),系統(tǒng)回到0檔

(3)第五次按下按鍵開關(guān),系統(tǒng)設(shè)置為反向一檔,風(fēng)扇滿占空比旋轉(zhuǎn),風(fēng)力達(dá)到最大,同時紅燈熄滅,綠燈點亮,代表風(fēng)扇逆時針旋轉(zhuǎn)。此后第六次、第七次按下開關(guān),轉(zhuǎn)速依次下降,第八次按下開關(guān),系統(tǒng)回到0檔