基于觸摸屏的LED彩色臺(tái)燈控制系統(tǒng)設(shè)計(jì)
本系統(tǒng)是利用觸摸屏控制的可調(diào)顏色的照明燈具。燈源為大功率超高亮三基色發(fā)光二極管組成。本設(shè)計(jì)最大的亮點(diǎn)是觸摸屏上所指示的顏色與實(shí)際燈照出的顏色一致。到通過(guò)c 語(yǔ)言程序?qū)纹瑱C(jī)的PWM 功能進(jìn)行控制實(shí)現(xiàn)相應(yīng)的坐標(biāo)變換使燈具實(shí)現(xiàn)調(diào)色調(diào)亮的效果,為使用者提供一個(gè)隨心調(diào)節(jié)室內(nèi)氣氛的良好工具。
本文引用地址:http://2s4d.com/article/167896.htm一、控制硬件總體設(shè)計(jì)
系統(tǒng)的總體框圖如圖1 所示。系統(tǒng)可有輸入,輸出,控制三部分組成,當(dāng)觸摸屏被按下觸摸屏芯片讀取觸摸屏上X 軸與Y 軸的值,然后通過(guò)SPI 協(xié)議傳送到控制器,控制器負(fù)責(zé)信號(hào)的處理,把處理完畢的信號(hào)以PWM 方式輸出驅(qū)動(dòng)LED.
圖1 系統(tǒng)總體框圖
二、觸摸屏的使用
本系統(tǒng)選擇電阻式觸摸屏,它將矩形區(qū)域中觸摸點(diǎn)(X,Y) 的物理位置轉(zhuǎn)換為代表X 坐標(biāo)和Y 坐標(biāo)的電壓其觸摸屏結(jié)構(gòu)如圖2 所示。圖3 顯示了四線(xiàn)觸摸屏在兩層相接觸時(shí)的簡(jiǎn)化模型。對(duì)于四線(xiàn)觸摸屏,最理想的連接方法是將偏置為VREF 的總線(xiàn)接ADC 的正參考輸入端,并將設(shè)置為0V 的總線(xiàn)接ADC 的負(fù)參考輸入端。
圖2 電阻觸摸屏結(jié)構(gòu)。
圖3 電阻觸摸屏簡(jiǎn)化模型。
三、接口電路設(shè)計(jì)
1. 控制器與觸摸屏連接
本系統(tǒng)采用美國(guó)TI 公司生產(chǎn)的ADS7843,該芯片內(nèi)置12 位AD 轉(zhuǎn)換、低導(dǎo)通電阻模擬開(kāi)關(guān)的SPI 總線(xiàn)接口觸摸屏控制。供電電壓為2.7 ~ 5.25V,參考電壓VREF 為1V~+VCC,轉(zhuǎn)換電壓范圍為0 ~ VREF,控制器可通過(guò)內(nèi)置的SPI 輸出口MOSI、MISO、SCK 與觸摸屏芯片進(jìn)行連接,如圖4 所示。
圖4 單片機(jī)與觸摸屏接口電路圖。
2. LED驅(qū)動(dòng)電路
控制器輸出PWM 波形作為驅(qū)動(dòng)電路的驅(qū)動(dòng)信號(hào),三極管Q1 作為斬波器件。當(dāng)驅(qū)動(dòng)信號(hào)為高電平時(shí)三極管處于截止?fàn)顟B(tài),LED 不亮;當(dāng)輸入信號(hào)為低電平三極管處于導(dǎo)通狀態(tài),LED 點(diǎn)亮。紅色LED 的驅(qū)動(dòng)電路如圖5 所示,綠色與藍(lán)色LED 的驅(qū)動(dòng)電路的結(jié)構(gòu)與紅色的相同,單片機(jī)的PB7 端為綠色LED 的驅(qū)動(dòng)信號(hào),PD4 為藍(lán)色LED 的驅(qū)動(dòng)信號(hào)。
圖5 紅色LED的驅(qū)動(dòng)電路圖。
四、系統(tǒng)的程序設(shè)計(jì)
1.系統(tǒng)總流程圖
系統(tǒng)硬件可以分為輸入、控制、輸出部分,其中控制部分是連接輸入、輸出。單片機(jī)程序決定輸入如何影響輸出,輸出如何響應(yīng)輸入,其具體框圖如圖6 所示。單片機(jī)對(duì)ADS7843 進(jìn)行讀取后對(duì)數(shù)據(jù)進(jìn)行坐標(biāo)變換,最后把處理的值輸出驅(qū)動(dòng)LED.
圖6 系統(tǒng)軟件流程圖。
2.觸摸屏坐標(biāo)讀取
所謂的觸摸點(diǎn)坐標(biāo)是指當(dāng)觸摸屏被按下時(shí)觸摸芯片讀出的X 軸與Y 軸的數(shù)值。觸摸坐標(biāo)的讀取時(shí)非常關(guān)鍵的,它是觸摸屏使用過(guò)程中最重要的環(huán)節(jié),若觸摸點(diǎn)坐標(biāo)有誤,將導(dǎo)致單片機(jī)錯(cuò)誤處理。首先使能ADS7843,然后向ADS7843 寫(xiě)入測(cè)量X 坐標(biāo)的控制字,延時(shí)若干毫秒后,讀取ADS7843 的轉(zhuǎn)換數(shù)據(jù)。讀取的數(shù)據(jù)即X 的坐標(biāo)值;再把測(cè)量Y 坐標(biāo)控制字寫(xiě)入ADS7843,延時(shí)若干毫秒后,讀取ADS7843 的轉(zhuǎn)換數(shù)據(jù),就得到了Y 坐標(biāo)的值,然后禁止ADS7843.這樣既完成了一次讀取坐標(biāo)值的過(guò)程。其具體流程如圖7所示。
圖7 ADS7843讀取框圖
3.系統(tǒng)坐標(biāo)校準(zhǔn)處理
由于任意兩個(gè)觸摸屏上的點(diǎn)密度都不可能完全一致,所以要求在使用觸摸屏之前,必須進(jìn)行校準(zhǔn)。校準(zhǔn)方式有兩點(diǎn)校準(zhǔn),三點(diǎn)校準(zhǔn),四點(diǎn)校準(zhǔn)等。其中,校準(zhǔn)的點(diǎn)數(shù)越多,觸摸屏數(shù)據(jù)越精確,校準(zhǔn)也越繁瑣。本系統(tǒng)使用兩點(diǎn)校準(zhǔn)的方法對(duì)觸摸屏進(jìn)行校準(zhǔn)。
(1) 先分別測(cè)試觸摸屏左下角及右上角的坐標(biāo)(ads7843_xmin,ads7843_ymin);(ads7843_xmax,ads7843_ymax);
(2) 計(jì)算水平方向的比率(ads7843_xts)和垂直方向的比率(ads7843_yts);
(3)假設(shè)液晶屏中的當(dāng)前點(diǎn)是液晶屏坐標(biāo)(X,Y):
當(dāng)前點(diǎn)的觸摸屏的X 坐標(biāo)=X× ads7843_xts+ ads7843_xmin ;
當(dāng)前點(diǎn)的觸摸屏的Y 坐標(biāo)=Y× ads7843_yts+ ads7843_ymin ;
系統(tǒng)執(zhí)行校準(zhǔn)程序后把觸摸屏左下角, 右下角的坐標(biāo)值與水平方向的比率存放如單片機(jī)EEPROM 中,每當(dāng)系統(tǒng)重新啟動(dòng)時(shí)調(diào)用對(duì)應(yīng)的數(shù)值有于對(duì)觸摸位置的判別。
4.控制器SPI通訊
控制器ATmega48內(nèi)部集成SPI通訊所需的軟硬件功能,主機(jī)和從機(jī)之間的SPI 連接如圖8所示。系統(tǒng)包括兩個(gè)移位寄存器和一個(gè)主機(jī)時(shí)鐘發(fā)生器,通過(guò)將從機(jī)的 SS引腳拉低,主機(jī)啟動(dòng)一次通訊過(guò)程。主機(jī)和從機(jī)將需要發(fā)送的數(shù)據(jù)放入相應(yīng)的移位寄存器。主機(jī)在SCK引腳上產(chǎn)生時(shí)鐘脈沖以交換數(shù)據(jù)。主機(jī)的數(shù)據(jù)從主機(jī)的MOSI移出,從從機(jī)的MOSI移入;從機(jī)的數(shù)據(jù)從從機(jī)的MISO移出,從主機(jī)的MISO移入。主機(jī)通過(guò)將從機(jī)的SS拉高實(shí)現(xiàn)與從機(jī)的同步。
評(píng)論