Так как регулировать громкость в машине с экрана тача это тот еще ад решил сделать крутилку. Случайно наткнулся на библиотеку
MouseKeyboard и решил что это идеально мне подходит =) купил плату Leonardo. Суть такова, берем фубар, ему назначаем хот кеи на уменьшение звука и увеличение, а также на паузу ( в данном случае это сочетание CTRL + SHIFT + Q, A, P ) и эмулируем их. Как видно кнопок можно прикручивать огромную кучу =)
скетч
PHP код:
unsigned long currentTime;
unsigned long loopTime;
const int pin_enc_A = 2;
const int pin_enc_B = 3;
const int pin_pause = 4;
unsigned char encoder_A;
unsigned char encoder_B;
unsigned char encoder_A_prev=0;
unsigned char pause;
void setup() {
pinMode(pin_enc_A, INPUT_PULLUP); // encoder 1
pinMode(pin_enc_B, INPUT_PULLUP); // encoder 2
pinMode(pin_pause, INPUT_PULLUP); // encoder pause
currentTime = millis();
loopTime = currentTime;
Keyboard.begin();
}
void loop() {
currentTime = millis();
if(currentTime >= (loopTime + 5)){ // проверяем каждые 5мс (200 Гц)
encoder_A = digitalRead(pin_enc_A); // считываем состояние выхода А энкодера
encoder_B = digitalRead(pin_enc_B); // считываем состояние выхода А энкодера
if((!encoder_A) && (encoder_A_prev)){ // если состояние изменилось с положительного к нулю
if(encoder_B)
{
// выход В в полож. сост., значит вращение по часовой стрелке
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.press('q');
delay(50);
Keyboard.releaseAll();
}
else {
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.press('a');
delay(50);
Keyboard.releaseAll();
}
}
encoder_A_prev = encoder_A; // сохраняем значение А для следующего цикла
if ( !digitalRead(pin_pause) ) {
pause=1;
}
else {
if ( pause ) {
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.press('p');
delay(50);
Keyboard.releaseAll();
pause=0;
}
}
loopTime = currentTime;
}
}