Клавиатуры играют важную роль в мире компьютеров, они являясь устройством ввода дают необходимую информацию от человека компьютеру. В современном мире уже придумано много человеко - машинных интерфейсов(HMI), от простых одиночных кнопок, до голосовых модулей распознавания речи и даже распознавания жестов. Казалось бы, уже давно такие интерфейсы как клавиатура должны уйти на заслуженный покой, уступив место своим более продвинутым собратьям электронного мира. Но рано отступать, клавиатуры еще долго будут неотъемлемой частью нашей виртуальной жизни.

        Клавиатуры разные нужны, клавиатуры разные бывают, клавиатуры разные важны!!! Мембранные, сенсорные, кнопочные и прочие классы этих устройств занимают самые различные области приборостроения. В этой статье я решил сделать небольшой обзор клавиатурного модуля 3х4 от известной китайской фирмы Robotdyn.

 

 

        Данный модуль имеет разборные кнопки, чем я воспользовался. Я распечатал обозначения для каждой из кнопок, вырезал и подложил под прозрачный колпачок. С такой модернизацией, клавиатурный модуль имеет более осмысленный вид:

 

       

        Данный модуль является своего рода "лестницей уровней напряжения", или попросту аналоговой клавиатурой. Как уже понятно по фото, модуль имеет 12 кнопок, на обратной стороне есть обозначения уровней каждой кнопки. Подключается он к плате Arduino используя всего лишь один аналоговый порт.

 

 

        Далее, я приведу небольшой скетч, при помощи которого можно проверить работоспособность данного модуля. Скетч очень простой, установка связи с монитором порта, считывание уровней напряжения в формате uint8_t и передача значения через последовательный интерфейс.

 

void setup()
{
    Serial.begin(9600);
}

void loop()
{
    Serial.println(analogRead(A0));
}

 

        Как видно из теста, нажимая на кнопки модуля, получаем значения прописанные на обратной стороне платы. И если сравнивать с реальной таблицей, заявленной на обратной стороне модуля, здесь не обошлось без небольшого расхождения значений уровней. В приведённом скриншоте можно сравнить уровни в мониторе порта и заявленные в таблице:

 

 

        Анализируя полученные цифры в мониторе порта можем видеть, что в точности соответствуют заявленным уровням 1-я и 10-я кнопка, 4-я и 11-я имеют заниженный уровень, остальные имеют незначительно завышенные уровни. По сути, при использовании на различных платах(UNO, Nano, Mega и др.) полученные уровни будут еще больше разниться с заявленными в таблице на оборотной стороне платы, ведь питание на платах(как показывает практика) тоже разнится от экземпляра к экземпляру. На этом я думаю стоит закончить первую часть(обзорную), этот клавиатурный модуль пока что никак нельзя использовать в каких либо устройствах или проектах. В следующей статье, будет проведена предварительная программная подготовка клавиатурного модуля, а именно, написан скетч в котором будет проведена обработка события нажатия любой из кнопок, обработка дребезга механического контакта кнопки и получение кода(признака) нажатой кнопки.

Небольшой видеообзор работы тестового скетча: