Keypad для Osu! с Arduino pro micro 32U4

blr_ghetto
Offline
Зарегистрирован: 12.02.2016

Собираю 4-х кнопочную клаву для игры в осу, думаю использовать микроконтроллер pro micro . Не будет ли проблем с использованием функций keyboard.write для игры , где требуется много нажатий , в короткий промежуток времени ? 

blr_ghetto
Offline
Зарегистрирован: 12.02.2016

Спасибо за ответы

Radjah
Offline
Зарегистрирован: 06.08.2014

Ну возьми да попробуй.

at0mix
at0mix аватар
Offline
Зарегистрирован: 23.11.2015

blr_ghetto пишет:

Собираю 4-х кнопочную клаву для игры в осу, думаю использовать микроконтроллер pro micro . Не будет ли проблем с использованием функций keyboard.write для игры , где требуется много нажатий , в короткий промежуток времени ? 

А в чем вообще проблема то?

Я могу понять использование библы для считки ТМ/РФид-ключей, работы с дисплеем (ЛЕД-ЖК), сложными протоколами датчиков или управление кучей моторов, или клава на 60-80 кнопок.

НО! ЧЕТЫРЕ кнопки тупо вешаются на 4 ПИНа с подтяжкой на плюс и замыканием на минус, и их чтение. Ну 4 конденсатора на антидребезг. Мне нужно было подключить матрицу 4*3 кнопок

#define pinKBx1 6 // 1 столбец кнопок
#define pinKBx2 7 // 2 столбец кнопок
#define pinKBx3 8 // 3 столбец кнопок
#define pinKBy1 14 // 1 строка кнопок
#define pinKBy2 15 // 2 строка кнопок
#define pinKBy3 16 // 3 строка кнопок
#define pinKBy4 17 // 4 строка кнопок
//   x1  x2  x3
//y1  1   2   3
//y2  4   5   6
//y3  7   8   9
//y4  A   B   C

/******************************/
byte KBDread()//опрос клавиатуры
{
      byte KBread=0;
      for (byte KBx=0;KBx<3;KBx++)//цикл по столбцам
      {
        for (byte KBy=0;KBy<4;KBy++)//цикл по строкам
        {
          digitalWrite(pinKBy1+KBy, LOW);// 0 на столбец
          if (!digitalRead(pinKBx1+KBx))//читаем строку
          {
            KBread=KBy*3+KBx+1;//если 0 определяем кнопку
          }
          digitalWrite(pinKBy1+KBy, HIGH);//1 на столбец
        }
      }
    return KBread;//возвращаем 0 или номер кнопки 1-12
}