Klawiatura matrycowa

Podobne dokumenty
Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe

Uwaga: dioda na wyjściu 13 świeci gdy na wyjście podamy 0.

Schemat blokowy architektury AVR

Uczeń/Uczennica po zestawieniu połączeń zgłasza nauczycielowi gotowość do sprawdzenia układu i wszystkich połączeń.

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

LABORATORIUM - ELEKTRONIKI Układy mikroprocesorowe cz.2

Wprowadzenie do programowania urządzeń Arduino (Arduino dla Informatyków)

Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe

Tematem projektu jest oparty na Arduino zegar pokazujący godzinę oraz datę.

Pilot RF 4-kanałowy + odbiornik XY-DJM-5V umożliwia zdalne sterowanie do czterech urządzeń. Nadajnik pilot MX804. Odbiornik XY-DJM.

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Rafał Staszewski Maciej Trzebiński, Dominik Derendarz

Instrukcja dla: Icomsat v1.0 SIM900 GSM/GPRS shield for Arduino oraz dla GPRS Shield produkcji Seeedstudio.

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

ze względu na jego zaokrąglony kształt musimy go umieścić w innych bloczkach np. ze zmienną: lub jeśli chcemy sprawdzić jaki właśnie znak odczytujemy:

Laboratorium mikrokontrolerów

Zmierzyć się z żywiołami, czyli jak zbudować własną stację badawczą! Zaczynamy! Pole komunikatów programu. Nawigacja w programie Arduino

LABORATORIUM UKŁADY STYKOWE ZL3AVR

Silnik prądu stałego. Sterowanie silnika prądu stałego

Pomiar odległości z Arduino czujniki, schematy, przykładowe kody

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

SCL > Pin 21 SDA > Pin 20 VCC > 5V GND > GND

Immobilizer samochodowy otwierający dostęp poprzez kod czteroznakowy.

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD

Ustawienia ogólne. Ustawienia okólne są dostępne w panelu głównym programu System Sensor, po kliknięciu ikony

Prosty system alarmowy z Arduino

Wyświetlacz LCD. Ogólne zasady działania

Programowanie mikrokontrolerów AVR z rodziny ATmega.

KONSMETAL Zamek elektroniczny NT C496-L250 (RAPTOR)

Touch button module. Moduł przycisku dotykowy z podświetleniem LED

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

INSTRUKCJA OBSŁUGI K3-3. Czytnik kart i zamek kodowy z kontrolerem dostępu i interfejsem Wiegand. Copyright Domster T. Szydłowski

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

Server setup. #include <SPI.h> #include <Ethernet.h> boolean incoming = 0;

MultiTool instrukcja użytkownika 2010 SFAR

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Nazwa implementacji: Pamięć i zręczność - zapamiętaj kolejność. Autor: Krzysztof Bytow

INSTRUKCJA OBSŁUGI R3/R4 R3-K/R4-K. Czytnik kart z interfejsem Wiegand. Czytnik kart i zamek kodowy z interfejsem Wiegand

Przetwornik analogowo-cyfrowy

Laboratorium 1: Wprowadzenie do środowiska programowego. oraz podstawowe operacje na rejestrach i komórkach pamięci

INSTRUKCJA OBSŁUGI R3/R4 R3-K/R4-K. Czytnik kart z interfejsem Wiegand. Czytnik kart i zamek kodowy z interfejsem Wiegand

Q3 Autonomiczny czytnik kart i zamek kodowy z kontrolerem dostępu, przyciskiem dzwonka i interfejsem Wiegand

Instrukcja logowania do systemu e-bank EBS

Opis układów wykorzystanych w aplikacji

INSTRUKCJA PROGRAMOWANIA KASY FISKALNEJ I-ERGOS 3050 PRZY POMOCY PROGRAMU PLU MANAGER I-ERGOS.

Uniwersalny system automatyki budynkowej w oparciu o. moduł sterujący SAB i moduły wykonawcze MWD. Praca autonomiczna Moduł sterujący SAB...

Arduino dla początkujących. Kolejny krok Autor: Simon Monk. Spis treści

Arduino prezentuje działanie bramki logicznej AND

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

SML3 październik

SMS SMS telefon. Umożliwia łatwe i szybkie wysyłanie wiadomości SMS...

Celem ćwiczenia jest zapoznanie z obsługą klawiatury sekwencyjnej i matrycowej w systemie DSM-51.

Kurs Elektroniki. Zastosowanie elektroniki w robotyce cz

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Krótki wstęp o wyświetlaczach. Jak zmusić wyświetlacz do pracy?

Mikrokontrolery wytyczne do projektów Temat 1 Łamanie kodu

Wprowadzenie do programowania urządzeń Arduino (Arduino dla Informatyków)

Sterownik zamka ZS NOB

Instrukcja programowania nadajnika ATV-49. Instrukcja dotyczy programu PR-DOS V0.80 LIGHT, który obsługuje nadajniki ATV-49 SV 1.3

Instrukcja obsługi programatora AVR Prog USB v2

Spis treści JĘZYK C - INSTRUKCJA SWITCH, OPERATORY BITOWE. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF05

ĆWICZENIE. TEMAT: OBSŁUGA PRZETWORNIKA A/C W ukontrolerze 80C535 KEILuVISON

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Konstrukcje i Technologie w Aparaturze Elektronicznej.

escobar funkcje urządzenia.

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

Podstawy techniki mikroprocesorowej

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie

Instrukcja instalacji systemu. CardioScan 10, 11 i 12

Przełącznik KVM USB. Przełącznik KVM USB z obsługą sygnału audio i 2 portami. Przełącznik KVM USB z obsługą sygnału audio i 4 portami

ĆWICZENIE 5 WPŁYW KONWEKCJI NA ROZKŁAD TEMPERATURY W POMIESZCZENIU

Instrukcja obsługi Rejestrator Parametrów

Konfiguracja połączenia sieciowego w menu dekoderów.

Instrukcja obsługi programatora AVR Prog USB v2

Terminal TR01. Terminal jest przeznaczony do montażu naściennego w czystych i suchych pomieszczeniach.

Systemy Wbudowane. Arduino, AVR. Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler. Mikrokontroler Platforma Arduino. Arduino IDE: Arduino C:

MANIPULATOR LED CA-10 KLED-M

TECHNIKA MIKROPROCESOROWA II

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Kontrola dostępu przy użyciu sterownika Sterbox.

Programowalne Układy Cyfrowe Laboratorium

E-TRONIX Sterownik Uniwersalny SU 1.2

Arduino jako wyłącznik z opóźnieniem

Szkolenia specjalistyczne

AAT Trading Company Sp. z o.o. ul. Puławska 359, Warszawa tel.: , fax: http.://

Zgrywus dla Windows v 1.12

Sterownik Spid Pant 8 i Ant 8. Podręcznik użytkowania

Instrukcja użytkownika istorage datashur Instrukcja użytkownika

Klawiatura komputerowa.

Systemy Wbudowane. Arduino, AVR (wersja 2018) Arduino. Arduino. Oprogramowanie. Rys historyczny. Mikrokontroler

Instrukcja obsługi i użytkowania Panel sterujący KPZ 52(E) 7

Mikrokontrolery AVR Wprowadzenie

PROGRAMOWANIE MIKROKONTROLERÓW

Instrukcja. importu dokumentów. z programu Fakt do programu Płatnik. oraz. przesyłania danych do ZUS. przy pomocy programu Płatnik

2.1 Przesył danych między procesorem a tabelą zmiennych

Kasety cyfrowo-analogowe KRC-A15, KRC-A12, KRC-A10

imei Instytut Metrologii, Elektroniki i Informatyki

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Transkrypt:

Klawiatura matrycowa Budowa matrycy klawiatury. Nieodzownym elementem każdego systemu mikroprocesorowego jest klawiatura. Umożliwia ona wpływ użytkownika na wykonywany przez niego program. Jednak teoretycznie zastosowanie w systemie klawiatury składającej się z 16-tu przycisków wymaga zastosowania takiej samej ilości linii portu wejścia-wyjścia. Oczywiście nie można sobie na taką rozrzutność pozwolić. Zastosowanie matrycy klawiaturowej pokazanej na rysunku 1 pozwala na zredukowanie ilości linii portu do ośmiu. Cała operacja wymaga jednak napisania odpowiedniego programu tzw. przeglądania klawiatury. Jak widać mamy w tej klawiaturze cztery kolumny i cztery wiersze. Wiersze są podłączone do linii D14 do D17, kolumny do linii D18-D21. Mikrokontroler będzie wysyłał na kolejne kolumny tzw. krążące zero i czytał za każdym razem stan linii wierszy. Jeśli w danej kolumnie któryś z klawiszy jest wciśnięty to na danej temu klawiszowi linii wiersza pojawi się stan logiczny 0. Następnie zero przesuwane jest na bit sterujący następną kolumną i znowu następuje odczyt stanu linii wierszy. Osobny problem stanowi eliminacja drgań zestyków, realizuje się ją programowo przez dwukrotne sprawdzanie czy po upływie około kilkunastu ms ten sam klawisz jest nadal wciśnięty, dopiero teraz program może potraktować informację o klawiaturze jako wiarygodną.

Aby móc używać klawiaturę matrycową z Arduino należy, korzystając z menadżera bibliotek zainstalować, bibliotekę Keypad.h http://playground.arduino.cc/code/keypad Uwagi na temat użycia biblioteki Keypad: Funkcje biblioteki nie blokują działania pozostałej części program w przypadku naciśnięcia i przytrzymywania dowolnego klawisza dalszy ciąg kodu będzie wykonywany. Użycie funkcji np. delay(250) może sprawiać wrażenie, że program nie reaguje na wciskanie klawiszy. Funkcja getkey() zwraca kod klucza natychmiast po jego naciśnięciu lecz nie powoduje jego automatycznego powtarzania. Możliwe jest również wykrycie zdarzenia zwolnienia klawisza (RELEASED) jeśli użyjemy możliwości eventlistener z biblioteki. Zaleca się nie używać pinu cyfrowego 0 i 1 przeznaczonych do komunikacji szeregowej.

Wersja 3.0 (19.07.2012) została zmodyfikowana umożliwiając domyślnie obsługę jednoczesnego wciśnięcia kilku klawiszy przy zachowaniu pełnej kompatybilności wstecznej. Nie są wymagane zewnętrzne rezystory bądź diody ze względu na wykorzystanie wewnętrznych rejestrów podciągających procesora. Konstruktor tworzący obiekt klasy Keypad: Keypad(makeKeymap(userKeymap), row[], col[], rows, cols) i przykład jego użycia const byte rows = 4; //cztery wiersze const byte cols = 3; //trzy kolumny char keys[rows][cols] = '1','2','3', '4','5','6', '7','8','9', '#','0','*' ; byte rowpins[rows] = 5, 4, 3, 2; //oznaczenie pinów przyłączonych do wierszy klawiatury byte colpins[cols] = 8, 7, 6; // oznaczenie pinów przyłączonych do kolumn klawiatury Keypad keypad = Keypad( makekeymap(keys), rowpins, colpins, rows, cols ); Powyższy fragment kodu spowoduje utworzenie obiektu keypad, który korzysta z zadeklarowanych końcówek Arduino oraz podanej mapy znaków na klawiaturze. Przykład 1: #include <Keypad.h> const byte ROWS = 4; // ustawia układ złożony z czterech wierszy const byte COLS = 4; // ustawia układ złożony z czterech kolumn char keys[rows][cols] = '1','2','3','A', '4','5','6','B', '7','8','9','C', '*','0','#','D' ; byte rowpins[rows] = 14, 15, 16, 17; byte colpins[cols] = 18, 19, 20, 21; Keypad keypad = Keypad( makekeymap(keys), rowpins, colpins, ROWS, COLS ); #define ledpin 13

void setup() Serial.begin(9600); pinmode(ledpin,output); digitalwrite(ledpin, HIGH); void loop() char key = keypad.getkey(); if (key!= NO_KEY) switch (key) case '*': digitalwrite(ledpin, LOW); break; case '#': digitalwrite(ledpin, HIGH); break; default: Serial.println(key); delay(100); // przeglądanie klawiatury i odczytanie znaku Przykład 2: #include <LiquidCrystal.h> #include <Keypad.h> const byte ROWS = 4; // ustawia układ złożony z czterech wierszy const byte COLS = 4; // ustawia układ złożony z czterech kolumn char keys[rows][cols] = '1','2','3','A', '4','5','6','B', '7','8','9','C', '*','0','#','D' ; byte rowpins[rows] = 14, 15, 16, 17; byte colpins[cols] = 18, 19, 20, 21; Keypad keypad = Keypad( makekeymap(keys), rowpins, colpins, ROWS, COLS ); LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //RS,EN, D0, D1, D2, D3

void setup() lcd.begin(16, 2); lcd.setcursor(0,0); void loop() char key; if (key = keypad.getkey()) lcd.write(key); delay(100); Zadania: 1. Napisać program sterowania zamkiem cyfrowym: - tajny kod czterocyfrowy powinien być podany przez port szeregowy w sekcji setup() - świecenie czerwonej diody LED sygnalizuje zamknięcie sejfu, - otwarcie sejfu (zaświecenie diody zielonej) następuje po podaniu z klawiatury właściwego kodu zakończonego znakiem #, - zamknięcie sejfu i zapalenie czerwonej diody następuje po podaniu znaku * 2. Napisać program symulujący działanie kalkulatora czterodziałaniowego umożliwiający wprowadzenie dwóch liczb całkowitych i wybór rodzaju operacji na nich.