Поговорим о клавиатурах. Часть 2. Подключение мембранной кнопочной клавиатуры 1х4 к Arduino Nano.

11.09.2016 23:23

jazon



Тестируем мембранную кнопочную клавиатуру размерностью 1х4.


        К нам на обзор попала вот такая клавитура, было решено проверить её работу, посредством небольшого скетча. Обычно такие клавиатуры подключаются при помощи подтягивающих резисторов номиналом в 10к. Так как резисторов не нашлось, подключение было выполнено напрямую к плате Arduino Nano. Клавиатура имеет 5-ти контактный разъём типа "мама", подключим её прямо к ножкам платы Arduino Nano так чтобы крайний левый контакт разъёма клавиатуры совпал с ножкой 4-го контакта Nano,  а крайний правый совпал с 8-й ножкой.


Кстати, распиновка разъёма клавиатуры такова, по порядку(слева направо):

  1. Общий
  2. Кнопка 2
  3. Кнопка 1
  4. Кнопка 4
  5. Кнопка 3


В скетче необходимо точно скофигурировать пины - иначе ничего не сработает!!!

Ну и в довершение этой короткой статьи, приведу сам скетч для тестирования клавиатуры 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. Описание различных датчиков и модулей. Советы и наставления начинающим. Пишите и размещайте свои статьи в соответсвующей ветке форума.