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檔
詢價列表 ( 件產(chǎn)品)