LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
Artykuły

Implementacja obsługi klawiatur pojemnościowych w LPC17xx firmy NXP

Interfejsy użytkownika wykorzystujące technologie dotykowe są coraz powszechniej spotykanym elementem urządzeń elektronicznych, w których zastępują dotychczas stosowane interfejsy użytkownika oparte na elementach mechanicznych. Popularność interfejsów dotykowych można wytłumaczyć ich zaletami, dzięki którym górują nad rozwiązaniami o charakterze mechanicznym – należą do nich między innymi większa niezawodność i funkcjonalność. Nic więc zatem dziwnego, że producenci mikrokontrolerów wprowadzając do sprzedaży nowe układy dbają o to, aby w możliwie łatwy sposób można było w nich zaimplementować obsługę przycisków dotykowych. Przykładem takiego trendu jest przedstawiony poniżej sposób realizacji dotykowego interfejsu użytkownika wykorzystującego mikrokontroler z rodziny LPC17xx (rdzeń ARM Cortex-M3) firmy NXP Semiconductors.

 

 

Sposób realizacji warstwy fizycznej interfejsu użytkownika przedstawiono na rys. 1. Cała konstrukcja składa się z umieszczonych na płytce drukowanej miedzianych pól będących przyciskami pojemnościowymi, które zostały dołączone do mikrokontrolera LPC17xx za pomocą obwodów RC (dwa rezystory i kondensator). Wykorzystane w mikrokontrolerze wyprowadzenia muszą spełniać dwa warunki – mieć możliwość pełnienia funkcji linii I/O oraz przetwornika A/C.

 

 

Rys. 1. 
Fizyczna realizacja interfejsu użytkownika z przyciskami pojemnościowymi

Rys. 1. Fizyczna realizacja interfejsu użytkownika z przyciskami pojemnościowymi

 

 

Algorytm odczytu stanu pojedynczego przycisku można przedstawić w kilku krokach:

  1. Skonfigurowanie wyprowadzenia mikrokontrolera jako linii I/O oraz ustawienie logicznego stanu wysokiego. Czynność ta spowoduje naładowanie ładunkiem elektrycznym kondensatora w obwodzie RC oraz pola przycisku
  2. Przekonfigurowanie wyprowadzenia układu na funkcję przetwornika A/C. Zmiana ta wywoła odpływ ładunku przez rezystory do masy (proces rozładowywania kondensatora i pola przycisku)
  3. Rozpoczęcie procesu odczytu napięcia z przetwornika
  4. Odczyt poziomu napięcia na linii. Jeśli pole przycisku było dotknięte przez palec jego pojemność wzrosła, przez co poziom napięcia w momencie odczytu jest wyższy.

Metodę odczytu stanu przycisku wraz z zaznaczeniem omówionych punktów zilustrowano na rys. 2.

 

 

Rys. 2. Wykres 
napięcia w funkcji czasu na wyprowadzeniu dołączonym do przycisku pojemnościowego

Rys. 2. Wykres napięcia w funkcji czasu na wyprowadzeniu dołączonym do przycisku pojemnościowego

 

 

Kod źródłowy do obsługi przedstawionego interfejsu użytkownika został podzielony przez autorów programu na kilka plików zgodnie z realizowaną funkcjonalnością. Strukturę plików programu przedstawiono na rys. 3 (środowisko Keil).

 

 

Rys. 3. Struktura plików 
programu

Rys. 3. Struktura plików programu

 

 

Pracę z programem należy rozpocząć od zapoznania się z plikiem config.h. Poprzez jego edycję można dostosować konfigurację parametrów pracy programu optymalnie do własnych potrzeb – ustawiając liczbę potrzebnych przycisków (od 1 do 8) i przyporządkowując każdemu odpowiednie wyprowadzenie mikrokontrolera i  kanał przetwornika A/C (listing 1).

SZYMON PANECKI urodził się 17 lutego 1985 roku w Milanówku. Tytuł inżyniera Elektroniki i Telekomunikacji, a następnie magistra inżyniera na Wydziale Elektroniki Politechniki Wrocławskiej uzyskał kolejno w roku 2008 i 2010. Ponadto tytuł inżyniera Informatyki na Wydziale Elektroniki Politechniki Wrocławskiej uzyskał w roku 2011. Szymon Panecki jest doświadczonym elektronikiem-konstruktorem, który w trakcie swojej zawodowej kariery koncentruje się na definiowaniu i projektowaniu (zarówno w warstwie sprzętowej jak i programowej) systemów wbudowanych opartych na mikrokontrolerach z rdzeniem ARM od różnych producentów, w tym przede wszystkim Infineon Technologies (rodzina XMC1000 i XMC4000), STMicroelectronics (STM32 i STR7), Freescale Semiconductor (Kinetis L) oraz Silicon Labs (EFM32 i Precision32). Obszarem jego szczególnego zainteresowania są systemy wykorzystujące czujniki środowiskowe (wilgotności, ciśnienia, temperatury) oraz przemysłowe i motoryzacyjne interfejsy komunikacyjne, głównie CAN. Szymon Panecki od wielu lat współpracuje z czasopismem "Elektronika Praktyczna" oraz portalem Mikrokontroler.pl, na łamach których publikuje liczne artykuły dotyczące swoich projektów, jak również nowości produktowych firm z branży półprzewodnikowej.