Опубликовано: 11.09.2016 23:23
Автор: jazon
К нам на обзор попала вот такая клавитура, было решено проверить её работу, посредством небольшого скетча. Обычно такие клавиатуры подключаются при помощи подтягивающих резисторов номиналом в 10к. Так как резисторов не нашлось, подключение было выполнено напрямую к плате Arduino Nano. Клавиатура имеет 5-ти контактный разъём типа "мама", подключим её прямо к ножкам платы Arduino Nano так чтобы крайний левый контакт разъёма клавиатуры совпал с ножкой 4-го контакта Nano, а крайний правый совпал с 8-й ножкой.
Кстати, распиновка разъёма клавиатуры такова, по порядку(слева направо):
В скетче необходимо точно скофигурировать пины - иначе ничего не сработает!!!
Ну и в довершение этой короткой статьи, приведу сам скетч для тестирования клавиатуры 1х4:
int KeyOutPin = 4; //Задействувем с 4-го по 8-й пины платы Arduino Nano
int KeyInPin1 = 6; //
int KeyInPin2 = 5; //
int KeyInPin3 = 8; //
int KeyInPin4 = 7; //
void setup()
{
pinMode(KeyOutPin, OUTPUT); //4-й пин сконфигурировать как выходной
pinMode(KeyInPin1, INPUT); //6-й пин сконфигурировать как входной, кнопка "2"
digitalWrite(KeyInPin1, HIGH); //Подтянуть к высокому уровню
pinMode(KeyInPin2, INPUT); //5-й пин сконфигурировать как входной, кнопка "1"
digitalWrite(KeyInPin2, HIGH); //Подтянуть к высокому уровню
pinMode(KeyInPin3, INPUT); //8-й пин сконфигурировать как входной, кнопка "3"
digitalWrite(KeyInPin3, HIGH); //Подтянуть к высокому уровню
pinMode(KeyInPin4, INPUT); //7-й пин сконфигурировать как входной, кнопка "4"
digitalWrite(KeyInPin4, HIGH); //Подтянуть к высокому уровню
Serial.begin(9600); //Открыть последовательный порт для передачи сообщений в монитор порта
}
void loop()
{
if(!digitalRead(KeyInPin1)) //Считывание порта - если уровень подтянулся к низкому
{ //значит нажата кнопка, и так со всеми портами
Serial.println("Key 1 pressed"); //Вывод текстового сообщения, какая по номеру кнопка нажата
}
if(!digitalRead(KeyInPin2))
{
Serial.println("Key 2 pressed");
}
if(!digitalRead(KeyInPin3))
{
Serial.println("Key 3 pressed");
}
if(!digitalRead(KeyInPin4))
{
Serial.println("Key 4 pressed");
}
}
В результате в мониторе порта, отображаются нажатия кнопок:
Если у Вас есть опыт в работе с Arduino и собственно есть время для творчества, мы приглашаем всех желающих стать авторами статей публикуемых на нашем портале. Это могут быть как уроки, так и рассказы о ваших экспериментах с Arduino. Описание различных датчиков и модулей. Советы и наставления начинающим. Пишите и размещайте свои статьи в соответсвующей ветке форума.