<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 光電顯示 > 設(shè)計應(yīng)用 > 基于觸摸屏的LED彩色臺燈控制系統(tǒng)設(shè)計

          基于觸摸屏的LED彩色臺燈控制系統(tǒng)設(shè)計

          作者: 時間:2012-06-20 來源:網(wǎng)絡(luò) 收藏

          本系統(tǒng)是利用控制的可調(diào)顏色的照明燈具。燈源為大功率超高亮三基色發(fā)光二極管組成。本最大的亮點(diǎn)是上所指示的顏色與實(shí)際燈照出的顏色一致。到通過c 語言程序?qū)纹瑱C(jī)的PWM 功能進(jìn)行控制實(shí)現(xiàn)相應(yīng)的坐標(biāo)變換使燈具實(shí)現(xiàn)調(diào)色調(diào)亮的效果,為使用者提供一個隨心調(diào)節(jié)室內(nèi)氣氛的良好工具。

          本文引用地址:http://www.ex-cimer.com/article/167896.htm

          一、控制硬件總體

          系統(tǒng)的總體框圖如圖1 所示。系統(tǒng)可有輸入,輸出,控制三部分組成,當(dāng)被按下觸摸屏芯片讀取觸摸屏上X 軸與Y 軸的值,然后通過SPI 協(xié)議傳送到控制器,控制器負(fù)責(zé)信號的處理,把處理完畢的信號以PWM 方式輸出驅(qū)動.

          圖1 系統(tǒng)總體框圖

          圖1 系統(tǒng)總體框圖

          二、觸摸屏的使用

          本系統(tǒng)選擇電阻式觸摸屏,它將矩形區(qū)域中觸摸點(diǎn)(X,Y) 的物理位置轉(zhuǎn)換為代表X 坐標(biāo)和Y 坐標(biāo)的電壓其觸摸屏結(jié)構(gòu)如圖2 所示。圖3 顯示了四線觸摸屏在兩層相接觸時的簡化模型。對于四線觸摸屏,最理想的連接方法是將偏置為VREF 的總線接ADC 的正參考輸入端,并將設(shè)置為0V 的總線接ADC 的負(fù)參考輸入端。

          圖2 電阻觸摸屏結(jié)構(gòu)。

          圖2 電阻觸摸屏結(jié)構(gòu)。

          圖3 電阻觸摸屏簡化模型

          圖3 電阻觸摸屏簡化模型。

          三、接口電路

          1. 控制器與觸摸屏連接

          本系統(tǒng)采用美國TI 公司生產(chǎn)的ADS7843,該芯片內(nèi)置12 位AD 轉(zhuǎn)換、低導(dǎo)通電阻模擬開關(guān)的SPI 總線接口觸摸屏控制。供電電壓為2.7 ~ 5.25V,參考電壓VREF 為1V~+VCC,轉(zhuǎn)換電壓范圍為0 ~ VREF,控制器可通過內(nèi)置的SPI 輸出口MOSI、MISO、SCK 與觸摸屏芯片進(jìn)行連接,如圖4 所示。

          圖4 單片機(jī)與觸摸屏接口電路圖。

          圖4 單片機(jī)與觸摸屏接口電路圖。

          2. 驅(qū)動電路

          控制器輸出PWM 波形作為驅(qū)動電路的驅(qū)動信號,三極管Q1 作為斬波器件。當(dāng)驅(qū)動信號為高電平時三極管處于截止?fàn)顟B(tài), 不亮;當(dāng)輸入信號為低電平三極管處于導(dǎo)通狀態(tài),LED 點(diǎn)亮。紅色LED 的驅(qū)動電路如圖5 所示,綠色與藍(lán)色LED 的驅(qū)動電路的結(jié)構(gòu)與紅色的相同,單片機(jī)的PB7 端為綠色LED 的驅(qū)動信號,PD4 為藍(lán)色LED 的驅(qū)動信號。

          圖5 紅色LED的驅(qū)動電路圖。

          四、系統(tǒng)的程序設(shè)計

          1.系統(tǒng)總流程圖

          系統(tǒng)硬件可以分為輸入、控制、輸出部分,其中控制部分是連接輸入、輸出。單片機(jī)程序決定輸入如何影響輸出,輸出如何響應(yīng)輸入,其具體框圖如圖6 所示。單片機(jī)對ADS7843 進(jìn)行讀取后對數(shù)據(jù)進(jìn)行坐標(biāo)變換,最后把處理的值輸出驅(qū)動LED.

          圖6 系統(tǒng)軟件流程圖

          圖6 系統(tǒng)軟件流程圖。

          2.觸摸屏坐標(biāo)讀取

          所謂的觸摸點(diǎn)坐標(biāo)是指當(dāng)觸摸屏被按下時觸摸芯片讀出的X 軸與Y 軸的數(shù)值。觸摸坐標(biāo)的讀取時非常關(guān)鍵的,它是觸摸屏使用過程中最重要的環(huán)節(jié),若觸摸點(diǎn)坐標(biāo)有誤,將導(dǎo)致單片機(jī)錯誤處理。首先使能ADS7843,然后向ADS7843 寫入測量X 坐標(biāo)的控制字,延時若干毫秒后,讀取ADS7843 的轉(zhuǎn)換數(shù)據(jù)。讀取的數(shù)據(jù)即X 的坐標(biāo)值;再把測量Y 坐標(biāo)控制字寫入ADS7843,延時若干毫秒后,讀取ADS7843 的轉(zhuǎn)換數(shù)據(jù),就得到了Y 坐標(biāo)的值,然后禁止ADS7843.這樣既完成了一次讀取坐標(biāo)值的過程。其具體流程如圖7所示。

          圖7 ADS7843讀取框圖

          圖7 ADS7843讀取框圖

          3.系統(tǒng)坐標(biāo)校準(zhǔn)處理

          由于任意兩個觸摸屏上的點(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)的方法對觸摸屏進(jìn)行校準(zhǔn)。

          (1) 先分別測試觸摸屏左下角及右上角的坐標(biāo)(ads7843_xmin,ads7843_ymin);(ads7843_xmax,ads7843_ymax);

          (2) 計算水平方向的比率(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)重新啟動時調(diào)用對應(yīng)的數(shù)值有于對觸摸位置的判別。

          4.控制器SPI通訊

          控制器ATmega48內(nèi)部集成SPI通訊所需的軟硬件功能,主機(jī)和從機(jī)之間的SPI 連接如圖8所示。系統(tǒng)包括兩個移位寄存器和一個主機(jī)時鐘發(fā)生器,通過將從機(jī)的 SS引腳拉低,主機(jī)啟動一次通訊過程。主機(jī)和從機(jī)將需要發(fā)送的數(shù)據(jù)放入相應(yīng)的移位寄存器。主機(jī)在SCK引腳上產(chǎn)生時鐘脈沖以交換數(shù)據(jù)。主機(jī)的數(shù)據(jù)從主機(jī)的MOSI移出,從從機(jī)的MOSI移入;從機(jī)的數(shù)據(jù)從從機(jī)的MISO移出,從主機(jī)的MISO移入。主機(jī)通過將從機(jī)的SS拉高實(shí)現(xiàn)與從機(jī)的同步。

          圖8 控制器SPI通訊框圖
          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();