О том что такое резистивная клавиатура, и как с ней работать статья моем канале уже была (ссылка будет в конце). Сегодня порешаем обратную задачу, и попробуем по управлять модулем bluetooth аудио модулем MH-M18 с помощью Arduino.
Данное решение позволит встраивать функционал bluetooth колонки, в другие Audio-ESP проекты (например в самодельные FM или Интернет радиоприемники).
К Arduino необходимо подключить выход KEY, имитируя при этом работу кнопок. (обведено в красный кружок)
Вариант без "танцев с бубном" это конечно цифровой потенциометр - с интерфейсом SPI например такой.
Но, в местном магазине для радиолюбителей в наличии такого не оказалось, а заказывать в Москве - для разового проекта - "жаба душит".
Поэтому попробуем "сколхозить" тоже самое используя 4 MOSFET транзистора по цене 2.50 рубля за штуку.
Цифровой потенциометр у нас займет 3 ножки Arduino (SPI шина), наш "колхоз" 4. В данном случае не велики потери.....
Для начала необходимо проверить, что там происходит в MH-M18 при нажатии кнопок.
- Ни одна кнопка не нажата 3.22V
- Кнопка "Пауза" 2.66V
- Кнопка Следующий трек (звук +) 2.41V
- Кнопка Предыдущий трек (звук -) 1.46V
- Кнопка (ВКЛ/ВЫКЛ) 0V
Воспользовавшись онлайн калькулятором, не сложно выяснить, что подтяжка ноги KEY к напряжению 3.3V выполнена резистором номиналом около 10-11 кОм.
Осталось собрать схему которая будет организовывать такие напряжения на ножке KEY.
Имитация нажатия кнопки:
- подаем на выход Arduino логическую единицу (нога KEY подтягивается к земле через резистор и ключ на MOSFET)
- небольшая задержка имитирующая нажатие кнопки
- подаем на выход Arduino логический ноль
Осталось выяснить величину этой задержки (2 кнопки при разной величине задержки могут выполнять разные функции). Для этого воспользуемся выводом D7, а саму задержку попробуем подобрать через COM порт.
Для этих целей идеально подойдет встроенный в среду Arduino IDE оператор parseInt()
- треки проигрывателя начинают переключаться при удержании кнопки более 300ms
- если удерживать кнопку более 1000ms происходит увеличение громкости на одну позицию
- если удерживать кнопку более 1300ms происходит увеличение громкости на две позиции
- если удерживать кнопку более 1600ms происходит увеличение громкости на три позиции и.т.д.
Для проверки пишем код, который будет управлять колонкой с помощью отправки цифр в монитор порта.
Получилась блютуз-колонка управляемая через UART. Теперь модуль MH-M18 можно интегрировать в любые проекты. (прикрутить ПДУ, встроить в колонку часы или сделать более удобные органы управления)
По работе с резистивной клавиатурой на моем канале есть отдельная статья:
Подключение нескольких кнопок на аналоговый вход и антидребезг
Полный список всех статей канала доступен по этой ссылке:
Всем удачи!