Мікроконтролер – підключаємо PS
Доступною мовою нотатки за IT технологіями
Мікроконтролер – підключаємо PS/2 клавіатуру
Згодом виникає питання, яквводити дані в мікроконтролер ? Класичне рішення, яке приходить більшість нам —використовувати кнопки … протруїти на платідоріжки таконтактні майданчики длякнопок, далі їхприпаяти, вирішити яквідслідковувати натискання кнопки - попереривання або черезопитування стану кнопок по циклу. Якщо кнопокбагато, вонизайматимуть значну кількістьpin-ов мікроконтролера. Шлях тернистий.
Я пропоную використовувати, що у нас під рукою - простуPS/2 комп'ютерну клавіатуру. Із плюсів:
- річне дорога;
- продається вбудь-якому комп'ютерному магазині
- нам доступно101 клавіша
- займе клавіатура всього2-pin мікроконтролера для синхросигналу та даних.
Як мікроконтролер я використовуватимуATmega328P абоArduino UNO.
Трохи теорії
Якщо ви розкриєте обплетення кабелю для клавіатури, то ви виявите4-е дроти :
- провідхарчування (5 В)
- провідземлі
- провідсинхросигналу (CLK)
- провідданих (DATA )
Кожнаклавіша на клавіатурі маєсвій8-бітовий код, званийскан-кодом і записується в шістнадцятковому вигляді (HEX), дивись нижче.

Коли ви натискаєте наклавішу,SLK передаютьсяпрямокутні імпульси а поDATA11-бітний код:

Біти даних зчитуються комп'ютером під час переходуCLK звисокого рівня нанизький.
Перший біт завжди дорівнює0 - цестартовий біт, далі йде8-ем бітскан-кода, після чогобіт контролю парності і в кінцістоповий біт, який завжди дорівнює1.
Як підключити PS/2 клавіатуру до мікроконтролера?
Насправді портPS/2 комп'ютерної клавіатури церізновид роз'єму Mini-DIN, її6-і піновийваріант. У клавіатурі встановленоmin-din 6 pin штекер (тато), ми всі його бачили на кінці кабелю клавіатури.

Гніздоmin-din 6 pin (мама) знаходиться на материнській платі, для підключення до мікроконтролера нам доведеться його випоювати зі старої клавіатури, що не зручно.
Я раджу придбати нормальне гніздоmin-din 6 pin для кабелю, наприклад наebay.ru він стоїть
1$. Виглядає він так:

(ліворуч у зібраному вигляді, праворуч у розібраному)
Як приклад я підключатимуклавіатуру доArduino UNO (контролерATmega328P ), від нас потрібно підключити проводки по наступній розпинці.

Допомога паяльника не знадобиться, дроти обтискаються пасатижами в металеві затискачі, в результаті у мене вийшов наступний перехідник.

У вашому випадку кінці проводків ви можетеприпаяти до платимікроконтролера, я використовуватимуpin-иArduino UNO.
- GND підключаємо доGND Arduino UNO
- Vcc підключимо до5V Arduino UNO
- DATA підключимо2-pin Arduino UNO
- CLK підключимо до3-pin Arduino UNO

Далі залишиться лишепідключити клавіатуру до гнізда.
Вихідний кодпрошивки
В інтернеті для роботи зPS/2 клавіатурою більше половини випадків використовують бібліотекуps2keyboard, де через цикл перевіряють стан «змінної — буфера» обміну з клавіатурою. Я не прихильник перевіряти щось через цикл, прошивка буде зайнята лише роботою з клавіатурою. А якщо нам потрібно робити розрахунки чи працювати з якимось повільним обладнанням? Тут щось страждатиме або наші розрахунки або швидкість реакції на клавіатуру.
Я пропоную використати переривання…
PIN контролера приймаючийCLK (синхроімпульси) від клавіатури потрібноналаштувати як зовнішнє переривання при переході звисокого стану в низький і в обробнику зчитувати біт даних зDATA . Алгоритм обробника переривання повиненпобитнонакопичувати ь посиланийскан-код з клавіатури.
Код для Arduino, підключаємоDATA до2-го піну,CLK підключимо до3-го піну.