Сенсорная клавиатура на чипе MPR121

Вопросы по подключению кнопок и клавиатур
Аватара пользователя
Rovki
Полковник
Сообщения: 4877
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Сенсорная клавиатура на чипе MPR121

#1

Сообщение Rovki » 17.07.2022{, 18:53}

Есть клавиатура ,работает по I2C- https://aliexpress.ru/item/32811791473. ... 4510854250 . И есть пример https://github.com/BareConductive/mpr12 ... eTouch.ino
Сканером определил ,что адрес у нее 0x5a , а не как в примере 0х5с - нужно изменить .
Может возможно создать блок клавиатуры на базе этой клавы? В примере в сом порт выдается номер клавиши при нажатии и отпускании только ... :smile427:

Отправлено спустя 12 минут 2 секунды:
Выводятся цифры под клавишами -
1658073854239.jpg
Электронщик до мозга костей и не только

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Ввод числа с клавиатуры

#2

Сообщение Dryundel » 17.07.2022{, 19:28}

Rovki писал(а):
17.07.2022{, 19:05}
Есть еще клавиатура ,работает по I2C
Прикольная клава. Не видел таких надо заказать. А какая чувствительность? Интересно, через стекло будет работать?

Отправлено спустя 1 час 9 минут 43 секунды:
Rovki писал(а):
17.07.2022{, 19:05}
И есть пример https://github.com/BareConductive/mpr12 ... eTouch.ino
Нефигасе библиотечка. Неделю надо разбираться во всех возможностях.

Аватара пользователя
Rovki
Полковник
Сообщения: 4877
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Ввод числа с клавиатуры

#3

Сообщение Rovki » 17.07.2022{, 20:40}

Там можно регулировать чувствительность . Сейчас попробую через пленку ...
Электронщик до мозга костей и не только

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Ввод числа с клавиатуры

#4

Сообщение Dryundel » 17.07.2022{, 20:48}

Rovki писал(а):
17.07.2022{, 20:40}
Там можно регулировать чувствительность . Сейчас попробую через пленку ...
Это я видел. Попробуй стекло и оргстекло 2- 3 мм. Пишут что чувствительность большая может быть.
В примере и половины возможностей не показано.

Отправлено спустя 2 минуты 8 секунд:
Там две библиотеки. Я пока не понял их взаимодействие.

Аватара пользователя
Rovki
Полковник
Сообщения: 4877
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Ввод числа с клавиатуры

#5

Сообщение Rovki » 17.07.2022{, 20:52}

Попробовал через скотч и оргстекло(1.5мм)- работает....
Стекла не нашел плоского ,попробовал через бокал (1мм)- работает :smile427:
Электронщик до мозга костей и не только

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Ввод числа с клавиатуры

#6

Сообщение Dryundel » 17.07.2022{, 21:01}

Rovki писал(а):
17.07.2022{, 20:52}
Попробовал через скотч и оргстекло(1.5мм)- работает....
Это уже интересно. Точно надо заказывать и разбираться. :)

Аватара пользователя
Rovki
Полковник
Сообщения: 4877
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Ввод числа с клавиатуры

#7

Сообщение Rovki » 17.07.2022{, 21:01}

Там еще есть выход -прерывание...

Отправлено спустя 1 минуту 42 секунды:
На плате разглядел 3площадки, похоже для смены адреса

Отправлено спустя 3 минуты 10 секунд:
1658081070840.jpg
Отправлено спустя 10 минут 17 секунд:
Вот даташит на чип- https://micropython.org/resources/datasheets/MPR121.pdf

Отправлено спустя 8 минут 24 секунды:
https://fornk.ru/5069-mpr121-kontroller ... #gsc.tab=0

Отправлено спустя 4 минуты 32 секунды:
В воздухе ловит палец на расстоянии 5-6мм :smile427:
Электронщик до мозга костей и не только

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Ввод числа с клавиатуры

#8

Сообщение Dryundel » 17.07.2022{, 22:03}

Rovki писал(а):
17.07.2022{, 21:29}
На плате разглядел 3площадки, похоже для смены адреса
Да именно это сейчас и изучаю. Вам повезло, есть варианты таких же панелек без выбора адреса. Возможны 4 адреса по даташиту,

Аватара пользователя
Rovki
Полковник
Сообщения: 4877
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Сенсорная клавиатура на чипе MPR121

#9

Сообщение Rovki » 18.07.2022{, 07:51}

ЕСть еще бибка от адафрут https://learn.adafruit.com/adafruit-mpr ... ial/wiring
Проверил пример- работает замечательно

Отправлено спустя 22 минуты 22 секунды:
Поддержка микросхемы MPR121 - 12 каналов сенсоров-кнопок , 8 из которых могут настраиваться на выход для управления нагрузкой. Подключение по I2C. Адрес 0x5A.
https://wifi-iot.com/p/wiki/164/ru/

Отправлено спустя 6 минут 41 секунду:
Тут что то уже было -https://flprog.ru/downloads/usersblocks ... ejsom-i2c/
но не могу найти блок и пример
Электронщик до мозга костей и не только

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Сенсорная клавиатура на чипе MPR121

#10

Сообщение Dryundel » 18.07.2022{, 10:27}

Rovki писал(а):
18.07.2022{, 08:21}
но не могу найти блок и пример
Вот этот пример с блоком.
MPR121_4.flp
(181.65 КБ) 46 скачиваний
Автор iBells Вероятно еще со старого форума, ибо с 2017 не появлялся..
Вот весь комплект
MPR121.zip
(292.07 КБ) 42 скачивания
Блок сделан на Adafruit_MPR121.h 2017г. После этого были обновления библиотеки.
В блоке торчит delay(), поэтому он пригоден только для теста.

Я еще не определился с библиотекой, но сделаю в ближайшие дни простенький вариант типа этого, на Adafruit_MPR121.h.
Панельки и модуля у меня нет, поэтому серьезный блок не скоро.

Самое крутое в MPR121 это мультитач.
Пожертвовав мультитачем можно сделать панель на 36 кнопок (6х6), используя модуль или просто чип.
Ну или вариации 5х7, 4х8, 3х2 ...
Вот ссылка на такой проект https://tehnopage.ru/podklychenie-36-datchikov-k-mpr121

Аватара пользователя
Rovki
Полковник
Сообщения: 4877
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Сенсорная клавиатура на чипе MPR121

#11

Сообщение Rovki » 18.07.2022{, 14:08}

Проверил блок и добавил вывод в уарт , работает
клава.jpg
Электронщик до мозга костей и не только

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Сенсорная клавиатура на чипе MPR121

#12

Сообщение Dryundel » 18.07.2022{, 14:14}

Rovki писал(а):
18.07.2022{, 14:08}
Проверил блок и добавил вывод в уарт , работает
Если delay() выкинул, то блок будет сильно грузить запросами I2C.
Если нет, то тормоза реальному проекту гарантированы.
Надо использовать линию прерывания, тогда будет Ок.

Аватара пользователя
Rovki
Полковник
Сообщения: 4877
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Сенсорная клавиатура на чипе MPR121

#13

Сообщение Rovki » 18.07.2022{, 14:19}

Нужно на плату поставить условие и опрашивать несколько раз в секунду или изменить частоту I2C. Согласен ,что с прерыванием будет лучше.

Отправлено спустя 1 минуту 32 секунды:
Но в этом блоке нет задания пин для прерывания
Электронщик до мозга костей и не только

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Сенсорная клавиатура на чипе MPR121

#14

Сообщение Dryundel » 18.07.2022{, 14:23}

Rovki писал(а):
18.07.2022{, 14:19}
Нужно на плату поставить условие и опрашивать несколько раз в секунду или изменить частоту I2C.
Ход мысли правильный. Именно для этого и delay() там и втиснут.
Rovki писал(а):
18.07.2022{, 14:20}
Но в этом блоке нет задания пин для прерывания
Мало того, в этом блоке нет установки адреса. )))
Ну так это потому, что чел не разбирался досконально с библиотекой, а тупо упаковал пример в блок и все.

Аватара пользователя
Rovki
Полковник
Сообщения: 4877
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Сенсорная клавиатура на чипе MPR121

#15

Сообщение Rovki » 18.07.2022{, 14:27}

Не увидел в бибке от адафрут работы с прерыванием :smile427:

Отправлено спустя 1 минуту 26 секунд:
Могу выслать свою клаву для оперативности
Электронщик до мозга костей и не только

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Сенсорная клавиатура на чипе MPR121

#16

Сообщение Dryundel » 18.07.2022{, 14:31}

Rovki писал(а):
18.07.2022{, 14:27}
Не увидел в бибке от адафрут работы с прерыванием
А нафига это в библиотеке? Я про адрес имел ввиду. А прерывание должно быть просто условием для отсылки запроса на нажатие или отпускание. Сейчас, если нет delay() идет 24 запроса в каждом цикле программы.

Аватара пользователя
Rovki
Полковник
Сообщения: 4877
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Сенсорная клавиатура на чипе MPR121

#17

Сообщение Rovki » 18.07.2022{, 14:34}

Dryundel писал(а):
18.07.2022{, 14:31}
Rovki писал(а):
18.07.2022{, 14:27}
Не увидел в бибке от адафрут работы с прерыванием
А нафига это в библиотеке? Я про адрес имел ввиду. А прерывание должно быть просто условием для отсылки запроса на нажатие или отпускание. Сейчас, если нет delay() идет 24 запроса в каждом цикле программы.
В коде то же нет формирование прерывания :smile427:

Отправлено спустя 1 минуту 45 секунд:
В первом примере -
.....
const uint32_t BAUD_RATE = 115200 ;
const uint8_t MPR121_ADDR = 0x5C ; // 0x5C — это I2C-адрес MPR121 на Bare Touch Board
const uint8_t MPR121_INT = 4 ; // контакт 4 — это прерывание MPR121 на Bare Touch Board
......
Электронщик до мозга костей и не только

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Сенсорная клавиатура на чипе MPR121

#18

Сообщение Dryundel » 18.07.2022{, 14:40}

Rovki писал(а):
18.07.2022{, 14:35}
В коде то же нет формирование прерывания
Adafruit этим не заморачивался и библиотеку такой фигней не загружал. Потому нет ни в коде ни в примере. Типа если кому надо, то сам должен понимать такие простые вещи. :)

Аватара пользователя
Rovki
Полковник
Сообщения: 4877
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Сенсорная клавиатура на чипе MPR121

#19

Сообщение Rovki » 18.07.2022{, 15:30}

Используя блок пользователя , пользователь не обязан понимать код, да же если он простой, имхо :smile37: Ждем классный блок от вас :smile427: Куда отправлять клаву ?
Электронщик до мозга костей и не только

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Сенсорная клавиатура на чипе MPR121

#20

Сообщение Dryundel » 25.07.2022{, 09:13}

Вопрос к знатокам

GPIO у MPR121 конфигурируются в 7 вариантов. В том числе:
OUTPUT_HIGHSIDE (open collector output, high-side)
и
OUTPUT_LOWSIDE (open collector output, low side)
Что такое открытый коллектор понятно. А вот что есть high-side И low side?
Это типа нормально открытый/закрытый? Или может открытый эмиттер имеется ввиду?
Или это подтяжка коллектора к VCC? Тогда это уже не открытый коллектор.
Может кто в курсе?

Ответить

Вернуться в «Кнопки и клавиатуры»