Если вы любите смотреть фильмы или слушать музыку на компьютере, то, возможно, иногда ловили себя на мысли, что было бы удобно иметь ручку регулирования громкости где-нибудь подальше от компьютера и поближе к себе, лежащем на диване. И это можно сделать.

Вы можете превратить Arduino в интерактивное USB-устройство ввода, такое как клавиатура, мышь, геймпад или же в нашем случае регулятор громкости, используя библиотеку HID Library.
В данном случае мы возьмем компактную плату Arduino Pro Micro с микроконтроллером ATmega32U4, который оснащен полноскоростным USB-трансивером.
Когда вы подключаете плату Arduino к компьютеру, она подключается напрямую через шину USB. Pro Micro можно запрограммировать на эмуляцию любого USB-устройства, которое вы только можете себе представить. Вы даже можете запрограммировать его на работу как мышь, клавиатуру или любое другое USB-устройство класса HID, в нашем случае это будет USB-контроллер громкости.

Итак, сначала нам нужно установить HID Library. Просто откройте Arduino IDE, выберите вкладку «Sketch» и выберите «Include Library» - «Manage Libraries». Затем появится окно.

Найдите HID-Project в строке поиска и установите HID-Project от NicoHood. После установки библиотеки снова откройте Arduino IDE и откройте прикрепленный файл скетча.
Подключите потенциометр к Arduino Pro micro по этой схеме.

Загрузите в Arduino следующий код.
#include <HID-Project.h>
#include <HID-Settings.h>
#define REVERSED false
int val = 0;
int previousval = 0;
int val2 = 0;
void setup() {
Consumer.begin();
delay(1000);
for(int a = 0; a < 52; a++) {
Consumer.write(MEDIA_VOLUME_DOWN);
delay(2);
}
}
void loop() {
val = analogRead(A0);
val = map(val, 0, 1023, 0, 101);
if(REVERSED) {
val = 101 - val;
}
if(abs(val - previousval) > 1) {
previousval = val;
val /= 2;
while(val2 < val) {
Consumer.write(MEDIA_VOLUME_UP);
val2++;
delay(2);
}
while(val2 > val) {
Consumer.write(MEDIA_VOLUME_DOWN);
val2--;
delay(2);
}
}
delay(301);
}
Теперь вы можете управлять громкостью компьютера оттуда, докуда хватит провода подключения Arduino по USB.

© digitrode.ru