» » » Регулятор громкости на Arduino и энкодере

Регулятор громкости на Arduino и энкодере

Автор: Tonich от 31-03-2016, 12:29

Началось всё со старого усилителя подключённого к ПК, на котором отсутствовали регулировки громкости. Приходилось регулировать громкость на самом компьютере при помощи мышки или мультимедийной клавиатуры, что не совсем удобно. Вот и пришла идея сделать отдельный регулятор подключаемый по USB. Как раз без дела лежали Arduino pro micro и модуль энкодера.

Регулятор громкости на Arduino и энкодере

Регулятор громкости на Arduino и энкодере


Схема подключения:
Регулятор громкости на Arduino и энкодере

Регулятор громкости на Arduino и энкодере


Перед компиляцией копируем библиотеку Encoder в Arduino(C:\Program Files\Arduino\libraries).
По коду всё просто, читаем текущее значение положения энкодера и сравниваем с предыдущим, если текущее больше, то увеличиваем громкость, если меньше, то уменьшаем. Нажатие на энкодер отключает и включает звук (MUTE).


#include <Encoder.h> // The rotary encoder library http://www.pjrc.com/teensy/td_libs_Encoder.html
int accel = 1;
int c = 0 ;
// This is an acceleration factor. Use between 1 and 8 to suit how quickly the volume goes up or down.
Encoder myEnc(2, 3);
long oldPosition = 0;

void setup() {
   Keyboard.begin(); 
   //Serial.begin(9600);
}
void loop() {
  long newPosition = myEnc.read() / accel;
  if (newPosition != oldPosition) {
    if(newPosition > oldPosition) { 
    Remote.increase(); //  Увеличить громкость
    delay(50); 
    Remote.clear();   
    }
    if(newPosition < oldPosition) {  
    Remote.decrease(); 
    delay(50); 
    Remote.clear(); 
    }
    
    oldPosition = newPosition;
    //Serial.println(newPosition);
    
  }
  if (digitalRead(16) == LOW && c==0) { 
   
    Remote.mute(); 
     
    delay(10); 
    Remote.clear(); 
    c=1;  
    delay (100);
  }
  if (digitalRead(16) == HIGH && c==1) { 
    c=0;  
    delay (100);
  }
}


После установил всё это дело в корпус и положил на столе, очень удобно:

Регулятор громкости на Arduino и энкодере

Регулятор громкости на Arduino и энкодере


Скачать скетч: Encoder_volume_control.ino [979 b] (cкачиваний: 761)
Скачать библиотеку энкодера для arduino: Encoder_lib.zip [13,64 Kb] (cкачиваний: 831)
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
  • Группа: Посетители
  • ICQ:
  • Регистрация: 18.11.2016
  • Статус: Пользователь offline
  • Комментариев: 1
  • Публикаций: 0
^
hello, i am trying to compile the sketch but i get some erros

Encoder_volume_control:9: error: 'Keyboard' not found. Does your sketch include the line '#include <Keyboard.h>'?
Keyboard.begin();

^

C:\Users\AdiContakt\Desktop\Encoder_volume_control\Encoder_volume_control.i
no: In function 'void loop()':

Encoder_volume_control:16: error: 'Remote' was not declared in this scope

Remote.increase(); // ?????µ?»???‡???‚?? ???€???????????‚??

^

Encoder_volume_control:21: error: 'Remote' was not declared in this scope

Remote.decrease();

^

Encoder_volume_control:32: error: 'Remote' was not declared in this scope

Remote.mute();

^

Multiple libraries were found for "Encoder.h"
Used: C:\Users\AdiContakt\Documents\Arduino\libraries\Encoder
Not used: C:\Program Files (x86)\Arduino\libraries\Encoder
exit status 1
'Keyboard' not found. Does your sketch include the line '#include <Keyboard.h>'?


how to fix it?
  • Группа: Посетители
  • ICQ:
  • Регистрация: 15.06.2018
  • Статус: Пользователь offline
  • Комментариев: 1
  • Публикаций: 0
^
Добрый вечер! А возможно ли сделать данный девайс с подключение к ПК через блютуз? И можно ли применить плату attiny85 от Digispark для минимизации размеров? Я с ардуино на вы, поэтому буду признателен если вы поможете мне в реализации моей идеи.

Добрый вечер! А возможно ли сделать данный девайс с подключение к ПК через блютуз? И можно ли применить плату attiny85 от Digispark для минимизации размеров? Если возможно, то какая схема подключения : Ардуино нано про+блютуз модуль + энкодер. Также был бы признателен, если помогли бы со скетчем
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Суббота
15-12-2018
14:49
Поиск по сайту

Профиль
Здравствуйте Гость


Логин:
Пароль:
Поиск документации
Новое на форуме
проектирование схем электрич [Поиск схем] Ответов 0, последний: 8-10-2018, 18:38 от Openair
как впихнуть модели? [OrCAD] Ответов 0, последний: 11-09-2018, 16:35 от BIOS
светодиодная индикация на буфере с открытым коллектором [Поиск схем] Ответов 0, последний: 26-05-2018, 14:40 от maxim-us
Унч на полевых транзисторах [Усилители] Ответов 31, последний: 12-01-2018, 16:34 от GTS
Регулятор к швейной машинке [Поиск схем] Ответов 33, последний: 28-05-2017, 22:12 от GeoS
Новое в блогах
Световой будильник (рассвет) 11.12.2018 - Световой будильник (рассвет) (0)
Если arduino не переходит в режим DFU 16.04.2017 - Если arduino не переходит в режим DFU (0)
Программатор ключей Ibutton RW1990 на arduino 05.05.2016 - Программатор ключей Ibutton RW1990 на … (3)
Регулятор громкости на Arduino и энкодере 31.03.2016 - Регулятор громкости на Arduino и энкод… (2)
Двухканальный ШИМ регулятор мощности на AtTiny 13 27.03.2016 - Двухканальный ШИМ регулятор мощности н… (2)
Статистика
Пользователей онлайн: 15
Гостей: 15
Реклама
Социальные сети
Теги
10 полосный анализатор спектра, 5.1 регулятор, ARM, atmega, atmega8, AVR, codevision, Eagle3D, mega8, NEC, twi, USB, Wi-Fi, анализатор, антенна, высокое напряжение, ЖК, звуковая карта, зу, индикатор, ключ, Конкурс 2013, микроконтроллер, микроконтроллеры, ПДУ, первый, программа, программирования, проект, прошивка, радиолоцман, распиновка, симулируем, температура, трансформатор, усилитель, халява, ЦАП, часы, электрик

Показать все теги