Z-Keyboard модуль

Опубликовано 05.10.2014 11:49:00


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

 

 

Подключение к Arduino

 Z- Keyboard модуль  Arduino
 RES  RESET
 BTN  Любой аналоговый вход
 +5V  +5V
 GND  GND

 

 

 

 

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


 

Принцип работы

Принцип работы модуля заключается на свойстве резистивного делителя. Резистивный делитель имеет два плеча, от соотношений величин сопротивлений которых зависит напряжение на его выходе. На схеме правое плечо имеет постоянное сопротивление 2k, а вот величина левого плеча будет зависеть от нажатой кнопки. К примеру, при нажатии S2 это будет 330Ом, а при нажатии S4 это будет 1950 (сумма из сопротивлений R2, R3,R4)  

 

Иными словами, при нажатии на каждую кнопку мы будем получать различное напряжение на выводе "BTN" Z-Keyboard модуля. Для того чтобы узнать значения для каждой кнопки следует залить следующий скетч, открыть монитор порта, нажимать на кнопки и фиксировать значения.

 

void setup() {
  Serial.begin(9600);   // Скорость работы порта
}

void loop() {
  int analogValue = analogRead(0);  // Задаем переменную analogValue для считывания показаний  
  Serial.println(analogValue);              // Выводим значения
  delay(500);
}

 

Считывание показаний

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

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

 

 
Пример программного кода
int button;
const int BUTTON_NONE   = 0;
const int BUTTON_RIGHT  = 1;
const int BUTTON_UP     = 2;
const int BUTTON_DOWN   = 3;
const int BUTTON_LEFT   = 4;
const int BUTTON_SELECT = 5;

int getPressedButton()
{
  int buttonValue = analogRead(0); // считываем значения с аналогового входа(A0) 
  if (buttonValue < 100) {
    return BUTTON_RIGHT;  
  }
  else if (buttonValue < 200) {
    return BUTTON_UP;
  }
  else if (buttonValue < 400){
    return BUTTON_DOWN;
  }
  else if (buttonValue < 600){
    return BUTTON_LEFT;
  }
  else if (buttonValue < 800){
    return BUTTON_SELECT;
  }
  return BUTTON_NONE;
}

void setup() {
  Serial.begin(9600);                   // Скорость работы порта
  Serial.println("Z-Keyboard Test");    // Выводим текст
  Serial.println();                     // Пустая строка      
}

void loop() {
  button = getPressedButton();
  switch (button)
  {
  case BUTTON_RIGHT: // при нажатии кнопки выводим следующий текст
    Serial.println("BUTTON: RIGHT");    
    break;
  case BUTTON_LEFT:
    Serial.println("BUTTON: LEFT");  
    break;
  case BUTTON_UP:
    Serial.println("BUTTON: UP"); 
    break;
  case BUTTON_DOWN:
    Serial.println("BUTTON: DOWN"); 
    break;
  case BUTTON_SELECT:
    Serial.println("BUTTON: SELECT"); 
    break;
  }
}

 

  

Купить в России  Z-Keyboard модуль


А как же комментарии?