主要產品系列 |
方案中描述了使用LPC11XX微控制器的ADC(模數轉換)輸入來實現一個簡單的電容式觸摸傳感器的方法。
方案中使用的電容式觸摸傳感器位于PCF8883評估板的PCB板上的鍍銅區域(見圖1)。4個傳感器中有一個通過阻容網絡(RC)與LPC11XX微控制器ADC輸入端連接(見圖2)。
圖1 | 圖2 |
傳感只需要一個PIN腳,ADC輸入端或者通用輸出端。讀的過程只有幾個簡單的步驟(見圖3)。
首先,把I/0 pin腳置高輸出狀態(high output),向外部的10pF電容和電容板(capactive plate)充電。
然后,I/O pin 腳重置為ADC輸入狀態(ADC input),這將引發外部電容和電容板通過兩個電阻放電(de-charge)。例子中使用的電阻為5K-50K。當手指觸摸傳感器時,總電容增加,因此放電弧度變小。
之后,ADC轉換器啟動。手指觸摸導致ADC讀取量增加。在示例代碼中,在無觸摸時有一個穩定的平均值,觸摸后產生一個能被檢測到的誤差值。
最后,I/O pin 重新置為“高”輸出狀態(”high” output),回到第一步。
圖3 |
LPC1100演示代碼使用ADC輸入端(PIO1_0)作為傳感輸入。此外,有兩個輸出連接到LED上,可以方便的觀察到傳感器的轉換過程。
一個輸出(PIO3_2)指示觸摸狀態(觸摸,無觸摸)
另一個輸出(PIO3_3)指示瞬時轉換模式。只要觸摸事件持續,輸出就會激活,LED點亮。
這個軟件示例是用 C語言編寫,并使用Keil’s uVision (MDKARM,V4.14)編譯器編譯。LPC11XX使用標準CMSIS啟動代碼(startup_LPC11xx.s and system_LPC11xx.c),并設置CCLK = IRC = 12 MHz。