#1 Re: Проекты » Пишу простые скетчи на заказ по приемлемой цене » 2021-01-21 16:42:19

Доброго времени суток!

Есть скетч для управления кнопками мультимедия в Windows энкодером (прилагается).
Все заточено и залито на Digispark Arduino. Использовалась библиотека Adafruit-Trinket-USB.
Энкодер - KY-040.
(Если нужна инструкция – она есть).
Скетч эмилирует нажатие кнопок мультимедия в Windows энкодером.
Основной функционал, который залит в скетче (все действия далее исполняються энкодером):
Нажать кнопку – Mute on/off
Дважды нажать кнопку – Play/Pause
Трижды нажать кнопку – Гибернация
Покрутить вправо-влево – громкость больше-меньше
Зажать кнопку и поркутить вправо-влево – следующий-предыдущий трек (Нужно редактировать этот функционал).

Незадействованный функционал: двойное нажатие (зажать) и прокрутка; тройное нажатие (зажать) и прокрутка.

Проблема, которую нужно решить – при повороте крышечкой установленной на энкодер (в состоянии нажатой кнопки) – часто пролистываю случайно не 1, а 2-3 трека.

Выход из ситуации – после срабатывания одинарной эмуляции нажатия кнопки «следующий трек» заблокировать ввод энкодера на 1000 мсек (1 сек). Получается, что контроллер передает только первый одиночный сигнал (переключить 1 трек), а последующие сигналы блокируются на 1 сек. Я думаю, что это похоже что-то на устранения дребезга контактов тактовой кнопки.

Таким образом, что бы листать треки далее нужно ждать 1 секунду после прокрутки.
Зажал энкодер – крутнул вправо на сколько хочешь (крутить не более 1 сек), а переключился только 1 трек, через 1 секунду, не отпуская зажатой кнопки энкодера, поркутил вправо еще раз – переключился на второй трек.
Задача кажется очень простой (но я с ней не справлюсь).
Готов заплатить 100-150 грн. Если задача не такая легкая, как кажется – напишите, пожалуйста, обсудим цену.

Также дополнительно за отдельную плату, указанную вами нужно (если вообще реально):
покдлючить еще 1 энкодер к этой Arduino (на плате остаются свободные выходы P3, 4, 5), функционал которого просто дублировать прокрутку колесика мыши.
(или другие варианты, возможны в этой схеме с сбережением функционала мультимедия).
Спасибо!

Скетч: Sketch-i-nastrojjki.zip

В скетче за переключение треков отвечают эти "функции":
TrinketHidCombo.pressMultimediaKey(LEFT_ACTION_MODE1);
и
TrinketHidCombo.pressMultimediaKey(RIGHT_ACTION_MODE1)

Підвал форуму