Клавиатура мутитач

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

  1. rkit

    rkit Гуру

    Две кнопки без диодов еще можно обработать правильным опросом. Три уже нельзя.
     
  2. ostrov

    ostrov Гуру

    Все, сообразил, сканируем не привычным HIGH и LOW, а только LOW, остальные сканируюшие при этом не HIGH, а притянутые к земле INPUT, таким образом LOW продавит без вреда для здоровья остальные пины и отобразится на принимающих.

    Действительно просто, только подход непривычный. )
     
  3. ostrov

    ostrov Гуру

    Надо все 8 пинов (или 7 ждя 3×4) на один порт повесить и делать "слепок", который уже обрабатывать как угодно. Впрочем, не обязательно на один порт, но так возни меньше.
     
  4. AlexU

    AlexU Гуру

    Vad33, если есть время и ещё не разобрали тестовый стенд, можете провести один эксперимент?
    Что выдаст программа, если одновременно нажать три кнопки 1-4-6 или 1-2-5, т.е. буквой "Г"?

    Чуть-чуть поразмыслил над схемкой и пришёл к выводу, что могут быть ложные срабатывания. Например, для схемы приведённой в ветке, если одновременно зажать '0', '4', '5', то при опросе первой строки контроллер может определить, что были нажаты кнопки '0' и '1'.
     
  5. ostrov

    ostrov Гуру

    Сегодня соберу такую, только сделаю чтоб выдавало по запросу список нажатых кнопок в виде строки.
     
  6. ostrov

    ostrov Гуру

    Собрал, написал, действительно работает. Две кнопки отслеживает отлично в любой комбинации. С тремя уже проблема. Если нажимать например 1, 2 и 5, то нажатой будет и 4. Если нажать 2, 3 и 8, то нажмется и 9. Так же с тремя кнопками, если нажать ряд и любую другую кнопку, то зажмется весь ряд с этой четвертой кнопкой. То есть как бы зеркалит кнопки по вертикали. Опять надо думать.
     
  7. rkit

    rkit Гуру

    Да диоды, елки-палки.
     
  8. ostrov

    ostrov Гуру

    Да понятно, что диоды. Сразу понятно было, но хочется же изящности с элементами изврата. )
     
  9. ostrov

    ostrov Гуру

    Дополнение. По вертикали та же история. Если зажать столбик и любую кнопку в другом столбике, то зажмется весь столбик с этой кнопкой. Начитаю сомневаться, что без аппаратной доработки возможен полный мультитач.
     
  10. rkit

    rkit Гуру

    Хочется извращаться - подавай на каждый вход одновременно разную волну, на выходе расшифровывай.
     
  11. rkit

    rkit Гуру

    Хотя нет, все равно ерунда
     
  12. ostrov

    ostrov Гуру

    То же самое, волна пойдет не только куда надо, но и где контакт есть.
     
  13. AlexU

    AlexU Гуру

    Диоды, но только не снаружи клавиатуры, т.к. нужного эффекта не будет, а внутри у каждой кнопки, например:
    schematic2.png
    Но тут задумаешься, а нужно ли это в таких клавиатурах?
     
  14. rkit

    rkit Гуру

    Да, внутри каждой кнопки. Я это еще в самом начале предлагал. Да, нужны, если нужны множественные нажатия.
     
  15. Limoney

    Limoney Гик

    Выводы строк – входы настраиваются на вход (подтягивающий резистор) или внешний.
    В свою очередь все выводы колонок - выходы настраиваются на выход с высоким уровнем.
    Далее в цикле сканирования одна из колонок переключается с высокого уровня в низкий уровень, а все остальные колонки находятся в высоком уровне. Теперь если будет нажата любая кнопка в активной колонке, то на «выходе» строки установиться низкий уровень, и считывается код нажатых кнопок.
    При этом нажатие в этой строке другой кнопки к изменению не приведет, потому что остальные колонки в высоком уровне. Затем в цикле поочередно переключается следующая активная колонка.
    11111.JPG
     
  16. ostrov

    ostrov Гуру

    Это не мультитач. Так даже две нажатые кнопки не вычислить. А если в одной строке две-три нажать, то можно и порты спалить колонок.
     
  17. Limoney

    Limoney Гик

    Именно таким образом происходит сканирование клавиатуры в библиотеке Keypad
    Если просмотреть исходники
     
  18. ostrov

    ostrov Гуру

    Название поста перечитайте хотя бы, там есть слово "мультитач", то есть определение нескольких одновременно нажатых кнопок.
     
  19. Limoney

    Limoney Гик

  20. ostrov

    ostrov Гуру

    Возвращаемся к началу темы? )