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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 電容式觸摸感應(yīng)的技巧

          電容式觸摸感應(yīng)的技巧

          作者: 時(shí)間:2016-12-16 來源:網(wǎng)絡(luò) 收藏




          PSoC 采用固件來配置,以采用一個(gè)5V 工作電源和一個(gè)內(nèi)部生成的24MHz 系統(tǒng)時(shí)鐘。對(duì)該24MHz 時(shí)鐘進(jìn)行1:26 分頻,以提供一個(gè)用于115,200 波特TX8 模塊的時(shí)鐘。CapSense 用戶模塊選擇以“周期法”(Period Method)來運(yùn)行,在該工作模式中,計(jì)數(shù)在固定數(shù)量的弛張振蕩器周期中累加。換言之,16 位計(jì)數(shù)器值代表了一個(gè)與傳感器電容成正比的周期。

          清單1 羅列了系統(tǒng)固件。與設(shè)立電容式觸摸感應(yīng)系統(tǒng)相關(guān)的大部分工作都已被編碼為一組由C 程序來調(diào)用的標(biāo)準(zhǔn)CSR例行程序。例如:CSR_1_Start()負(fù)責(zé)配置PSoC 的內(nèi)部布線,以使電流源DAC與模擬多路復(fù)用器相連,而比較器與經(jīng)過正確初始化的PWM和16 位計(jì)數(shù)器相連。
          清單1:用于電容式觸摸感應(yīng)系統(tǒng)的固件
          //-----------------------------start of listing--------------------------------------------------------
          //----------------------------------------------------------------------------
          // main.c, a CapSense program in C
          // A demonstration of Capacitive Sensing with PSoC
          // with a 10mm glass overlay
          //----------------------------------------------------------------------------
          #include// part specific constants and macros
          #include "PSoCAPI.h" // PSoC API definitions for all User Modules
          void main()
          {
          //a flag that is set when a finger is on any buttons
          int bBaselineButtonFlag;
          CSR_1_Start(); //initialize CapSense user module
          TX8_1_Start(TX8_1_PARITY_NONE); //initialize TX8 module
          M8C_EnableGInt; //enable global interrupts
          CSR_1_SetDacCurrent(200,0); //set current source to 200 out of 255
          //use low range of current source
          CSR_1_SetScanSpeed(255); //set number of osc cycles to 255-2=253
          while(1)
          {
          CSR_1_StartScan(1,1,0); //scan one button only, button 1 on P2[3]
          //wait for scanning of button to complete
          while (!(CSR_1_GetScanStatus() & CSR_1_SCAN_SET_COMPLETE));
          //update baseline if required, set flag if any button pressed
          bBaselineButtonFlag = CSR_1_bUpdateBaseline(0);
          //data log the raw counts on button 1
          TX8_1_PutSHexInt(CSR_1_iaSwResult[1]);
          TX8_1_PutChar(,);
          //data log switch mask... which switch is on?
          TX8_1_PutSHexInt(CSR_1_baSwOnMask[0]);
          TX8_1_CPutString(",");
          //data log switch difference = raw counts - baseline
          TX8_1_PutSHexInt(CSR_1_iaSwDiff[1]);
          TX8_1_PutChar(,);
          //data log update timer as a teaching aid
          TX8_1_PutSHexInt(CSR_1_bBaselineUpdateTimer);
          TX8_1_PutChar(,);
          //data log the baseline counts for button 1
          TX8_1_PutSHexInt(CSR_1_iaSwBaseline[1]/4);
          TX8_1_PutCRLF();
          }
          }
          //-------------------------------end of listing--------------------------------------------------------

          調(diào)整傳感器

          每次在上列程序中調(diào)用函數(shù)CSR_1_StartScan( )時(shí),均對(duì)Button1 的電容進(jìn)行測(cè)量。原始計(jì)數(shù)值被存儲(chǔ)于CSR_1_iaSwResult[]陣列中。用戶模塊還跟蹤一個(gè)用于原始計(jì)數(shù)的基線。每個(gè)按鈕的基線值均為一個(gè)由IIR濾波器采用軟件進(jìn)行周期性計(jì)算的平均原始計(jì)數(shù)值。IIR 濾波器的更新速率是可編程的?;€使得系統(tǒng)能夠適應(yīng)由于溫度和其他環(huán)境影響而在系統(tǒng)中引起的漂移。開關(guān)差分陣列CSR_1_iaSwDiff[]包含消除了基線偏移的原始計(jì)數(shù)值。按鈕目前的ON/OFF 狀態(tài)采用開關(guān)差值來決定。這可使系統(tǒng)的性能保持恒定,即便在基線有可能隨著時(shí)間的推移而發(fā)生漂移的情況下也是如此。
          圖6 示出了采用固件來實(shí)現(xiàn)的差分計(jì)數(shù)與按鈕狀態(tài)之間的轉(zhuǎn)移函數(shù)。該轉(zhuǎn)移函數(shù)中的遲滯提供了ON 和OFF 狀態(tài)之間的干凈轉(zhuǎn)換,即使計(jì)數(shù)是有噪的也不例外。這提供了一種針對(duì)按鈕的除跳功能。較低的閾值被稱為“噪聲閾值”,而較高的閾值則被稱為“手指閾值”。閾值水平的設(shè)定決定了系統(tǒng)的性能。在覆蓋物非常厚的場(chǎng)合,信噪比很低。在此類系統(tǒng)中設(shè)定閾值水平是一項(xiàng)具有挑戰(zhàn)性的工作,而這恰好是電容式觸摸感應(yīng)技巧的一
          部分。



          圖7 示出了一個(gè)持續(xù)時(shí)間為3 秒的按鈕觸壓操作的理想化原始計(jì)數(shù)波形。針對(duì)本項(xiàng)目的閾值水平示于此圖。噪聲閾值被設(shè)定為10 個(gè)計(jì)數(shù),而手指閾值被設(shè)定為60 個(gè)計(jì)數(shù)。為了清晰地顯示閾值水平,圖8 并未示出始終存在于實(shí)際計(jì)數(shù)數(shù)據(jù)之中的噪聲分量。


          評(píng)論


          技術(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); })();