roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 03:23

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: USB Регулятор громкости на ардуино про микро
СообщениеДобавлено: 25 авг 2018, 19:36 
Не в сети

Зарегистрирован: 27 авг 2014, 02:11
Сообщения: 267
Откуда: Тольятти
ФИО: Михаил
Приветствую, товарищи.
Пытаюсь собрать регулятор громкости на ардуино про микро и энкодере.
Нашел вот такой скетч.
Код:
#include <HID-Project.h>
#include <HID-Settings.h>

#include <Encoder.h>
Encoder myEnc(3,2);
const int pinLed = LED_BUILTIN;
const int pinButton = 12;
int bulbPin = 9;
int oldPosition  = -999;
boolean muted = 0;
int safePosition = 0;
int volume = 0;
int oldVolume = 0;
int actualVolume = 0;
void setup() {
  pinMode(7, INPUT);
  pinMode(8, INPUT);
  pinMode(pinLed, OUTPUT);
  pinMode(pinButton, INPUT_PULLUP);
Serial.begin(9600);
  Consumer.begin();
  delay(1000);
  for(int i = 50; i > 0; i--){
  Consumer.write(MEDIA_VOLUME_DOWN);
  delay(1);
  }
}

void loop() {
  int newPosition = myEnc.read();
  if (newPosition != oldPosition) {
    safePosition = newPosition;
    if(newPosition < 0){
      safePosition = 0;
      myEnc.write(safePosition);
    }
    if(newPosition > 400){
      safePosition = 400;
      myEnc.write(safePosition);
    }
    oldPosition = safePosition;
    volume = safePosition / 4;
    volume = volume / 2;
    noInterrupts(); 
    Serial.print("calc volume: ");
    Serial.print(volume);
    Serial.print(" act volume: ");
    Serial.print(actualVolume);
    Serial.println("");
    changeVolume();
    interrupts();
   
  }
 
  if (!digitalRead(pinButton)) {
   
    Consumer.write(MEDIA_VOLUME_MUTE);
    muted = !muted;
    delay(300);
  }
  if(muted){
    analogWrite(bulbPin, 0);
  }
  else{
    analogWrite(bulbPin, map(volume, 0, 100, 0, 255));
  }
 



}

void changeVolume(){
if (volume != oldVolume) {
    if(volume > oldVolume){
      //delay(100);
      Consumer.write(MEDIA_VOLUME_UP);
      actualVolume = actualVolume + 2;
      oldVolume = volume;
    }
    else{
      //delay(100);
      Consumer.write(MEDIA_VOLUME_DOWN);
      actualVolume = actualVolume - 2;
      oldVolume = volume;
    }
  }
}

Схемы подключения энкодера не приложено. Кое как подключил. Даже работает регулировка громкости. Но вот отключение звука не работает. Не пойму куда подключать пин клика. Громкость нормально регулируется только если пин клика подключен к выводу 2 на ардуине. На других выводах работает криво. Подскажите, пожалуйста, что я делаю не так?
И еще один вопрос. Как поменять направление вращения энкодера? Сейчас он по часовой убавляет, а против прибавляет. По хорошему надо наоборот.

Подключен энкодер вот по этой схеме.
Вложение:
1458887444_encoder_volume_control.jpg
1458887444_encoder_volume_control.jpg [ 28.31 КиБ | Просмотров: 5005 ]

_________________
ZAV MAX Pro V1. ZAV mini.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Регулятор громкости на ардуино про микро
СообщениеДобавлено: 25 авг 2018, 20:43 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10989
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
клик это просто замыкатель.
соответственно есть два варианта работы:
1. один контакт вешаем на массу а второй подтягиваем на ноге входа, активным (признаком срабатывания) будет низкий уровень
2. тот же контакт подключаем на VCC через резистор, и детектируем неподтянутую ногу по высокому уровню

я бы выкинул нафиг все три сопротивления как лишние сущности и все три входа A, B , SW сделал по первому варианту.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Регулятор громкости на ардуино про микро
СообщениеДобавлено: 25 авг 2018, 21:35 
Не в сети

Зарегистрирован: 27 авг 2014, 02:11
Сообщения: 267
Откуда: Тольятти
ФИО: Михаил
Выкинуть не могу. Это модуль готовый. Нет могу конечно, но работает и так.
То что клик замыкатель это я понимаю. И вроде бы даже понимаю про первый пункт. Про второй не понимаю, но да ладно. Самое главное я не понимаю что с этим сделать в скетче.
При нынешнем подключении в мониторе порта вообще нет реакции на нажатие клика. Я так понимаю не правильно подключен пин. Как найти правильный пин в скетче? const int pinButton = 12; Пытался менять пин здесь. Начинает выключать звук поворотом, а на клик по прежнему нет реакции.

_________________
ZAV MAX Pro V1. ZAV mini.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Регулятор громкости на ардуино про микро
СообщениеДобавлено: 25 авг 2018, 23:01 
Не в сети

Зарегистрирован: 14 янв 2015, 16:18
Сообщения: 235
Откуда: СПб
pinButton = 16 не?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Регулятор громкости на ардуино про микро
СообщениеДобавлено: 26 авг 2018, 04:32 
Не в сети

Зарегистрирован: 27 авг 2014, 02:11
Сообщения: 267
Откуда: Тольятти
ФИО: Михаил
Вот ведь. Меня почему то переклинило, что clk на модуле энкодера это кнопка. И я даже не рассматривал другие варианты. Рукалицо... Работает теперь все отлично. Спасибо.
Осталось понять как инвертировать вращение энкодера.

_________________
ZAV MAX Pro V1. ZAV mini.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Регулятор громкости на ардуино про микро
СообщениеДобавлено: 26 авг 2018, 09:42 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10989
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
попробуй
Encoder myEnc(2,3);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Регулятор громкости на ардуино про микро
СообщениеДобавлено: 26 авг 2018, 16:24 
Не в сети

Зарегистрирован: 27 авг 2014, 02:11
Сообщения: 267
Откуда: Тольятти
ФИО: Михаил
Шикарно! Благодарю! Все работает как надо :)

Добавлено спустя 3 часа 50 минут 18 секунд:
Возник тут еще один вопрос.
У данного регулятора есть функция регулировки подсветки пропорционально громкости. На 9 ногу приходит шим с напряжением от 0 до 2в. Т.е. если подключить один светодиод то все будет нормально работать. Но как подключить несколько светодиодов? Если надо просто включить выключить, тогда понятно, ставишь транзистор и на него уже вешаешь светодиоды сколько хочешь. Но при таком варианте не будет управления яркостью. А как сохранить управление яркостью и увеличить максимальный допустимый ток?

_________________
ZAV MAX Pro V1. ZAV mini.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Регулятор громкости на ардуино про микро
СообщениеДобавлено: 26 авг 2018, 16:29 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
ursus писал(а):
Но при таком варианте не будет управления яркостью.

Почему не будет? Все будет :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Регулятор громкости на ардуино про микро
СообщениеДобавлено: 26 авг 2018, 17:03 
Не в сети

Зарегистрирован: 27 авг 2014, 02:11
Сообщения: 267
Откуда: Тольятти
ФИО: Михаил
Да разобрался, спасибо.

_________________
ZAV MAX Pro V1. ZAV mini.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Регулятор громкости на ардуино про микро
СообщениеДобавлено: 11 дек 2019, 21:48 
Не в сети

Зарегистрирован: 11 дек 2019, 20:14
Сообщения: 2
Подскажите, плиз.
А как одновременно с изменением звука в системе управлять громкостью в Foobar 2000?
KEYCODE_MOD_LEFT_ALT, KEYCODE_9
KEYCODE_MOD_LEFT_ALT, KEYCODE_0
Он работает по ASIO, в обход микшера Windows7. Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Регулятор громкости на ардуино про микро
СообщениеДобавлено: 12 дек 2019, 22:35 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
http://wiki.hydrogenaud.io/index.php?title=Foobar2000:Preferences:Keyboard_Shortcuts
Цитата:
There are no global keyboard shortcuts among the predefined keys. One can easily assign global status to one or more of these keys. Good candidates for global assignment are the volume-controling keys: Num + and Num −. Global assignments should be made carefully as they may interfere with your ability to use other applications.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Регулятор громкости на ардуино про микро
СообщениеДобавлено: 12 дек 2019, 23:22 
Не в сети

Зарегистрирован: 11 дек 2019, 20:14
Сообщения: 2
Спасибо. И, как это добавить в код?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: USB Регулятор громкости на ардуино про микро
СообщениеДобавлено: 13 дек 2019, 10:39 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
в код примерно так:
Код:
//wiki.hydrogenaud.io/index.php?title=Foobar2000:Preferences:Keyboard_Shortcuts
/*There are no global keyboard shortcuts among the predefined keys. One can easily assign global status to one or more of these keys. Good candidates for global assignment are the volume-controling keys: Num + and Num −. Global assignments should be made carefully as they may interfere with your ability to use other applications.*/

только зачем оно в коде, английский текст дешифровать будете? не мучайтесь, есть же онлайн переводчики, словари и учебники для изучающих языки. ладно, хорошо, знаю один секретный переводчик, сейчас переведу.
Цитата:
Среди предопределенных клавиш нет глобальных сочетаний клавиш. Можно легко назначить глобальный статус одному или нескольким из этих ключей. Хорошими кандидатами для глобального назначения являются клавиши регулировки громкости: Num + и Num -. Глобальные назначения должны выполняться осторожно, поскольку они могут помешать вам использовать другие приложения.

1) читаем, думаем
2) если нужно, повторить пункт 1
3) попробовать настроить в программе такое же сочетание кнопок, как и для винды
4) если не получится (хз, какие она сочетания может назначать), тогда в прошивке дополнительно добавить отправку какого-нибудь сочетания, которое можно назначить в этой фуубар
5) если до этого пункта ничего не получилось, описать более-менее нормально (с учётом, что скорей всего с этой фуубар врядли работали. туда же их документацию и прочее по этой программе): что пробовали сделать, что именно не получается, если нужно ссылочки и т.д.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO