Programowa obsługa klawiatur pojemnościowych w mikrokontrolerach NXP LPC1100

Przykładowa aplikacja

Przykładowa aplikacja wykorzystująca przedstawioną metodę odczytu stanu przycisków używa kanału 1 przetwornika A/C mikrokontrolera LPC1100 (wyprowadzenie PIO1_0). Aby pokazać efekt wciśnięcia przycisku dodatkowo wykorzystane zostały wyprowadzenia PIO3_2 oraz PIO3_3, które sterują diodami LED. Linia PIO3_2 pracuje w trybie przełączania (dotyk/brak dotyku), natomiast linia PIO3_3 działa w trybie chwilowym (jak przycisk). Dioda świeci tak długo, jak długo trwa zbliżenie palca do powierzchni sensora.

Przykładowe oprogramowanie zostało napisane w języku C. Kod został skompilowany przy wykorzystaniu środowiska programistycznego Keil uVision (MDK-ARM V4.14). W projekcie użyto standardowych bibliotek CMSIS (pliki startup_LPC11xx.s and system_LPC11xx.c). Zegar CCLK = IRC został ustawiony na wartość 12 MHz. Kod źródłowy aplikacji przedstawiono w listingu 1.

Listing 1.

Podsumowanie

Korzystając z przedstawionego przykładu projektanci mogą w łatwy sposób rozszerzyć funkcjonalność urządzeń opartych na mikrokontrolerach LPC11xx o obsługę klawiatur pojemnościowych. Zaletą programowej implementacji jest brak konieczności stosowania dodatkowych układów elektronicznych (np. sprzętowych kontrolerów klawiatur), co pozwala zaoszczędzić miejsce i zmniejszyć koszty produkcji projektowanych urządzeń.

Artykuł opracowano na podstawie noty aplikacyjnej AN11023 firmy NXP.

Odnośniki

[1] Noty katalogowe, dokumentacja aplikacyjna, przykładowe kody źródłowe:

[2] Nota AN10832: “PCF8883 – capacitive proximity switch with auto-calibration”: http://www.nxp.com/documents/application_note/AN10832.pdf

[3] Nota UM10370: “User Manual for the PCF8883 Evaluation Kit OM11055”: http://www.nxp.com/documents/user_manual/UM10370.pdf

Do pobrania

O autorze