Darbe.ru

Быт техника Дарби
36 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Матричная клавиатура ардуино 4х4

Матричная клавиатура ардуино 4х4

Клавиатура (keypad) — отличная возможность дать пользователю взаимодействовать с вашим проектом. Вы можете использовать их для навигации по меню, ввода паролей, управления играми и роботами.

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

В этой статье будем использовать матричную мембранную клавиатуру 4X4 (также есть код и схемы соединений для матричных клавиатур 3X4) . Мембранные клавиатуры тонкие и имеют клейкую подложку, так что вы можете прикрепить их к большинству плоских поверхностей. Вы также можете приобрести телефонные клавиатуры, которые имеют более толстые кнопки, если вам нравится этот стиль больше. Даже клавиатуры от старых разобранных телефонов будут работать с Arduino.

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

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

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

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

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

Arduino-Keypad-Tutorial-4X4-Keypad-Schem

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

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

1. Во-первых, когда ни одна из кнопок не нажата, все выводы столбца удерживаются на HIGH (1) уровне, а все выводы строки — в LOW (0):

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:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>

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);

I2C-адрес моего ЖК-дисплея — 0x21, но ваш, может быть другим. Адрес I2C вашего ЖК-дисплея должен быть указан в техническом описании , но если нет, вы можете найти его, запустив этот скетч I2C_Scanner .

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

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

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>

#define Password_Length 8

int signalPin = 12;

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);
>

void clearData() <
while(data_count !=0) <
Data[data_count—] = 0;
>
return;
>

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

char Master [Password_Length] = «123A456»;

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

#define Password_Length 8

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

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

int signalPin = 12;

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

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

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

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

В общем как это все устроено.

Я надеюсь все знают как работает делитель напряжения. Есть 2 резистора подключенных последовательно в цепь питания и от средней точки этих резисторов снимается напряжение, величина которого зависит от падения напряжения на этих самых резисторах. А если совсем просто, то если на входе й нас 5 вольт и 2 резистора по 1кОм, то со средней точки мы будем снимать 2,5 вольт.

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

Есть еще и другой вариант подключения. В этом случае кнопкой подтягивается несколько последовательно соединенных резисторов. Если не одна кнопка не нажата, то 5 вольт через резистор подаются на аналоговый вход, а при нажатии на кнопку подкидываем резистор и втягиваем часть напряжения на массу.

Это даже можно продемонстрировать. Ниже пример, который отправляет значение в serial которое считывает функцией analogread на выходе А0 к которому подключена клавиатура. Когда ничего не нажато в мониторе порта будет 1023, если надавить на кнопку это значение будет отличаться и зависеть от нажатой кнопки.

Осталось только различать эти значения в коде без условия if здесь не обойтись, а лучше вообще это вынести в отдельную функцию. К примеру эта функция будет key() и возвращает она байт

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

Клавиатуры бывают разных форм и размеров. Самые распространенные – это с расположением кнопок 3х4 или 4х4 . В продаже есть также клавиатуры с кнопками не только для цифр, но также для букв и даже слов.

Описание

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

Читайте так же:
Макбук с английской клавиатурой

Где купить?

Купить клавиатуру можно на eBay (к примеру, ), и она обойдется вам всего в пару долларов.

Как это работает?

Мембранная клавиатура – это матрица, состоящая из кнопок, расположенных рядами и столбцами. Таким образом, каждая кнопка находится в каком-нибудь столбце или ряду (см. картинку ниже). 12 -кнопочная клавиатура состоит из 4 рядов и 3 столбцов. Цифра «1» стоит на перекрестии 1 ряда и 1 столбца (Р1С1 ), «2» – это Р1С2 , «3»Р1С3 , «звездочка»Р4С1 , «9»Р3С3 и т.д.

Необходимые компоненты

Для нашего проекта понадобятся следующие компоненты:

  • Одна плата Arduino (см. на eBay)
  • Одна мембранная клавиатура (см. на eBay)
  • Провода-перемычки

Схема

Подсоедините эти компоненты друг к другу как показано на картинке ниже. Если ваша клавиатура выглядит по-другому, то подключите ее согласно информации из ее даташита (его можно найти в сети или спросить у продавца).

Установка библиотеки

Для нашего проекта понадобится библиотека «Keypad». Чтобы установить ее, выполните следующее:

  • Загрузите отсюда ZIP -архив с библиотекой.
  • Распакуйте ZIP -архив.
  • Установите библиотеку в IDE Arduino, переместив распакованную папку в папку «libraries» IDE Arduino .
  • Перезапустите IDE Arduino .

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

Примечание: Если у вашей клавиатуры другое количество клавиш, вам нужно будет поменять значения во 3-ей и 4-ой строчках кода. Кроме того, после этого нужно будет поменять значения в массиве, который расположен на строчках с 5-ой по 10-ую .

const byte ROWS = 4 ; // количество рядов

const byte COLS = 3 ; // количество столбцов

char keys[ ROWS] [ COLS] = <

byte rowPins[ ROWS] = < 8 , 7 , 6 , 5 >; // контакты для рядов:

byte colPins[ COLS] = < 4 , 3 , 2 >; // контакты для столбцов:

Эта статья посвящена матричной клавиатуре. Я расскажу об устройстве клавиатуры, её возможностях. И, конечно, статья содержит программный код с подробными пояснениями.

Собственно матричная клавиатурка.

Все предельно просто. Если ни одна из кнопок не нажата, то между вертикальными линиями (1, 2, 3, 4) и горизонтальными линиями (5, 6, 7, 8) нет контакта. Нажатие кнопочки приводит к возникновению контакта между одной из вертикальных линий (1, 2, 3, 4) и одной из горизонтальных линий (5, 6, 7, 8). Например, нажатие кнопки S1 приводит к возникновению контакта между линиями 4 и 5.

Впрочем, никто не запрещает подключать эту клавиатурку к контроллеру через резисторы ом в 500. Это поспособствует защите контроллера от ошибок при подключении, а также программных ошибок.

Как работать с этой клавиатурой? Самая первая мысль, что приходит в голову, заключается в том, чтобы сконфигурировать выводы ардуино к которым подключены линии 1, 2, 3 и 4 как вход с включенным подтягивающим резистором. А выводы ардуино к которым подключены линии 5, 6, 7 и 8 сконфигурировать как выход и установить на них логический ноль. Пока ни одна из кнопок не нажата, на выводах ардуино связанных с линиями 1, 2, 3 и 4 будет логическая единица. Если кнопку нажать, то на одном из выводов ардуино связанном с линией 1, 2, 3 или 4 установится логический ноль. Но с любой из этих линий связано сразу четыре кнопки. Чтобы узнать какая конкретно кнопка нажата нужно изменить настройки. Выводы ардуино к которым подключены линии 1, 2, 3 и 4 следует сконфигурировать как выход и установить на них логический ноль. А выводы ардуино к которым подключены линии 5, 6, 7 и 8 необходимо сконфигурировать как вход с включенным подтягивающим резистором. Теперь логический ноль будет на одном из выводов ардуино связанном с линией 5, 6, 7 или 8. С каждой из этих линий также связано сразу четыре кнопки. Однако у каждой из линий 5, 6, 7 и 8 есть лишь одна общая кнопка с каждой из линий 1, 2, 3 и 4. Кнопка, которая нажата, находится на пересечении линий на которых читается логический ноль при первом и при втором варианте настроек.

Для наглядности опишу как это все будет работать при нажатии кнопки S2. Выводы ардуино к которым подключены линии 1, 2, 3 и 4 сконфигурированы как вход с включенным подтягивающим резистором. Выводы ардуино к которым подключены линии 5, 6, 7 и 8 сконфигурированы как выход и на них установлен логический ноль. На выводах ардуино связанных с линиями 1, 2 и 4 будет читаться логическая единица. На выводе ардуино связанном с линией 3 будет читаться логический ноль. Такое возможно при нажатии одной из кнопок S2, S6, S10 и S14. Теперь настройки меняются. Выводы ардуино к которым подключены линии 1, 2, 3 и 4 сконфигурированы как выход и на них установлен логический ноль. Выводы ардуино к которым подключены линии 5, 6, 7 и 8 сконфигурированы как вход с включенным подтягивающим резистором. На выводах ардуино связанных с линиями 6, 7 и 8 будет читаться логическая единица. На выводе ардуино связанном с линией 5 будет читаться логический ноль. Такое возможно при нажатии одной из кнопок S1, S2, S3 или S4. У линий 3 и 5 есть лишь одна общая кнопка. Это кнопка S2. Нажатая кнопка находится на пересечении линий 3 и 5.

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

Читайте так же:
Можно ли подключить домашний кинотеатр к ноутбуку

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

Для Arduino чаще всего используются такие клавиатуры:

/>

Самыми распространенными являются 16 кнопочные клавиатуры 4×4. Принцип их работы достаточно прост, Arduino поочередно подает логическую единицу на каждый 4 столбцов, в этот момент 4 входа Arduino считывают значения, и только на один вход подается высокий уровень. Это довольно просто, если знать возможности управления портами вывода в Arduino , а так же портами входа/ввода.

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

Подключаем клавиатуру в любые порты ввода/вывода.

На красные порты будем подавать сигналы, а с синих будем их принимать. Зачастую на синие провода подводят подтягивающие резисторы, но мы их подключим внутри микроконтроллера Arduino .

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

Клавиатуры позволяют пользователям вводить данные во время выполнения программы. Данная статья показывает вам, как подключить к Arduino 12-кнопочную клавиатуру, и как использовать библиотеку Keypad.h.

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

В данной статье мы покажем, как использовать 12-кнопочную цифровую клавиатуру, похожую на ту, что вы можете увидеть на телефоне. 12-кнопочная клавиатура имеет три столбца и четыре строки. Нажатие кнопки замыкает вывод одной из строк с выводом одного из столбцов. Из этой информации Arduino может определить, какая кнопка была нажата. Например, когда нажата кнопка 1, замкнуты столбец 1 и строка 1. Arduino определит это и введет в программу 1.

На рисунке ниже показано, как внутри клавиатуры расположены строки и столбцы.

Эксперимент

В данном эксперименте мы продемонстрируем работу с библиотекой » keypad.h » для Arduino. Когда пользователь нажимает на кнопку на клавиатуре, программа отображает соответствующее значение в мониторе последовательного порта.

Необходимые комплектующие

  • перемычки (необязательно);
  • макетная плата (необязательно).

Схема соединений

Подключите клавиатуру к плате Arduino, как показано на рисунке ниже.

Заключение

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

Подключаем Матричную Клавиатуру К Ардуино — Скачать mp3 бесплатно

Для вашего поискового запроса Подключаем Матричную Клавиатуру К Ардуино мы нашли 50 песен, соответствующие вашему запросу. Теперь мы рекомендуем загрузить первый результат Подключаем матричную клавиатуру к Ардуино который загружен Home Made То что ты можешь сделать размером 12.02 MB, длительностью 9 мин и 8 сек и битрейтом 192 Kbps.

Обратите внимание:

Перед загрузкой вы можете послушать любую песню, наведите курсор и нажмите «Слушать» или «Скачать» для загрузки mp3-файла высокого качества. Первые результаты поиска — с YouTube, которые будут сначала преобразованы, после чего файлы можно загрузить, но результаты поиска из других источников могут быть сразу же загружены в MP3 без какого-либо преобразования.

Слушают сейчас

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

Грустная Музыка Для Эдитов

Стоны Чонгука И Т И

Jic Couple Dance By Jic All Stars Dance Crews

Arilena Ara Nentori Original Albania Tradusa In Romana

Super Mario Odyssey Steam Gardens Metal Cover

Thirty Seconds To Mars Closer To The Edge In Stuttgart

Ghettolied Intifada Feat Celo Abdi

Лариса С Днем Рождения

Sitora Abdurahmonva Yarak Shab Ситора Абдурахмонова

Дорама Я Тоже Цветочек Отрывок Приглашение На Обед

Топ 10 Песен Которые Ищут Все

Ансамбль Веселуха Все Песни

Нургали Нурислам Клип

Эй Гассол Оч Юзимни

Walter Berry Die Zauberflöte K 620 Act 2 Scene 23 No 20 Arie Ein

Под Окном Широким Потрясающее Исполнение Народной Песни Под Гармонь

Aksa Ероян Кайфуем

Марш Османской Империи Ceddin Deden

Яр Яр Гр Ситория

Nangbu Pamjaruba Eitbu Angouba Thamoi

Толстяк Прыгает В Воду Конец Света

Мне Бывает Больно Slowed

Shingaling Extended Mix

نور الزين اغاني فزعات بوبجي طبك سكوادات Pubg Moblle

Рузигор Рузигор Бехтарин Суруд

Friday Night Funkin Happy Ost

St Луи Луи Cover

Немецкий Язык По Плейлистам Урок 109 Уроки Немецкого Языка Немецкий Для Начинающих С Нуля

Скачивают

Jayc Funky Disco House 453 70 S 80 S 90 S Oldschool Hits Mastermix Session Friday

Мама Главный В Жизни Человек

Granny Chapter 3 The Musical The Child By Random Encounters

Tropkillaz Baby Baby

Песня Все Мои Друзья Входят Во Вкус На Английском

Pac Baby Slowed Down

Omid Ameri Dele Man 2

Шанкара Тантра Номер 28 Защита Человека От Преждевременнои Смерти Андрей Дуйко

Читайте так же:
Изучаем компьютер для начинающих

Рустам Исоев Як Лахзае Rustam Isoev Yak Lahzae Taj Lyrics Rus Translation Hd 720P

Havas Guruhi Dum Dum Deega Deega Uzbekistan 25 01 2020

Таулу Таудан Тоялмайды Амбарби Уянаев

Заставка С Днём Матери Поздравляем Футаж

Miyagi Моя Ты Панда Кавказская Версия Лезгинка

Даргинская Песня О Маме

Красивая Видеосъемка Крещения Ребенка Видеосъемка Крестин Видеооператор На Крестины

Как сделать самому резистивную клавиатуру для arduino

Как сделать самому резистивную клавиатуру для arduino

Сегодня про так называемую резистивную клавиатуру или как подключить много кнопок на один аналоговый вход. Для этого был собран вот такой модуль, на котором 5 кнопок и несколько SMD резисторов, а так же 3 штырька для питания и выхода. Как сделать самому резистивную клавиатуру для arduino

Резистивная клавиатура для arduino

Резистивная клавиатура для arduino

Резистивная клавиатура для arduino

В общем как это все устроено.

Я надеюсь все знают как работает делитель напряжения. Есть 2 резистора подключенных последовательно в цепь питания и от средней точки этих резисторов снимается напряжение, величина которого зависит от падения напряжения на этих самых резисторах. А если совсем просто, то если на входе й нас 5 вольт и 2 резистора по 1кОм, то со средней точки мы будем снимать 2,5 вольт.

Делитель напряжения

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

Схема первого варианта резистивной клавиатуры для arduino

Есть еще и другой вариант подключения. В этом случае кнопкой подтягивается несколько последовательно соединенных резисторов. Если не одна кнопка не нажата, то 5 вольт через резистор подаются на аналоговый вход, а при нажатии на кнопку подкидываем резистор и втягиваем часть напряжения на массу.

Схема второго варианта резистивной клавиатуры для arduino

Это даже можно продемонстрировать. Ниже пример, который отправляет значение в serial которое считывает функцией analogread на выходе А0 к которому подключена клавиатура. Когда ничего не нажато в мониторе порта будет 1023, если надавить на кнопку это значение будет отличаться и зависеть от нажатой кнопки.

Осталось только различать эти значения в коде без условия if здесь не обойтись, а лучше вообще это вынести в отдельную функцию. К примеру эта функция будет key() и возвращает она байт

Сделайте свои собственные кнопки быстрого доступа с Arduino

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

Никогда не использовал Arduino раньше? Ознакомьтесь с нашим руководством по началу работы

Что вам нужно

Части ярлыка Arduino
Вот что вам нужно, чтобы сделать этот проект:

  • 1 х Arduino Pro Micro.
  • Мгновенные кнопки или кнопки клавиатуры.
  • Резисторы 10 кОм.
  • Ассорти из соединительных проводов.
  • 1 х 220 Ом резисторы.
  • 1 х 5 мм (0,197 дюйма) светодиод.
  • 1 х 5 мм светодиодный держатель.

Вам понадобится очень специфическая Arduino для этого проекта. Я использую Pro Micro, так как они такие маленькие и дешевые, что вам нужен Arduino с встроенным в процессор USB-Serial (Atmega32u4). Можно построить этот проект с другими Arduinos, такими как UNO или Nano, однако для того, чтобы все заработало, требуется много напряженной работы, чтобы заново прошить биос и покопаться. Клоны других моделей Arduino обычно не работают вообще, но клон Pro Micro тоже подойдет.

Вот схема макета (исключая концевые отведения):

Arduino Сочетание клавиш

Убедитесь, что вы вырезали следы под резисторами и Arduino. Так как считывание схемы платы может быть очень трудным, вот макетная версия:

Ардуйно ярлык макет

Это плотная посадка, чтобы сжать все компоненты в такое маленькое пространство. Отрежьте углы вашего картона следующим образом:

Сочетание клавиш

Это должно аккуратно вписаться в нижней части корпуса:

Сочетание клавиш в коробке

Убедитесь, что дорожки движутся вертикально.

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

Светодиодный индикатор состояния ярлыка

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

Теперь пришло время припаять все светодиоды для клавишных колпачков. Они используются исключительно для того, чтобы клавиши светились, поэтому вы можете пропустить их, если хотите, и их не нужно подключать к цифровому выводу, только для питания. Соедините все аноды вместе и все катоды вместе. Учитесь на моей ошибке — это гораздо проще сделать, прежде чем подключать коммутаторы! Подсоедините аноды к +5 В через резистор 220 Ом, а катоды заземлите. Эти светодиоды подключены параллельно. Вот схема только для этих светодиодов:

Сочетание кнопок светодиодов цепи

Используйте маленький кусочек термоусадочной трубки, чтобы закрыть соединение между светодиодами и Arduino:

Ярлык светодиодный термоусадочный

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

Ярлык светодиодного тестирования

Теперь подключите коммутаторы. Они должны быть подключены через резистор 10 кОм, иначе Arduino умрет. Это называется мертвым коротким замыканием — +5 В идет прямо в землю, и все, что осталось от вашего Arduino, будет клубом дыма (поверьте мне, я уже убил одного, так что вам не придется). Вот схема для одного переключателя:

Читайте так же:
Можно ли подключиться к вайфаю через компьютер

Arduino Схема быстрого доступа

Эта схема одинакова для всех девяти переключателей. Подключите переключатели к цифровым контактам с 2 по 10, каждый со своим собственным резистором 10К на землю. Будьте осторожны при пайке переключателей Cherry MX, они могут быть немного хрупкими, у меня несколько контактов сломалось. Возможно, вы захотите припаять их непосредственно к еще большему количеству полос, но концевые выводы все еще подходят.

Вот и все для проводки. Возможно, вы захотите смонтировать гнездо USB типа B, однако крошечные контакты на них часто довольно трудно паять. Если вы не хотите этого делать, не беспокойтесь. Разъем Micro USB на Arduino аккуратно подходит к отверстию в корпусе. Если вас немного смущают разные типы USB, убедитесь, что вы понимаете различия

Наконец, дважды проверьте правильность схемы. Короткий может легко уничтожить Arduino, и это может быть легко сделать с помощью картона.

Теперь проверьте правильность схемы. Это хорошая идея сделать это, прежде чем продолжить, так что вы можете исправить любые проблемы, пока можете. Загрузите этот тестовый код (не забудьте выбрать правильную плату и порт из инструменты > доска а также инструменты > порт меню):

Возможно, вам придется изменить контакты, если вы изменили схему.

После загрузки откройте серийный монитор (в правом верхнем углу > Серийный монитор). Один за другим, нажмите каждую кнопку. Вы должны увидеть на серийном мониторе номер кнопки, которую вы нажали. Как и в случае со светодиодом, если ваш компьютер жалуется на слишком большой ток или светодиоды гаснут, когда вы нажимаете кнопку, немедленно отключайтесь! У вас есть короткое замыкание где-то в цепи, дважды проверьте правильность цепи и нет ли коротких замыканий между соединениями.

Если все работает, продолжайте и вставьте схему в коробку. Вы можете использовать немного клея, чтобы удержать цепь на месте (хотя провода держали мои в порядке). Закрепите крышку также.

Сделать Arduino похожей на клавиатуру очень просто. Если вы используете Nano или UNO, вы собираетесь перепрограммировать Arduino, используя Обновление прошивки устройства (DFU). Обычно используется для прошивки новой прошивки на Arduino. Вы собираетесь использовать его для прошивки Arduino новой прошивкой, которая заставит его работать как клавиатура. Это не будет рассмотрено здесь, так как это довольно сложная задача. На сайте Arduino есть хороший учебник для этого.

Arduino Pro Micro делает этот шаг очень простым. Логика, необходимая для эмуляции клавиатуры USB, уже встроена в процессор, поэтому это так же просто, как написать некоторый код!

Сначала настройте ключи:

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

Массив — это набор единомышленников. Компьютеры могут оптимизировать ваш код для быстрого доступа к ним, и они ускоряют процесс написания кода.

Теперь инициализируйте все контакты как входы:

Это говорит Arduino, что все выводы в массиве являются входными. Для этого используется цикл, а не запись pinMode (2, INPUT) девять раз, ты должен написать это только один раз. Это также вызывает Keyboard.begin. Это устанавливает функцию, встроенную в библиотеку Arduino, разработанную специально для эмуляции клавиатуры.

Создайте метод с именем readButton:

Это берет булавку и проверяет, была ли она нажата или нет. Просто возвращается ПРАВДА или же ЛОЖНЫЙ. Он также содержит некоторые отладка программного обеспечения — простая задержка, а затем повторная проверка переключателя гарантирует, что кнопка действительно была нажата.

Теперь другой цикл for вызывается внутри void loop ():

Опять же, это перебирает каждый элемент в массиве и проверяет, был ли он нажат. Это называется readButton метод, который вы создали ранее. Если кнопка была нажата, она передает этот номер пина другому методу, называемому DoAction:

Это проверяет номер булавки, используя переключатель заявление. Переключатель операторов (иногда называется выключатель) похожи на если оператора, однако они полезны для проверки того, что одна вещь (в данном случае номер булавки) равна одному из нескольких разных результатов. По сути, они гораздо быстрее для расчета.

Основные компоненты находятся внутри этого оператора switch. Keyboard.println записывает текст на компьютер, как будто вы физически набираете каждую клавишу. Keyboard.press нажимает и удерживает одну клавишу Не забудьте выпустить их, используя Keyboard.releaseAll после небольшой задержки!

В дополнение ко всем цифровым и буквенным клавишам Arduino может нажимать большинство специальных клавиш, называемых Модификаторы клавиатуры. Это особенно полезно для нажатия сочетаний клавиш. На сайте Arduino есть полезный список.

Теперь осталось только создать несколько ярлыков. Вы можете сопоставить это с существующими ярлыками, такими как Alt + F4 (закрыть программу в Windows) или Cmd + Q (выйти из программы macOS). Кроме того, убедитесь, что вы прочитали наше окончательное руководство по сочетанию клавиш

, как создать ярлыки Windows

и каждый ярлык Chromebook

чтобы начать делать свои собственные ярлыки.

Вы создали свой собственный ярлык? Дайте мне знать в комментариях, я хотел бы увидеть некоторые фотографии!

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector