STM32控制器多级LED调光原理与实验
基于STM32的LED多級調光器,采用PWM電壓調節方法,利用STM32單片機集成有AD轉換與PWM輸出技術,通過對從控制始端(電位器)采集到的電位數據進行AD轉換,并對數據進行處理得到PWM輸出的占空比,從而能夠對LED負載進行調節,完成調光。以STM32F103ZET6為核心的單片機開發板,對LED燈的1000級亮暗調節,實驗結果顯示LED的亮暗變化均勻,電壓變化與文中所建立的線性處理模型一致。
引 言
LED的驅動方法有很多,可用單片機(如8051單片機)[1]產生脈沖寬度調制來驅動LED,PWM是脈寬調制的簡稱[2-4],其控制簡單靈活,方便使用,憑借其低速運行平穩,動態性能優良[5]等特點,在電機的調速、功率調節等方面得到了非常廣泛的應用。STM32F103系列是STM32系列高端單片機的一種系列,集成AD轉換與PWM輸出功能,可直接進行AD數據的采集和PWM波的輸出。
PWM輸出原理
STM32的PWM輸出機制
PWM既脈沖寬度調制,是一種高低電平以一定周期變化的占空比可調的方波信號[6-8],PWM的波形圖如圖1所示。PWM調制的輸入電壓與負載的平均電壓之間的關系[9]如式(2)。
圖 1 PWM方波信號圖 Fig.1 PWM square wave signal diagram
由圖1所示的PWM波形圖可得PWM波形的分段函數為:
式中,Tp:PWM的周期;Ts:PWM高電平時間;UH:PWM高電平電壓值;UL:PWM低電平電壓值;k:PWM的諧波次數。
電壓變化關系表示為:
式中Ua:負載兩端平均電壓;α:PWM輸出的占空比,0≤α≤1。
實驗使用STM32F103ZET6單片機,該類型的單片機共有8個定時器,其中定時器6和定時器7不能用來產生PWM輸出,定時器1和定時器8可最多產生7路PWM輸出,其它的每個通用定時器可最多產生4路PWM輸出,故最多可以產生30路PWM輸出,實驗使用定時器3。
在STM32F103系列單片機固件庫函數中,TIM_Period為定時器的自動重裝寄存器值,是PWM的周期值,TIM_SetCompare是用于選定使用哪個定時器和設置PWM占空比的函數,可推算出STM32的PWM輸出電壓變化關系。
在STM32的PWM配置函數里,Ts和Tp是通過設置非負整數值來完成的,假設T為單片機計數脈沖基本周期,n為TIM_SetCompare裝載值,m為PWM一個周期值,m和n都是非負整數,則有:
由式(4)可以看出,在STM32的代碼編寫里,負載兩端的電壓平均值Ua與TIM_SetCompare裝載值n和TIM_Period的PWM的一個周期值m有關,而在程序設計中,m可預先設置好,m就是調光器的級數,裝載值n則需要對從電位器得到的AD數據值進行處理后方能得到,對AD數據的處理有多種方式,于是可得到裝載值n與AD數據之間的映射關系。
線性處理模型
由式(4)分析可知,裝載值n與AD數據之間有映射關系,即從電位器得到的AD數據與最終的PWM輸出存在映射關系,實驗建立線性映射關系,對AD數據進行算數平均值處理,可得:
式中k:比例系數;kr:算數平均值比例系數(與N有關);N:從電位器采樣的AD數據個數;xi:從電位器采樣的AD數據值;p:AD轉換器的數據二進制位數。
由式(4)和式(5)可得負載兩端的電壓變化與算數平均值處理的AD數據之間的關系:
根據所建立的線性處理模型,實驗設置調光器的調光級m=1000,由式(4)、式(5)和式(6)可得線性處理模型的電壓變化關系為:
硬件設計
調光器整體結構
PWM調光器的整體結構包括旋轉電位器、雙電源:電源1和電源2、LED驅動電路、LED負載和STM32F103ZET6單片機組成,如圖2所示。
旋轉電位器是旋轉變阻裝置,通過旋動電位器使其電阻值發生改變,從而電位器兩端的電位差也會發生變化,單片機從電位器采集其電位值,并轉換為AD數據進行處理,實驗進行的是線性處理,裝載值為n,將n傳遞給TIM_SetCompare函數,從而得到AD數據所對應的占空比,使LED驅動電路端接收到一定占空比的PWM輸出。實驗使用的電位器有三個引腳,實驗裝置將電位器的電壓輸出端連接到了GPIOA1引腳上,STM32單片機的ADC1、ADC2和ADC3均能夠完成對GPIOA1端的AD轉換,如表1所示。電位器的輸出電壓的理論取值范圍在0 V到3.3 V之間,LED燈的亮度變化隨著電位器輸出端的電位值的變化而變化。
圖 2 PWM調光器整體結構 Fig.2 PWM dimmer overall structure
電源1為旋轉電位器和STM32單片機的供電電源,為直流3.3 V恒壓電源,故電位器的點位值范圍即為0 V~3.3V。電源2為LED驅動電路的電源,為恒壓電源,其電器特性根據LED負載的特性進行配置。
表 1 STM32F103ZET6的ADC與轉換通道
Table 1 STM32F103ZET6 ADC and conversion channels
|
轉換通道 |
ADC1 |
ADC2 |
ADC3 |
|
通道0 |
PA0 |
PA0 |
PA0 |
|
通道1 |
PA1 |
PA1 |
PA1 |
|
通道2 |
PA2 |
PA2 |
PA2 |
|
通道3 |
PA3 |
PA3 |
PA3 |
|
通道4 |
PA4 |
PA4 |
PF6 |
|
通道5 |
PA5 |
PA5 |
PF7 |
|
通道6 |
PA6 |
PA6 |
PF8 |
|
通道7 |
PA7 |
PA7 |
PF9 |
|
通道8 |
PB0 |
PB0 |
PF10 |
|
通道9 |
PB1 |
PB1 |
|
|
通道10 |
PC0 |
PC0 |
PC0 |
|
通道11 |
PC1 |
PC1 |
PC1 |
|
通道12 |
PC2 |
PC2 |
PC2 |
|
通道13 |
PC3 |
PC3 |
PC3 |
|
通道14 |
PC4 |
PC4 |
|
|
通道15 |
PC5 |
PC5 |
LED驅動電路
LED驅動電路如圖3所示。驅動電路主要由固態繼電器與電源接口組成。
圖 3 LED驅動電路 Fig. 3 LED drive circuit
固態繼電器受PWM波的控制,當PWM Input端為低電平時,PC817光電耦合器導通,NPN型C9014三極管基集1端為高電位,三極管導通,固態繼電器閉合,LED負載通電。當PWM Input端為高電平時,LED負載為斷路狀態,光電耦合器將前端與負載隔離開來。在LED負載高電壓端引出ADC連接線,用于STM32采集LED負載兩端的電壓值。LED驅動電源根據LED負載特性進行選取,為恒壓源。實驗采用低功率0805貼片LED,故其驅動電源可選用STM32單片機的3.3 V直流電源,事實上對于該種類型的LED可通過限流電阻直接與單片機的GPIO引腳連接,式(5)和式(6)的線性處理模型同樣適用。
STM32F103ZET6單片機
STM32F103ZET6是STM32系列單片機中的一種,對于LQFP和BGA的封裝均有144只引腳,內部集成了512 K字節的FLASH閃存存儲器,標準工作電壓范圍為2.0 V ~3.6 V,其部分性能參數如表2所示。STM32F103ZET6單片機內部集成了AD轉換與PWM輸出功能,可通過GPIO引腳采集電位器的電位值,并對從電位器采集到的數據進行線性或非線性處理,如式(6)和式(7)的處理,可得PWM輸出的占空比,通過得到的占空比,可進行相應的PWM輸出。
表 2 STM32F103ZET6部分性能參數
Table 2 Performance parameters of STM32F103ZET6
|
名稱 |
參數 |
|
單片機 |
STM32F103ZET6 |
|
主頻(MHz) |
72 |
|
內核 |
ARM Cortex-M3 |
|
通用IO個數 |
112 |
|
定時器個數 |
8 |
|
Flash(KB) |
512 |
|
SRAM(KB) |
64 |
LED是利用PN結或類似結構把電能轉化成光能的器件[10, 11],在很寬的工作電壓電流范圍內,發光二極管的發光亮度與工作電壓大小成線性關系,LED燈是比較節能的發光裝置,在現代社會里的應用非常廣泛。實驗裝置將LED燈與GPIOC的引腳GPIO_Pin_7通過470歐姆的限流電阻相連,所以將PWM輸出到GPIOC的GPIO_Pin_7引腳即可獲得對LED的亮暗調節。在編程時將TIM3的定時通道2(TIM_CH2)與GPIOC_Pin_7完全重映像。定時器TIM3的引腳映像表如表2所示。
表 3 TIM3的定時通道與映像引腳
Table 3 TIM3 timing channels and mapping pins
|
定時通道 |
無重映像 |
部分重映像 |
完全重映像 |
|
TIM_CH1 |
GPIOA6 |
GPIOB4 |
GPIOC6 |
|
TIM_CH2 |
GPIOA7 |
GPIOB5 |
GPIOC7 |
|
TIM_CH3 |
GPIOB0 |
GPIOC8 |
|
|
TIM_CH4 |
GPIOB1 |
GPIOC9 |
|
軟件設計與實驗
PWM調光器軟件設計
PWM調光器的軟件程序流程包括:裝置初始化(系統時鐘初始化、PWM配置初始化、ADC配置初始化),采集電位器AD數據,對采集的AD數據的線性處理過程和根據處理后得到的占空比進行PWM輸出,如圖4所示。
圖 4 LED調光器程序流程圖 Fig.4 LED dimmer program flow chart
調光器裝置實驗
STM32F103ZET6開發板的標準電壓為3.3 V,所以高電壓UH ≈ 3.3 V,LED負載兩端電壓的變化范圍在0 V~3.3 V之間。設置LED調光級為m=1000,從電位器采樣的AD數據個數N=100,AD轉換的數據二進制位數為p=12,比例系數分別取k=0.5,1,2,進行三種不同比例系數線性處理模型的調光實驗。
根據式(5)和式(6)可知線性處理模型的結果以LED負載兩端的電壓值來體現,可通過誤差值的大小來判斷線性處理模型的正確性,誤差較小則表明實驗結果與理論模型具有相同的變化趨勢,定義相對誤差(取值范圍一般在5%以內):
式中UC:實驗測得LED負載端的電壓值。
實驗測得數據如表4所示,當比例系數k=0.5,1和2時,電位器控制電壓的理論值分別為0~3.3 V,0~3.3 V和0~1.5 V,LED負載端的電壓理論值范圍分別為0~1.5 V,0~3.3 V,0~3.3 V。
實驗結果表明隨著電位器的調節,LED負載端的電壓值也在發生變化,這說明LED受到STM32單片機的控制,STM32單片機也隨著電位器的調節而有不同占空比的PWM輸出。在調光級為1000時,LED的亮暗變化均勻,通過誤差分析,得出相對誤差值均在5%以內,實驗結果驗證了式(5)和式(6)建立的線性處理模型。當調光級m的值比較小時,LED的亮度并不明顯,此時LED受到占空比較小的PWM控制,LED兩端的電壓值也較小。
表 4 LED調光器實驗數據
Table 4 Experimental data of LED dimmer
|
比例 |
元器件 |
電位(V) |
||||
|
k=0.5 |
電位器 |
0.444 |
1.679 |
2.200 |
3.205 |
|
|
LED |
0.215 |
0.800 |
1.050 |
1.524 |
||
|
相對誤差(%) |
3.153 |
4.705 |
4.545 |
4.899 |
||
|
k=1 |
電位器 |
0.102 |
1.061 |
2.290 |
3.145 |
|
|
LED |
0.106 |
1.10 |
2.182 |
2.998 |
||
|
相對誤差(%) |
3.774 |
3.545 |
4.950 |
4.903 |
||
|
k=2 |
電位器 |
0.065 |
0.304 |
0.891 |
1.403 |
|
|
LED |
0.125 |
0.587 |
1.698 |
2.668 |
||
|
相對誤差(%) |
3.846 |
3.454 |
4.714 |
4.918 |
||
結 論
STM32單片機的應用廣泛,基于STM32的PWM調光器,將電位器與LED相對地隔離開來,通過建立裝載值n與從電位器端采集的AD數據之間的映射模型,得到LED調光器的調光級只與PWM的一個周期值m有關。在設置的調光級m=1000的實驗結果中,驗證了所建立的線性處理模型,LED的亮暗變化均勻,相對誤差也較小。
參考文獻
[1] 賈冬穎, 王巍. 基于STC單片機LED智能照明系統的設計 [J]. 照明工程學報, 2010, (02): 71-73+80.
[2] 鄒中華, 吳陳, 曾慶軍. 基于S3C2410的直流電機PWM調速系統 [J]. 微計算機信息, 2008, 24(4-2): 130-131.
[3] 何國榮, 紀娜. 基于PWM技術的LED補光燈R/B配比算法研究 [J]. 信息技術, 2015, (05): 147-150.
[4] 曹陽. 基于觸摸按鍵和PWM驅動配色的汽車氛圍燈 [J]. 電子技術, 2015, (12): 1-3.
[5] 楊學存, 楊戰社, 孔令紅. 基于ARM的嵌入式直流電機PWM調速系統設計 [J]. 煤礦機械, 2012, 33(04): 255-257.
[6] 洪俊峰, 卜文強, 張榕鑫, 等. 基于STM32 PWM的正弦信號發生器設計 [J]. 合肥工業大學學報(自然科學版), 2014, 37(02): 188-191+224.
[7] 王瓊, 吳惠, 夏光, 等. 基于PWM控制模式的高速開關閥開關特性分析及優化 [J]. 合肥工業大學學報(自然科學版), 2016, (09): 1199-1204.
[8] 王子權. 基于STM32的PWM調光器 [J]. 電氣自動化, 2018, 40(06): 98-100+115.
[9] 李素娟, 蔣維安. 直流電機PWM調速系統中控制電壓非線性研究 [J]. 現代電子技術, 2010, (22): 196-198+202.
[10] 李楊帥. 基于PWM的無級調光LED驅動電路設計 [D]: 長安大學, 2015.
[11] 程伊炳, 金尚忠. 基于多路輸出的高效LED驅動器的分析和仿真 [J]. 照明工程學報, 2013, (02): 66-70.
總結
以上是生活随笔為你收集整理的STM32控制器多级LED调光原理与实验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jax-rs jax-ws_JAX-RS
- 下一篇: 7-8垃圾箱分布_您认为有关垃圾收集的7