Analogowa klawiatura dotykowa

Analogowa klawiatura dotykowa
Pobierz PDF Download icon

Zaprezentowana czteroprzyciskowa klawiatura przyda się tam, gdzie trudne warunki pracy eliminują zastosowanie przycisków mechanicznych. Dzięki analogowemu interfejsowi wykorzystuje tylko jeden pin procesora, a sygnalizacja stanu klawiszy na inteligentnych diodach RGB dodatkowo poszerza zakres zastosowań klawiatury.

Podstawowe parametry:
  • cztery pola dotykowe jako obszary miedzi na płytce PCB,
  • wyjście analogowe – każdy przycisk odpowiada innej wartości napięcia na tym wyjściu,
  • przy każdym polu dotykowym znajduje się dioda RGB zgodna z WS2812.

Stan klawiatury określa sygnał analogowy KEY. Pomiar napięcia na tym wyjściu pozwala na określenie wciśniętego przycisku. Progi dzielnika dobrane są następująco: klawiatura nieaktywna KEY=4 V, aktywne kolejno: Q1=3 V, Q2=2 V, Q3=1 V, Q4=0 V. Dla sygnalizacji stanu klawiatury zastosowano diody LD1...LD4 typu LTST-A683CEGBW.

Diody umieszczone są nad każdym polem dotykowym. Dzięki wbudowanemu sterownikowi, zgodnemu z WS2812, do sterowania diodami LED wystarczy tylko jeden pin procesora połączony z pierwszą diodą łańcucha (LD1), kolejne diody połączone są kaskadowo. Możliwe jest sterowanie ich jasnością i kolorem świecenia.

Budowa i działanie

Schemat układu został pokazany na rysunku 1. Bazuje na specjalizowanym kontrolerze AT42QT1040, który obsługuje cztery pola dotykowe z funkcją przycisku chwilowego. Jako sensory dla służą pola QT1...QT4 o średnicy 10 mm, wykonane bezpośrednio na płytce drukowanej. Kondensatory C1...C4 odpowiadają za czułość przycisków – dla mniejszych wartości (np. 2,2 nF) czułość jest niższa, ale rośnie odporność na zakłócenia i szybkość detekcji. Użyteczny zakres pojemności wynosi 2,2...22 nF i należy je dobrać doświadczalnie, po zamontowaniu klawiatury w obudowie.

Rysunek 1. Schemat układu

Wyprowadzenie SNSK0 określa tryb pracy klawiatury, w modelu jest to tryb AKS, w którym układ sygnalizuje dotknięcie tylko jednego pola. Tryb aktywowany jest rezystorem R6 podciągającym linię SNSK0 do VCC. Wyprowadzenie SNSK1 określa szybkość reakcji na dotyk, w modelu ustawiono szybką detekcję poprzez podciągnięcie linii SNSK1 do VCC rezystorem R5. Układ AT42QT1040 posiada wyjścia typu otwarty dren, które sterują dzielnikiem zbudowanym z rezystorów R8...R13.

Układ zasilany jest napięciem 5 V ±10% poprzez złącze SW (JST PH 2.00 mm). Do złącza doprowadzone są sygnały KEY z U1 i LED z LD1...LD4. Układ pracuje poprawnie także przyzasilaniu 3,3 V, ograniczeniem jest jednak specyfikacja zasilania diod LTST-A683CEGBW. Z testów praktycznych, przy zasilaniu 3,3 V, należy ograniczyć jasność LED i najlepiej korzystać tylko z jednego z kolorów RGB.

Montaż i uruchomienie

Układ zmontowany jest na niewielkiej dwustronnej płytce drukowanej, której schemat został pokazany na rysunku 2.

Rysunek 2. Schemat płytki PCB wraz z rozmieszczeniem elementów

Diody LD1…4, są elementami z wyprowadzeniami przystosowanymi do montaż odwróconego, należy je wypozycjonować od strony bottom i od tej strony przylutować (fotografia 1).

Fotografia 1. Zmontowana płytka

Płytka została przetestowana ze szkłem hartowanym i pleksi o grubości ok. 2 mm, z C1=10 nF, detekcja naciśnięcia odbywała się niezawodnie. Podczas eksperymentów z materiałem i jego grubością należy wyłączyć zasilanie klawiatury, aby po ponownym jego włączeniu, procedury autokalibracji mogły zoptymalizować działanie detekcji.

Płytka nie posiada ekranu na warstwie bottom, powoduje to także zmniejszoną czułość na dotyk od tej strony, należy to uwzględnić podczas montażu.

Dla sprawdzenia działania klawiatury wystarczy prosty szkic dla Arduino z użyciem biblioteki Adafruit Neopixel (listing 1).

Listing 1. Kod szkicu testowego dla Arduino

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif

#define AKEY_PIN A0 //KEY pin
#define PIXEL_PIN 6 //LED pin
#define PIXEL_COUNT 4 //LED count

Adafruit_NeoPixel strip(
PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);

boolean oldState = LOW;
int mode = 0;
int brightness = 10;
int wait = 1;
int akeyvalue = 1023;

void setup() {
strip.begin(); // NeoPixel strip
strip.setBrightness(brightness);
strip.show(); // Initialize all pixels to ‘off’
//SerialUSB.begin(9600);
//SerialUSB.println("LTST_A683+QT1040");
}

void loop() {
akeyvalue = analogRead(AKEY_PIN);
//QT1
if (akeyvalue >= 550 && akeyvalue <= 650) {
strip.setPixelColor(0, 255, 0, 0);
strip.show();
delay(wait);
}
//QT2
if (akeyvalue >= 350 && akeyvalue <= 450) {
strip.setPixelColor(1, 0, 255, 0);
strip.show();
delay(wait);
}
//QT3
if (akeyvalue >= 150 && akeyvalue <= 250) {
strip.setPixelColor(2, 0, 0, 255);
strip.show();
delay(wait);
}
//QT4
if (akeyvalue >= 0 && akeyvalue <= 50) {
strip.setPixelColor(0, 0, 0, 0);
strip.setPixelColor(1, 0, 0, 0);
strip.setPixelColor(2, 0, 0, 0);
strip.setPixelColor(3, 255, 255, 255);
strip.show();
delay(wait);
strip.setPixelColor(3, 0, 0, 0);
strip.show();
delay(wait);
}
}

Program symuluje klawiaturę z trzema przyciskami ustawiającymi Q1, Q2, Q3 i kasującym Q4. Dotyk pierwszego pola potwierdzony jest LD1 świecącą na zielono, drugie pole sygnalizowane jest LD2 na czerwono, trzecie LD3 na niebiesko, kasowanie potwierdzone jest chwilowym świeceniem LD4 na biało.

Adam Tatuś
adam.tatus@ep.com.pl

Wykaz elementów:
Rezystory:
  • R1, R2, R3, R4, R12: 10 kΩ
  • R5, R6: 1 MΩ
  • R7: 10 Ω
  • R8: 24 kΩ
  • R9: 8,2 kΩ
  • R10: 4,3 kΩ
  • R11: 2,4 kΩ
  • R13: 100 Ω
Kondensatory:
  • C1…C4: 10 nF SMD0603
  • C5…C9: 0,1 µF SMD0603
  • CE1: 22 µF/10 V tantalowy SMDA
Półprzewodniki:
  • LD1…LD4: dioda LED RGB ze sterownikiem LTST-A683CEGBW
  • U1: AT42QT1040 (VQFN20)
Inne:
  • FB: dławik ferrytowy SMD0603 BLM18AG102
  • SW: złącze JST 2 mm
Artykuł ukazał się w
Elektronika Praktyczna
grudzień 2020
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik lipiec 2021

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio lipiec - sierpień 2021

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka Podzespoły Aplikacje lipiec 2021

Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna lipiec 2021

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich lipiec 2021

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów