Каскадирование регистров

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем boris098765, 18 сен 2015.

  1. boris098765

    boris098765 Нуб

    Я решил сделать midi клавиатуру.
    Мне нужно подключить 88 кнопок к Arduino Leonardo (14 цифровых входов).
    Пожалуйста, подскажите схему и софт. Схема с подключением n входных регистров (http://amperka.ru/product/74hc165-shift-in-register). Софт должен опрашивать все 88 кнопок, и в зависимости от того, какая нажата, или не нажата, "нажимать" ту или иную клавишу (выступать в роли клавиатуры). Заранее спасибо!
     
  2. Arduiner001

    Arduiner001 Гик

    [​IMG]
    Понадобится 11 регистров (88 клавиш, один регистр - 8 входов, соответственно 88:8=11)
    SER 11-ого регистра к земле
    QH 11-ого к SER 10-ого
    QH 10-ого к SER 9-ого
    * 9 * 8
    * 8 * 7
    * 7 * 6
    * 6 * 5
    * 5 * 4
    * 4 * 3
    * 3 * 2
    * 2 * 1
    * 1 с пином 12 Arduino

    Пин 13 (SCK) и 10 (SS) общие для всех регистров.

    Код (C++):
    #include <LineDriver.h>
    #include <SPI.h>
    #include <SPI_Bus.h>

    SPI_Bus reg(_88bit, 10, MSBFIRST);


    void setup()
    {
      Serial.begin(9600);
      reg.setSelectionPolicy(SPI_Bus::SELECT_BEFORE);
    }


    void loop()
    {
      static uint64_t last_input_states = 0;
      uint64_t states = reg.read64bits();
      //Тут может быть Ваш код для чтения первых 64 клавиш :)
      uint64_t last_input_states = 0;
      uint64_t states = reg.read64bits();
      //Тут может быть Ваш код для чтения оставшихся клавиш
    }
     
  3. Arduiner001

    Arduiner001 Гик

  4. boris098765

    boris098765 Нуб

    Извините, а Вы не могли бы немного пояснить? Я не особо понял код.
     
  5. AlexU

    AlexU Гуру

    Можно попробовать использовать контроллер с клавиатуры ps/2. Если такая завалялась.
     
  6. boris098765

    boris098765 Нуб

    А если нет?
     
  7. AlexU

    AlexU Гуру

    Тогда есть выбор:
    1) 11 входных регистров, с необходимостью создания печатной платы, на которой эти регистры будут расположены.
    2) купить PS/2 клавиатуру за 200..400 руб, и вытащить из нее контроллер. Есть готовая библиотека: http://playground.arduino.cc/Main/PS2Keyboard, но не могу гарантировать ее работоспособность (хотя информация о библиотеке расположена на оффициальном сайте Arduino).