Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
2 способа управления клавиатурой с 16 кнопками с минимумом контактов.
Шаг 1. Введение
Недавно я работал над способом управления матрицей сенсорной клавиатуры 4x4, подключенной к клону Arduino. Заданные значения были:
-использовать только 4 + 1 пин вместо 8 пин на atmega328p
-добавить LCD Display 4x20 CHAR link через I2C (2 контакта)
-для управления цифровыми и аналоговыми выходами.
Итак, есть много вещей, которые нужно контролировать с помощью большого количества операций ввода-вывода.
Шаг 2: что использовать:
Я купил ЖК-дисплей 4x20 символов и адаптер модуля I2C для подключения дисплея к контактам SDA (A4) и SCL (A5) на моем клоне Arduino.
Я использую знаменитый, а теперь уже устаревший MM74C922N: преобразователь с 8 на 4 способа подходит для матричной клавиатуры 4x4.
Я создал клон arduino на основе atmega328p и запрограммировал его через разъем HE10 (шина SPI) и кабель USBasp.
Шаг 3: Схема и плата:
Доска состоит из:
-ЖК-клавиатура используется только с Arduino IDE, невозможна с LDmicro (лестничное программирование)
-плата MM74C922N: 16 кнопок, закодированных на 16 двоичных значениях на 4 битах DCBA. При нажатии кнопки: загорается синий светодиод, и на DCBA появляется значение (A - младший бит). Когда кнопка отпускается: синий светодиод гаснет, и значение на DCBA сбрасывается до нуля.
- плата-клон Arduino atmega238p.
Шаг 4: Использование LDmicro с лестничным программированием:
Код для ввода состоит из 4 значений из 16 значений, нажатых клавишами, то есть комбинаций 16x16x16x16.
После того, как вы нарисуете SFC, вам нужно будет перевести его в ЛЕСТНИЦУ с помощью метода, приведенного в одном из моих
инструкции:
www.instructables.com/id/Arduino-tomation-…
После ввода скомпилируйте его как xxxx.hex, а затем загрузите с помощью загрузчика KHAZAMA.
ЖК-дисплей не может быть запрограммирован на LDmicro.
Я передаю LDmicro zip со скетчем SERRURE.id в нем и загрузчиком KHAZAMA.
Шаг 5: Использование Arduino IDE 1.8.x с Mightycore и SMlib:
Я перевожу SFC в конечный автомат. Затем я использовал Arduino IDE с библиотекой Mightycore и SM внутри.
На ЖК-дисплее отображается сообщение типа: ERROR, WAITING, UNLOCK, состояние достигнуто, значение нажатой клавиши.
Я даю вам скетч и SM lib. Для Mightycore посмотрите на это:
www.instructables.com/id/Arduino-18x-Clone…
Шаг 6: В заключение:
Это два способа управления клавиатурой 16, и мне потребовалось несколько часов, чтобы найти подходящую последовательность, но теперь она работает нормально. Вы должны соблюдать эти шаги:
-1 обнаруживает нажатие клавиши на переднем фронте вывода DA
-2 прочтите значение, сгенерированное на DCBA, и сравните с правильным
Если уж точно не выйдет.
Спасибо всем интересным обучающим материалам в сети.