Подключаем к Arduino клавиатуру PS/2

Добавлено 12 октября 2018 в 21:43

В данной статье рассматривается, как добавить к Arduino 106 кнопок ввода, а именно подключить к Arduino клавиатуру PS/2.

Подключаем к Arduino клавиатуру PS/2
Подключаем к Arduino клавиатуру PS/2

Что нам понадобится:

  • Arduino (Uno);
  • клавиатура PS/2;
  • разъем PS/2 (мама).

Шаг 1: подключение клавиатуры

Ниже приведена распиновка разъема. От клавиатуры приходит 4 провода, их подключение к Arduino показано ниже:

  • 5В – выход Arduino 5V
  • Земля – Arduino GND
  • Тактовый сигнал – вывод 3 Arduino
  • Данные – вывод 8 Arduino
Печатная плата в клавиатуре PS/2
Печатная плата в клавиатуре PS/2
Распиновка разъема клавиатуры PS/2
Распиновка разъема клавиатуры PS/2
Подключение клавиатуры PS/2 к Arduino
Подключение клавиатуры PS/2 к Arduino

Шаг 2: код

Сначала добавьте в Arduino IDE библиотеку PS2Keyboard.

#include <PS2Keyboard.h>

const int DataPin = 8;
const int IRQpin =  3;

PS2Keyboard keyboard;

void setup() 
{
  delay(1000);
  keyboard.begin(DataPin, IRQpin);
  Serial.begin(9600);
  Serial.println("Keyboard Test:");
}

void loop() 
{
  if (keyboard.available()) 
  {
    
    // прочитать следующую клавишу
    char c = keyboard.read();
    
    // проверить на некоторые специальные клавиши
    if (c == PS2_ENTER) 
    {
      Serial.println();
    } 
    else if (c == PS2_TAB) 
    {
      Serial.print("[Tab]");
    } 
    else if (c == PS2_ESC) 
    {
      Serial.print("[ESC]");
    } 
    else if (c == PS2_PAGEDOWN) 
    {
      Serial.print("[PgDn]");
    } 
    else if (c == PS2_PAGEUP) 
    {
      Serial.print("[PgUp]");
    } 
    else if (c == PS2_LEFTARROW) 
    {
      Serial.print("[Left]");
    } 
    else if (c == PS2_RIGHTARROW) 
    {
      Serial.print("[Right]");
    } 
    else if (c == PS2_UPARROW) 
    {
      Serial.print("[Up]");
    } 
    else if (c == PS2_DOWNARROW) 
    {
      Serial.print("[Down]");
    } 
    else if (c == PS2_DELETE) 
    {
      Serial.print("[Del]");
    } 
    else 
    {
      // иначе просто печатать все обычные символы
      Serial.print(c);
    }
  }
}

Шаг 3: тестирование

Итак, мы закончили написание кода. Загрузите его в Arduino и оставьте Arduino, подключенной к компьютеру. Затем откройте монитор последовательного порта в Arduino IDE и нажмите несколько клавиш на клавиатуре, подключенной к Arduino, и вы увидите, что она напечатает то, что вы набираете на этой клавиатуре. Вот и всё!

Теги

ArduinoPS/2Клавиатура

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.


  • 2019-09-24antzol

    Добрый день!
    Проверить, на равенство коду 144.
    Коды клавиш можно проверить тут - https://keycode.info/ , или можно самому вывести полученное от клавиатуры значение в монитор последовательного порта.
    Если всё работает, то в файле PS2Keyboard.h можно определить еще одну константу, скажем

    #define PS2_NUMLOCK    144
  • 2019-09-24Алексей

    Добрый день!
    А как отловить клавишу NumLock ?