一、簡(jiǎn)介
1. L9110風(fēng)扇模塊是一種常見的電機(jī)驅(qū)動(dòng)模塊,可以用于控制小型直流風(fēng)扇的轉(zhuǎn)動(dòng),常被用于:
(1)電子設(shè)備散熱:將L9110風(fēng)扇模塊連接到需要散熱的電子設(shè)備上,通過控制風(fēng)扇的轉(zhuǎn)速來提高設(shè)備的散熱效果,保持設(shè)備的正常工作溫度。
(2) DIY電子項(xiàng)目:L9110風(fēng)扇模塊是制作各種DIY電子項(xiàng)目的理想選擇。通過將其與微控制器板結(jié)合使用,可以構(gòu)建自己的智能風(fēng)扇、溫度控制系統(tǒng)等。這為愛好者提供了靈活性和創(chuàng)造力的發(fā)揮空間。
(3)模型制作:L9110風(fēng)扇模塊也可以在模型制作領(lǐng)域中找到應(yīng)用。通過將風(fēng)扇模塊嵌入模型中,并通過控制模塊來改變風(fēng)扇的速度和轉(zhuǎn)向,可以增加模型的真實(shí)感和互動(dòng)性。
2.本實(shí)驗(yàn)用到了CW32F030C8T6小藍(lán)板、L9110風(fēng)扇模塊、LED交通信號(hào)燈模塊、輕觸微動(dòng)立式按鍵開關(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交通信號(hào)燈模塊
【連線】:GND連GND,R連PC13,Y連PC14,G連PC15
(3)輕觸微動(dòng)立式按鍵開關(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)動(dòng)函數(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è)時(shí)鐘 GTIM_InitTypeDef GTIM_Initstruct; GTIM_Initstruct.Mode = GTIM_MODE_TIME; //工作模式-->定時(shí)器模式 GTIM_Initstruct.OneShotMode = GTIM_COUNT_CONTINUE;//連續(xù)計(jì)數(shù)模式 GTIM_Initstruct.ToggleOutState = DISABLE; //電平反轉(zhuǎn)失能 GTIM_Initstruct.Prescaler = BTIM_PRS_DIV64; //預(yù)分頻 GTIM_Initstruct.ReloadValue =1000-1;//計(jì)數(shù)重載周期,16bit自動(dòng)重載寄存器ARR,ARR的值最大為65535 GTIM_TimeBaseInit(CW_GTIM2,>IM_Initstruct); //定時(shí)時(shí)長(zhǎng)=預(yù)分頻/計(jì)數(shù)器時(shí)鐘源頻率*(計(jì)數(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)時(shí),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(); //三個(gè)LED燈用來指示風(fēng)扇轉(zhuǎn)動(dòng)狀態(tài) L9110_GPIO_Init();//L9110風(fēng)扇模塊引腳初始化配置 Key_GPIO_Init(); //輕觸微動(dòng)立式按鍵開關(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燈點(diǎn)亮
(2)第一次按下按鍵開關(guān),系統(tǒng)設(shè)置為正向一檔,風(fēng)扇滿占空比旋轉(zhuǎn),風(fēng)力達(dá)到最大,同時(shí)紅燈熄滅,黃燈點(diǎn)亮,代表風(fēng)扇順時(shí)針旋轉(zhuǎn)。此后第二次、第三次按下開關(guān),轉(zhuǎn)速依次下降,第四次按下開關(guān),系統(tǒng)回到0檔
(3)第五次按下按鍵開關(guān),系統(tǒng)設(shè)置為反向一檔,風(fēng)扇滿占空比旋轉(zhuǎn),風(fēng)力達(dá)到最大,同時(shí)紅燈熄滅,綠燈點(diǎn)亮,代表風(fēng)扇逆時(shí)針旋轉(zhuǎn)。此后第六次、第七次按下開關(guān),轉(zhuǎn)速依次下降,第八次按下開關(guān),系統(tǒng)回到0檔
審核編輯:湯梓紅
-
led
+關(guān)注
關(guān)注
242文章
23277瀏覽量
660892 -
風(fēng)扇
+關(guān)注
關(guān)注
4文章
414瀏覽量
37431 -
驅(qū)動(dòng)模塊
+關(guān)注
關(guān)注
0文章
62瀏覽量
14141 -
CW32
+關(guān)注
關(guān)注
1文章
203瀏覽量
645
原文標(biāo)題:【CW32優(yōu)秀項(xiàng)目展示】基于CW32的L9110風(fēng)扇模塊的應(yīng)用
文章出處:【微信號(hào):武漢芯源半導(dǎo)體,微信公眾號(hào):武漢芯源半導(dǎo)體】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論