關叢榮,趙偉程,祝天岳,王愉天,劉政賢,胡子佳
(1.北方工業(yè)大學,北京 100144; 2.中國船舶工業(yè)系統(tǒng)工程研究院,北京 100094)
LED照明憑借著高效節(jié)能、綠色環(huán)保、體積小壽命長等特點受到各國的青睞[1,2],在節(jié)能減排中發(fā)揮了重要作用。LED調光控制方法主要包括線性調光、可控硅調光和PWM調光三種方式[3,4]。其中PWM調光技術優(yōu)點在于控制靈活簡單、高精度、高效率以及調光頻率范圍廣和不會出現(xiàn)頻閃等,是目前較為常用的控制方法。本文基于STM32單片機進行大功率LED調光控制器設計,給出硬件電路原理圖及關鍵電路設計,以及相應的軟件設計,并驗證其是否滿足設計需求。
圖1 PWM工作原理Fig.1 Working principle of PWM
脈沖寬度調制(PWM)是一種周期一定而高低電平的占空比可以調制的方波信號,通過調整PWM波形的周期和占空比可以調節(jié)大功率LED驅動器的輸入電壓,進而實現(xiàn)對驅動器輸出的驅動電流的控制[5,6],PWM工作原理圖如圖1所示。圖中CNT為自動重裝載計數(shù)器,ARR為預裝載寄存器,CCRx為捕獲/比較寄存器。假設定時器為向上計數(shù)PWM模式,t時刻對計數(shù)器值和比較值進行比較,如果計數(shù)器值小于CCRx值,輸出低電平;如果計數(shù)器值大于CCRx值,輸出高電平。
PWM的一個周期是指定時器從0開始向上計數(shù),在0-t1段定時器計數(shù)器TIMx_CNT值小于CCRx值輸出低電平;t1-t2段定時器計數(shù)器TIMx_CNT值大于CCRx值輸出高電平;當TIMx_CNT值達到ARR時定時器溢出重新向上計數(shù),依次循環(huán)。改變CCRx的值就可以改變PWM輸出的占空比,而改變ARR的值就可以改變PWM的輸出頻率[7,8]。
假設高電平燈點亮低電平熄滅,則在PWM波一個周期內燈點亮的時間就等于周期×占空比。調整占空比,就可以控制LED在一個周期內的點亮時間。本文控制器設計PWM頻率選擇2 kHz。
無線方式選用藍牙方式,本設計使用的藍牙型號為ATK-HC05,由6個間距為2.54 mm的排針與外部相連接,其配置了藍色LED燈用于配對狀態(tài)輸出的顯示,如果上電KEY端口置為高電平,擇LED閃爍為1秒亮1次;如果KEY懸空則LED 1 s亮2次;如果配對成果LED 2 s亮1次。
藍牙上電配對后為全雙工串口,可以傳輸8位的數(shù)據(jù)為和1位的停止位,并且是無奇偶校驗進行通信。模塊主從一體化,可以通過AT指令集改變主從模式,也可由程序設定按鍵改變主從模式,這樣使電路的使用更加靈活,而且其傳輸距離可達到10 m之遠。
大功率LED調光控制器主要由遙控端和控制端兩部分組成,各部分由STM32主控芯片、藍牙模塊、按鍵模塊、TFTLCD屏幕顯示模塊組成,控制端也可通過手機藍牙來傳輸數(shù)據(jù)控制調光,整個控制器如圖2所示。
圖2 控制器框圖Fig.2 Controller block diagram
圖2中,遙控端和手機藍牙串口助手作為兩種獨立方式可分別對控制端進行控制,控制端可獨立輸出不同占空比的PWM波,或分別接收遙控端和手機數(shù)據(jù)輸出不同占空比的PWM波,再通過大功率LED驅動電路實現(xiàn)LED調光,所有的信息均可在遙控端和控制端的顯示屏上顯示。
LED驅動電路選擇了恒流源作為LED驅動方式參照凌特公司官網(wǎng)LT3791芯片典型參考電路,設計輸入電壓為15~60 V、最大輸出電壓為28 V,輸出電流為4A的驅動電源。電路參數(shù)選取及設計可見文獻[9]。
本文采用STM32F103RCT6單片機,該模塊包括開關電路、復位電路、晶振電路和CR1220紐扣電池供電電路等[10,11]。開關電路操控整個電路的通斷,復位電路是使整個系統(tǒng)回到起始狀態(tài)并重新進行計算,晶振電路要為系統(tǒng)提供精準的時鐘信號。MCU部分模塊如圖3所示。
圖3 MCU模塊Fig.3 MCU modules
系統(tǒng)上電VCC電壓由0增加值3.3 V為C1電容充電,R3端電位大小和持續(xù)時間將影響系統(tǒng)能否上電復位,由于機器周期等于12倍震蕩周期,對于系統(tǒng)8 MHz晶振來說,復位時間應大于式(1)所計算出的時間。
(1)
當RESET電壓超過上電電壓0.7倍即2.31 V時持續(xù)時間超過3 μs,系統(tǒng)便會復位。電容兩端暫態(tài)電流與電壓關系見式(2)。
(2)
式中,UC(∞)為3.3 V,UC(0)為0由此得到Uc(t)見式(3)。
(3)
設RESET電壓為UR(t),則
UR(t)=Vcc-Uc(t)
(4)
圖4 LCD模塊Fig.4 LCD modules
STM32F103RCT6外接8 MHz晶體振蕩器作為外部震蕩方式,晶振電路電容的選擇是在許可的范圍內數(shù)值越低越好,一般晶振所配電容在10~50 pF之間,本設計所選電容為22 pF以削減諧波對電路穩(wěn)定性的影響。
本設計通過普通IO口模擬8080總線來控制TFTLCD屏幕的顯示,所選屏幕為2.8寸分辨率為320×240,16位真彩顯示,總計使用了21個IO口。屏幕RST信號線直接連在STM32的復位引腳,可以直接通過單片機RESET鍵進行復位。TFTLCD屏幕接口模塊如圖4所示。
本設計采用ATK-HC05藍牙串口模塊,藍牙接口模塊接口設計與HC05模塊相對應。ATK-HC05是一款高性能主從一體的藍牙串口模塊,它可以同手機電腦等終端進行配對,也可互相配置主從進行連接。該模塊波特率范圍在4 800~1 382 400,且兼容3.3 V或5 V的單片機系統(tǒng),本設計采用3.3 V供電,藍牙接收和發(fā)送端分別連接STM32芯片PA2和PA3管腳。藍牙接口模塊如圖5所示。
本設計采用前端電源適配器提供5V直流電源,主要提供給TFTLCD顯示屏供電。通過AMS1117-3.3穩(wěn)壓芯片降壓得到3.3 V電源電壓給控制系統(tǒng)供電。其電源模塊電路如圖6所示。
圖5 藍牙模塊Fig.5 Bluetooth modules
圖6 電源模塊Fig.6 Power modules
本設計編寫程序采用MDK編程軟件,所涉及計算機語言為C語言[12]。程序總體思路先對整個系統(tǒng)設備、系統(tǒng)資源以及GPIO端口進行初始化。然后讓程序進行無限循環(huán),在循環(huán)中通過按鍵按下,使得程序進行下一步處理,且藍牙狀態(tài)、PWM波占空比同顯示屏顯示數(shù)值同時進行相應改變。主程序流程圖如圖7所示。
圖7 主程序流程圖Fig.7 Main program flowchart
在電路上電后先進行延時初始化,串口1初始化波特頻率9600,初始化與LCD屏幕、藍牙連接的硬件端口、初始化按鍵、藍牙與LCD屏幕并設置TIM1通道1開始以2 kHz頻率輸出占空比為0的PWM波,初始化程序如下:
Stm32_Clock_Init(9);//系統(tǒng)時鐘設置
delay_init(72); //延時初始化
uart_init(72,9600);//串口1初始化為9600
KEY_Init();//初始化按鍵
LCD_Init();//初始化LCD
usmart_dev.init(72);//初始化USMART
TIM1_PWM_Init(500-1,84-1);//PWM頻率
POINT_COLOR=RED;
LCD_ShowString(30,50,200,16,16,"PWM:%");
while(HC05_Init())//初始化藍牙模塊
主程序通過While(1)的死循環(huán)進行按鍵掃描,當按鍵WK_UP按下時,通過程序內的“AT+ROLE=0”或“AT+ROLE=1”指令進行藍牙的狀態(tài)取反設置,初始默認狀態(tài)為“SLAVE”(從機),藍牙切換程序:
if(key==WKUP_PRES
{
key=HC05_Get_Role();//切換主從模式
if(key!=0XFF)
{
key=!key;//狀態(tài)取反
if(key==0)HC05_Set_Cmd("AT+ROLE=0");
else HC05_Set_Cmd("AT+ROLE=1");
HC05_Role_Show();
HC05_Set_Cmd("AT+RESET");//復位
}
當按鍵KEY0按下時,調節(jié)占空比大小減小10%并向串口2發(fā)送數(shù)據(jù)“000”,藍牙接收到數(shù)據(jù)向對位機發(fā)送,使得對位機收到信號PWM波占空比減小,同時兩臺單片機顯示屏均顯示改變后的PWM占空比數(shù)值。若占空比為0%則不執(zhí)行操作,KEY0按鍵操控程序:
else if(key==KEY0_PRES)
{
delay_ms(10);
u2_printf("000");//發(fā)送“000”到藍牙
reclen=USART2_RX_STA&0X7FFF;
USART2_RX_BUF[reclen]=0;
if(led0pwmval>0)led0pwmval=led0pwmval-50;
else led0pwmval=0;
USART2_RX_STA=0;
}
當按鍵KEY1按下時,調節(jié)占空比大小增加10%并向串口2發(fā)送數(shù)據(jù)“001”,藍牙接收到數(shù)據(jù)向對位機發(fā)送,使得對位機收到信號PWM波占空比增加,同時兩臺單片機顯示屏均顯示改變后的PWM占空比數(shù)值。若占空比為100%則不執(zhí)行操作,KEY1按鍵操控程序:
else if(key==KEY1_PRES)
{
delay_ms(10);
u2_printf("001");
reclen=USART2_RX_STA&0X7FFF;
USART2_RX_BUF[reclen]=0;
if(led0pwmval<499)led0pwmval=led0pwmval+50;
else led0pwmval=500;
USART2_RX_STA=0;
}
這樣程序編寫使得兩個對位單片機操作十分靈活,既可以作為遙控部分發(fā)出信號,也可作為控制部分接收信號,還可以兩端同時操控同樣照明亮度的LED設備。
依前述軟硬件設計完成了控制器實物圖,如圖8所示。
圖8 控制器實物圖Fig.8 Physical diagram of controller
對控制器進行了不同占空比的調光實驗,由PWM輸入引腳至驅動電源5 V穩(wěn)壓輸出引腳,使得LED燈能夠保持亮度不變,控制器與驅動電源連接電源上電,為保證系統(tǒng)穩(wěn)定,設置直流穩(wěn)壓電源輸出電壓為30 V,通過改變遙控端輸入信號改變LED燈亮度。選擇PWM占空比為0%、50%和100%時的波形如圖9所示。
圖9 PWM不同占空比測試結果Fig.9 Test results of PWM different duty cycle test results
結合示波器示數(shù),在PWM占空比分別為0%、50%和100%時,整個系統(tǒng)顯示效果如圖10所示。
圖10 控制器控制效果圖Fig.10 Controller control effect diagram
綜合以上調試,大功率LED調光控制器可以保證對輸出電流電壓的平穩(wěn)控制,完成對LED燈的無線穩(wěn)定調光,并且PWM與藍牙等信息能夠正確顯示在顯示屏上,滿足本課題的設計需求。
大功率LED在未來必將有著更好的發(fā)展前景,而LED調光控制器也必須不斷完善和發(fā)展。本文基于ARM Cortex-M3內核的STM32微控制器STM32F103RCT6,以藍牙無線通信方式遠距離操控大功率LED燈的亮暗,控制方式更加靈活安全。
在調光控制器調試過程中,充分遵循先模塊后整體的思路,驗證按鍵模塊、藍牙模塊、LCD屏幕模塊和PWM模塊的可靠性,達到了設計初期對大功率LCD調光控制器的設計目標。