一、簡介
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檔
審核編輯:劉清
-
微控制器
+關注
關注
48文章
7489瀏覽量
151049 -
led燈
+關注
關注
22文章
1592瀏覽量
107837 -
GND
+關注
關注
2文章
529瀏覽量
38656 -
L9110
+關注
關注
3文章
12瀏覽量
17071 -
CW32
+關注
關注
1文章
183瀏覽量
588
原文標題:【CW32】基于CW32的L9110風扇模塊的應用
文章出處:【微信號:CW32生態社區,微信公眾號:CW32生態社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論