劉菁 李相朋 劉瀚旗 鄧中民
摘要:傳統(tǒng)的脈沖寬度調制(Pulse Width Modulation,PWM)控制風扇轉速的方式都是通過匯編語言和C語言編寫,但代碼多、編寫復雜、不易調試。Python語言相較而言,封裝了大量的庫函數,極大地降低了開發(fā)的難度,代碼更簡短,運行效率更高。MicroPython語言是Python語言的精簡版,通過使用基于MicroPython開發(fā)語言和Pyboard_1.1_CN實驗板,將Python編程語言直接運行在STM32F405單片機嵌入式開發(fā)板上,通過控制芯片端口發(fā)送高低電平,從而運用PWM方式控制風扇轉速。實驗結果表明,風扇的轉速可以跟隨不同PWM穩(wěn)定運行。
關鍵詞:MicroPython;Pyboard;PWM;嵌入式開發(fā)
中圖分類號:TP393文獻標志碼:A文章編號:1008-1739(2021)17-69-3
0引言
早期的脈沖寬度調制(Pulse Width Modulation,PWM)控制風扇轉速的方式都是采用匯編和C語言編寫,在開發(fā)過程中,開發(fā)者需要掌握底層硬件的知識,如定時器,時鐘分頻和CPU芯片架構,同時還要求開發(fā)者熟練掌握C語言和匯編語言的編程技巧,對開發(fā)者要求較高[1-3]。隨著處理器集成度的增強,現(xiàn)在可以采用代碼簡短易懂的Python語言進行編寫,大大降低了初學者的學習難度。MicroPython是可以直接在微型控制器上運行的Python,是Python編程語言的精簡版[4]。MicroPython與Python一樣封裝了大量庫函數,開發(fā)者可以直接調用就可完成復雜的工作?;贛icroPython的PWM風扇控制相較于傳統(tǒng)的C語言開發(fā)模式,編程簡單、代碼量少,可讀性強且容易實現(xiàn)。
1硬件設計
PWM風扇控制系統(tǒng)的硬件主要包括Pyboard_1.1_CN STM32F405芯片電路和PWM風扇轉速控制電路。
STM32F405芯片采用MicroPython編程,是一款帶有浮點運算單元的由ARM公司設計的Cortex-M4 32位的處理器,該芯片具有1 MB容量的閃存、196 KB隨機存取存儲器和高達168 MHz的主頻、多達140個具備終端功能的輸入輸出端口和15個通信接口,因其功能多、開發(fā)方便、價格便宜,所以采用此芯片作為開發(fā)環(huán)境,如圖1所示。
PWM風扇轉速控制電路是通過比較器LM393[5]和MOS管[6]實現(xiàn)的,通過控制芯片Y3引腳輸出高低電平,并與參考電壓Vref比較,當Y3的輸出電壓大于Vref時,比較器輸出則為高電平,此時NMOS管>(on),此時NMOS管導通,風扇處于接通狀態(tài),開始工作。當控制芯片Y3引腳輸出電壓為低電平小于時,比較器輸出為低電平,此時NMOS管
<0截止,此時風扇停止工作。通過控制芯片輸出不同占空比的脈沖從而控制風扇的加速減速的轉動,達到控制風扇轉速的目的。PWM系統(tǒng)硬件如圖2所示。
2軟件設計
系統(tǒng)程序首先導入pyb里面的定時器模塊、按鍵模塊和管腳模塊,控制芯片通過管腳Y3和Y4發(fā)送高低電平,分別經過定時器4和11以及通道3和1發(fā)送PWM信號,通過設置PWM脈沖的占空比,以10%的速度增加到100%后再以10%速度降低到0,再以10%的速度增加到100%再下降,如此循環(huán)往復。從而讓風扇實現(xiàn)不同速度的轉動。部分代碼如下:
pin_y3=Pin(Y3)
3程序流程圖
系統(tǒng)采用Micropython編程實現(xiàn)對風扇轉速的控制,通過控制芯片Y3(Y4)輸出PWM信號從而控制風扇轉速,程序流程如圖3所示。
4實驗結果
通過程序運行后的波形圖,如圖4所示,風扇的轉速可以跟隨不同PWM穩(wěn)定運行。
5結束語
通過風扇轉速控制系統(tǒng)的實現(xiàn),說明MicroPython在嵌入式平臺具有很好的適用性,還可以通過直接調用函數,控制溫濕度傳感器、RGB燈帶、伺服器、AD/DA轉換等,只需要通過少量的程序代碼,就可以實現(xiàn)多種功能。該模塊的電路設計通過比較器和MOS管實現(xiàn),比較器可以靈活定義高低電平的門限電壓,設計更加靈活,MOS管體積小,能通過較大的電流,且內含體二極管在控制風扇斷開時可以吸收風扇產生的反向電動勢,減少控制電路的損害風險。電路設計和程序控制都具有很好的實用性,后續(xù)可擴展應用于其他實驗開發(fā)或教學展示等應用領域。程序結果也驗證了MicroPython開發(fā)語言在嵌入式開發(fā)平臺的實用性和可行性,對其他風扇控制系統(tǒng)的應用具有借鑒意義。
參考文獻
[1]鄧健,王立華.基于MicroPython和CC3200的智能家居數據采集與控制系統(tǒng)設計[J].電子器件,2020,43(1):137-141.
[2]徐志江,饒晨,徐紅,等.MicroPython用于單片機實驗教學新模式的設計與研究[J].計算機教育,2019,291(3):164-168.
[3]孔祥祥.全自動透氣儀控制系統(tǒng)研究[D].武漢:武漢理工大學,2015.
[4]林賢煉,方遒.MicroPython語言在物聯(lián)網中的運用[J].閩江學院學報,2017,38(2):28-37.
[5]汪世文.使用NE555和LM393實現(xiàn)脈寬調制的D類功放[J].電子世界,2011(3):45-46.
[6]王傘.常用電路模塊分析與設計指導:第2版[M].北京:清華大學出版社,2013.