Как подключить клавиатуру к ардуино

Урок 13. Подключение клавиатуры 4*4 и пьезоизлучателя к Arduino

Теперь научимся подключать устройство ввода к Ардуине. В этом примере разберемся, как подключить мембранную клавиатуру 4*4

Как подключить клавиатуру к ардуино

Данный пример будет выполнять две задачи:

В данном уроке нам понадобится:

Для реализации проекта нам необходимо установить библиотеки:

Сборка:

1) Клавиатуру удобнее всего подключить к Ардуине проводками Папа-Папа.

Контакты на клавиатуре отсчитываются слева на право.

Как подключить клавиатуру к ардуино

Клавиатура 4*4Arduino (uno)
Контакт 1pin 11
Контакт 2pin 10
Контакт 3pin 9
Контакт 4pin 8
Контакт 5pin 7
Контакт 6pin 6
Контакт 7pin 5
Контакт 8pin 4

Контакты к которым подключаем клавиатуру, могут быть перенастроены на любые другие цифровые контакты. Настраиваются здесь:

2) Звуковой сигнал будет издаваться с помощью зуммера, его подключаем следующим образом:

ЗуммерArduino
GNDGND
IOpin 3
VCC5V или 3V

Контакт Pin3 так же может быть изменен на любой удобный вам цифровой выход. Настраивается здесь:

Скетч:

Теперь, если все подключено и библиотеки установлены, можно приступить к загрузке скетча.

Видео:


Источник

Ардуино: подключение матричной клавиатуры

В мире электроники клавиатурой называют устройство, состоящее из отдельных кнопок, которое позволяет вводить информацию в компьютер или в иной электронный прибор.

Клавиатуры имеют массу вариантов исполнения. На старых персональных компьютерах использовались клавиатуры с механическими клавишами, которые имели большой ход и были почти также удобны как клавиши на старых печатных машинках. Последние 15-20 лет широко применяются мембранные клавиатуры, которые проще и дешевле в изготовлении. Именно такую клавиатуру мы будем подключать к Ардуино.

Популярная в Ардуино проектах матричная мембранная клавиатура имеет 12 или 16 кнопок. С нижней части клавиатуры выходит шлейф, заканчивающийся dupont розеткой.

Как подключить клавиатуру к ардуино

Устройство матричной клавиатуры

Матричная клавиатура состоит из кнопок, образующих матрицу mxn, т.е. таблицу, где m — количество строк, а n — количество столбцов. Для урока мы воспользуемся клавиатурой 4х3. Если мы рассмотрим её шлейф, то увидим, что он состоит из 7 дорожек. Дорожки с номерами 1-4 (обозначим их Row1-Row4) — это строки матрицы с первой по четвёртую, а дорожки с номерами 5-7 (Col1-Col3) — столбцы с первого по третий.

Как подключить клавиатуру к ардуино

Каждая кнопка — это область пересечения токопроводящих дорожек. При нажатии на участок, обозначающий кнопку, происходит соединению дорожек и замыкание одного из выводов строк 1-4 с одним из выводов столбцов 1-3.

Подключение матричной клавиатуры к Ардуино

Для отображения вводимой с клавиатуры информации мы воспользуемся жк дисплеем c I2C интерфейсом. Благодаря этому интерфейсу, схема не будет перегружена проводами. Подробно о дисплеях для Ардуино рассказывается в одном из предыдущих уроков — Ардуино: вывод текста на ЖК дисплей.

Подключение дисплея с шиной I2C осуществляется по следующей схеме:

ЖК дисплейGNDVCCSDASCL
Ардуино УноGND+5VA4A5

Матричная клавиатура имеет 7 выводов, которые подключаются к любым цифровым выводам. В нашем примере мы задействуем выводы 2-8. Выводы 0 и 1, как правило, не используют при подключении клавиатуры, поскольку они предназначены для UART интерфейса.

Схема подключения клавиатуры к Ардуино:

Матричная клавиатураRow1Row2Row3Row4Col1Col2Col3
Ардуино Уно8765432

Внешний вид макета:

Как подключить клавиатуру к ардуино

Программа:

Чтобы работать с клавиатурой можно воспользоваться библиотекой Keypad.

Кодовый замок

Используя макет, который мы собрали, можно сделать устройство, позволяющее вводить пароль с клавиатуры. Для примера напишем простой код, работающий с паролем из четырёх цифр.

Источник

Arduino для начинающих. Урок 10. Подключение матричной клавиатуры и интересные схемы

Как подключить клавиатуру к ардуино

Продолжаем серию уроков «Arduino для начинающих«. Сегодня подключаем матричную клавиатуру к плате Arduino, а также рассматриваем интересные схемы с ней. Сделать такую клавиатуру можно и самому из кнопок и печатной платы. В статье видео-инструкция, листинги программ, схемы подключения и необходимые компоненты.

Как подключить клавиатуру к ардуино

Большая часть текста содержит объяснение программного кода, его можно скачать здесь либо посмотреть видео под статьей.

Сделать такую клавиатуру можно и самому. Для этого понадобится печатная плата, 12 или 16 обычных кнопок и соединительные провода. Я же буду использовать готовую.

Как подключить клавиатуру к ардуино

Матричная клавиатура для Arduino

Для чего нужна матричная клавиатура?

Для примера возьмем обычную кнопку. Как вы знаете, это простейшее электромеханическое устройство. Чтобы подключить ее к плате, нужно использовать стягивающий резистор, а также задействовать по одному контакту питания и «земли». Нажатием такой кнопки можно выполнить определенное действие, например можно управлять светодиодом, различными приводами, механизмами и так далее. А что, если нам необходимо подключить несколько кнопок? Тогда придется задействовать больше контактов и большее число проводов, да и без макетной платы уже не обойтись, плюс еще резисторы придется использовать в большем количестве.

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

Схема подключения матричной клавиатуры к Arduino

Подключать ее к плате следует 8 выводами, каждый из них считывает значения с определенных строк и столбцов. Подключать их следует к выводам на панели Digital. Я подключу, например, к выводам от 2 до 9 включительно. Нулевой и первый трогать не желательно, поскольку они предназначены для UART интерфейса (например, для подключения блютуз-модуля). Рациональнее оставить их свободными.

Как подключить клавиатуру к ардуино

Схема подключения матричной клавиатуры к Arduino

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

После того, как вы установили в библиотеку, можно зайти в Ардуино IDE (программа с сайта Arduino) и посмотреть примеры скетчей.

Возьмем самый простой скетч для ознакомления. Он позволяет считывать значение с клавиатуры при нажатии определенной клавиши и выводить их в порт. В данном случае это монитор порта на компьютере.

#include // подключаем нашу библиотеку
const byte ROWS = 4; //число строк у нашей клавиатуры
const byte COLS = 4; //число столбцов у нашей клавиатуры
char hexaKeys[ROWS][COLS] = <
<'1','4','7','*'>, // здесь мы располагаем названия наших клавиш, как на клавиатуре,для удобства пользования
<'2','5','8','0'>,
<'3','6','9','#'>,
<'A','B','C','D'>
>;
byte rowPins[ROWS] = <5, 4, 3, 2>; //к каким выводам подключаем управление строками
byte colPins[COLS] = <9, 8, 7, 6>; //к каким выводам подключаем управление столбцами
//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup() <
Serial.begin(9600);
>
void loop() <
char customKey = customKeypad.getKey();
if (customKey) <
Serial.println(customKey);
>
>

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

Если это сделать неправильно, то, например, при нажатии цифры 4, в порт выйдет цифра 6 или любой другой символ. Это можно определить опытным путем и расположить символы, как они расположены на клавиатуре.

Далее нужно указать к каким выводам на плате подключаем управление строками и столбцами.

В функции void setup указываем скорость последовательного соединения с монитором порта 9600 бод. Функция нужна только для подачи питания на модули. В функции Void Loop прописываем условие. Переменная Char используется для хранения только одного символа, например, 1, А или 5, что подходит к ситуации. Если нажатие зафиксировано, то происходит вывод символа в монитор порта с помощью функции Serial Print. В скобках нужно указывать, какую переменную выводим в порт. Если все сделано верно, в мониторе порта получим символ, на который нажимали. Не забудьте в мониторе порта внизу справа указать скорость передачи данных такую же, как в скетче.

Схема с дисплеем и матричной клавиатурой

Давайте выведем данные на дисплей.

Как подключить клавиатуру к ардуино

Схема подключения сопряженного с модулем I2C дисплея к Arduino

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

В функции Voil Loop нужно в самом условии прописать строчку lcd.print для вывода данных на дисплей. И еще нужно предварительно установить положение курсора. В скобках идут 2 цифры: первая — это номер символа, а вторая — номер строки. Нужно помнить, что у этого дисплея отсчет строк и столбцов начинается не с единицы, а с нуля. То есть здесь имеются строчки под номерами 0 и 1, а не 1 и 2, как может показаться сначала. Затем загрузим код в плату и посмотрим, что будет.

Так как дисплей работает по интерфейсу I2C, подключаем к аналоговым выводам. Выходы SDA и SCL соответственно подключаем к А4 и А5, а остальные два — это уже питание и «земля».

Как видим, нажимая на любой символ, видим его отображение на дисплее.

Как подключить клавиатуру к ардуино

Подключение дисплея и матричной клавиатуры к Arduino

Можно заметить, если вводить символы дальше, то каждый предыдущий будет стираться, а на его месте появляться новый. Поэтому, если вы хотите вводить символы подряд, то просто удалите строчку, где указано положение курсора.

Чтобы стереть строчку, вспомним калькулятор. Когда нужно было удалить значение, мы нажимали на кнопку сброса. Нажмем на такую кнопку в плате и можем заново набирать символы.

Подключение клавиатуры к Arduino и управляющее действие

Последняя схема в уроке — выполнение заданного действия при нажатии определенной клавиши. Это основная цель подключения матричной клавиатуры к Arduino. По этой теме будут две отдельные статьи и видео, описывающие более сложные и интересные схемы. А сейчас знакомимся с этим модулем и запоминаем построение кода с его использованием.

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

Как подключить клавиатуру к ардуино

Я буду использовать макетную плату и резистор (желательно использовать от 150 до 220 Ом). Двумя перемычками замкну схему, подключив их к пинам питания и земли на плате Ардуино.

Схема будет работать так: при нажатии на 1 включается светодиод, при нажатии на 2 — выключается.

Светодиод в примере подключен к пину 8 на плате Ардуино.

Давайте разберем скетч.

Возьмем первый скетч урока и просто его дополним. В начале с помощью полезной функции Define присвоим название подключенному к пину 8 светодиоду ledpin. В функции Void setup указываем сигнал со светодиода как выход.

Как подключить клавиатуру к ардуино

Подключение клавиатуры к Arduino и управление светодиодом

Соответственно при нажатии на 1 будет выполняться максимальная подача напряжения на светодиод и он будет гореть. При нажатии на 2 он гореть не будет. Это указывается в функции Digitat write, где в скобках задается название переменной и «указание» ей. Можно таким образом написать определенные команды для каждой кнопки и управлять большим количеством светодиодов или создать команду для включения всех светодиодов сразу.

Смотрите также:

Посты по урокам:

Все посты сайта «Занимательная робототехника» по тегу Arduino.

Не знаете, где купить Arduino? Все используемые в уроке комплектующие входят в большинство готовых комплектов Arduino, их также можно приобрести по отдельности. Подробная инструкция по выбору здесь. Низкие цены, спецпредложения и бесплатная доставка на сайтах AliExpress и DealExtreme. Если нет времени ждать посылку из Китая — рекомендуем интернет-магазин Амперка. Низкие цены и быструю доставку предлагает интернет-магазин ROBstore. Смотри также список магазинов.

Источник

Как подключить клавиатуру к ардуино

КАК РАБОТАЮТ КЛАВИАТУРЫ

Кнопки на клавиатуре расположены в строках и столбцах. Клавиатура 3X4 имеет 4 строки и 3 столбца, а клавиатура 4X4 имеет 4 строки и 4 столбца:

Как подключить клавиатуру к ардуино

Как подключить клавиатуру к ардуино

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

Схема для клавиатуры 4X4 показывает, как соединяются строки и столбцы:

Как подключить клавиатуру к ардуино

Arduino определяет, какая кнопка нажата, определяя вывод строки и столбца, который подключен к кнопке.

Это происходит в четыре этапа:

Как подключить клавиатуру к ардуино

2. Когда кнопка нажата, вывод столбца становится LOW (0) уровнем, поскольку HIGH (1) ток из столбца течет на вывод LOW (0) строки:

Как подключить клавиатуру к ардуино

3. Теперь Arduino знает, в каком столбце находится кнопка и ему остается найти строку, в которой находится кнопка. Он делает это, переключая каждый из выводов строки в HIGH уровень и одновременно читая все контакты столбца, чтобы определить, какой вывод столбца возвращает HIGH:

Как подключить клавиатуру к ардуино

4. Когда вывод столбца снова становится HIGH, Arduino определяет вывод строки, связанный с кнопкой:

Как подключить клавиатуру к ардуино

Из диаграммы выше видно, что комбинация строки 2 и столбца 2 может означать только то, что нажата кнопка с цифрой 5.

ПОДКЛЮЧАЕМ КЛАВИАТУРУ К ARDUINO

Расположение выводов для большинства мембранных клавиатур будет выглядеть следующим образом:

Как подключить клавиатуру к ардуино

Следуйте схемам ниже, чтобы подключить клавиатуру к Arduino Uno, в зависимости от того, какая у вас клавиатура 3X4 или 4X4:

Как подключить клавиатуру к ардуино

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

Чтобы все это добро у нас заработало нам понадобится установить библиотеку Keypad от Mark Stanley и Alexander Brevig. Эта библиотека отвечает за настройку выводов и опрос различных столбцов и строк. Чтобы установить библиотеку клавиатуры, выберите «Управление библиотеками» и выполните поиск « keypad ». Нажмите на библиотеку, затем нажмите установить.

После установки библиотеки клавиатур вы можете загрузить этот код в Arduino, если вы используете клавиатуру 4X4:

const byte ROWS = 4;
const byte COLS = 4;

byte rowPins[ROWS] = <9, 8, 7, 6>;
byte colPins[COLS] = <5, 4, 3, 2>;

Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

void setup() <
Serial.begin(9600);
>

void loop() <
char customKey = customKeypad.getKey();

if (customKey) <
Serial.println(customKey);
>
>

Или этот код е сли вы используете клавиатуру 3X4:

const byte ROWS = 4;
const byte COLS = 3;

byte rowPins[ROWS] = <9, 8, 7, 6>;
byte colPins[COLS] = <5, 4, 3>;

Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

void setup() <
Serial.begin(9600);
>

void loop() <
char customKey = customKeypad.getKey();

if (customKey) <
Serial.println(customKey);
>
>

Строки 3 и 4 в приведенном выше коде устанавливают количество строк и столбцов на клавиатуре.

Строки 6-11 определяют, какие символы печатаются при нажатии определенной кнопки на клавиатуре. Символы расположены так же, как они отображаются на клавиатуре. Если ваша клавиатура имеет другую раскладку, вы можете определить, какие символы будут печататься при нажатии кнопки. Например, скажем, у вашей клавиатуры есть столбец букв слева, а не справа. Вы просто изменили бы это на это:

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

Как подключить клавиатуру к ардуино

ИСПОЛЬЗОВАНИЕ ЖК-ДИСПЛЕЯ С КЛАВИАТУРОЙ

Теперь посмотрим, как выводить нажатия клавиш на ЖК-дисплее. Клавиатуры 4X4 используют 8 контактов, а клавиатуры 3X4 используют 7 контактов. Это занимает много пинов, поэтому мы будем использовать ЖК-дисплей с поддержкой I2C. В этом случае для подключения к Arduino потребуется всего 4 провода.

Чтобы использовать ЖК-дисплей с поддержкой I2C на Arduino, необходимо установить библиотеку LiquidCrystal I2C от Marco Schwartz. Эта библиотека хороша тем, что включает в себя большинство функций, доступных в стандартной библиотеке LiquidCrystal. Чтобы установить его, загрузите ZIP-файл ниже, затем перейдите в Sketch> Включить библиотеку> Добавить ZIP-библиотеку:

Библиотека Wire необходима для добавления поддержки связи I2C. Он поставляется в комплекте с Arduino IDE, поэтому его не нужно устанавливать. Но если по какой-либо причине он не установлен в вашей системе, перейдите в Управление библиотеками и найдите «wire», чтобы установить его.

После установки библиотек подключите контакты заземления и Vcc на ЖК-дисплее к Arduino, затем подключите выводы SDA и SCL на ЖК-дисплее в соответствии с таблицей ниже для различных плат Arduino:

Как подключить клавиатуру к ардуино

Затем подключите клавиатуру к Arduino. Это должно выглядеть примерно так (для Arduino Uno):

Как подключить клавиатуру к ардуино

Как только все подключится, загрузите этот код в Arduino:

const byte ROWS = 4;
const byte COLS = 4;

byte rowPins[ROWS] = <9, 8, 7, 6>;
byte colPins[COLS] = <5, 4, 3, 2>;

Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

LiquidCrystal_I2C lcd(0x21, 16, 2);

void setup() <
lcd.backlight();
lcd.init();
>

void loop() <
char customKey = customKeypad.getKey();
if (customKey) <
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(customKey);
>
>

Вам необходимо добавить адрес I2C вашего ЖК-дисплея в строке 20:

LiquidCrystal_I2C lcd (0x21, 16, 2);

ИСПОЛЬЗОВАНИЕ ПАРОЛЯ ДЛЯ АКТИВАЦИИ РЕЛЕ

Одним из наиболее полезных приложений клавиатуры является ее использование для ввода пароля. Вы можете установить пароль и заставить Arduino активировать реле или другой модуль, если пароль правильный. Следующий код активирует реле 5 В, если пароль введен правильно:

#define Password_Length 8

char Data[Password_Length];
char Master[Password_Length] = «123A456»;
byte data_count = 0, master_count = 0;
bool Pass_is_good;
char customKey;

const byte ROWS = 4;
const byte COLS = 4;

byte rowPins[ROWS] = <9, 8, 7, 6>;
byte colPins[COLS] = <5, 4, 3, 2>;

Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

LiquidCrystal_I2C lcd(0x21, 16, 2);

void setup() <
lcd.init();
lcd.backlight();
pinMode(signalPin, OUTPUT);
>

lcd.setCursor(0,0);
lcd.print(«Enter Password:»);

customKey = customKeypad.getKey();
if (customKey) <
Data[data_count] = customKey;
lcd.setCursor(data_count,1);
lcd.print(Data[data_count]);
data_count++;
>

if(data_count == Password_Length-1) <
lcd.clear();

if(!strcmp(Data, Master)) <
lcd.print(«Correct»);
digitalWrite(signalPin, HIGH);
delay(5000);
digitalWrite(signalPin, LOW);
>
else <
lcd.print(«Incorrect»);
delay(1000);
>

Вы можете изменить пароль в строке 10, заменив текст 123A456 своим собственным паролем:

char Master [Password_Length] = «123A456»;

Длина пароля должна быть установлена ​​в строке 5:

#define Password_Length 8

Пароль в приведенном выше примере имеет длину всего 7 символов, но длина пароля на самом деле больше, чем 7, поскольку в конце строки добавлен нулевой символ. Например, если ваш пароль длиной 5 символов, вы должны ввести 6 для длины пароля.

Выходной контакт, который активирует реле, определяется в строке 7:

Схема подключения к Arduino выглядит так:

Как подключить клавиатуру к ардуино

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *