/*Обязательно нужно подключить библиотеку с функциями для плат Arduino*/
#include "Arduino.h"

/* Переопределение косвенных кодов кнопок аналоговой клавиатуры */
#define KEY0 0
#define KEY1_F1 1
#define KEY2_UP 2
#define KEY3_F2 3
#define KEY4_LEFT 4
#define KEY5_OK 5
#define KEY6_RIGHT 6
#define KEY7_F3 7
#define KEY8_DOWN 8
#define KEY9_F4 9
#define KEY_ENT 10
#define KEY_ESC 11
#define KEY_NONE 12 //Когда ни одна кнопка не нажата

/* Объявляем прототип объекта класса */
class Keypad3x4
{
        /* Пин подключения */
        int Pin;
        /* Контроль состояния кнопок, подавляем дребезг */
        int currentButtonState, previousButtonState;
        /* Маркер нажатия */
        bool KeyIsPressed = false;
        /* Подавление дребезга контактов */
        int DebounceKey(int Code, int _last);
    public:
        /* Конструктор класса */
        Keypad3x4(int _pin);
        /* Обработчик события нажатия */
        bool KeyPressed();
        /* Возвращаем код нажатой кнопки */
        int getKeyCode();
};