» » » Регулятор громкости на 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качиваний: 409)
Скачать библиотеку энкодера для arduino: Encoder_lib.zip [13,64 Kb] (cкачиваний: 482)
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
  • Группа: Посетители
  • 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?
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Понедельник
21-08-2017
09:25
Поиск по сайту

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


Логин:
Пароль:
Поиск документации
Новое на форуме
Регулятор к швейной машинке [Поиск схем] Ответов 33, последний: 28-05-2017, 22:12 от GeoS
вопрос по mk cd4017 [Болталка] Ответов 2, последний: 23-02-2017, 17:43 от skameykin22
датчик движения из видеокамеры [Болталка] Ответов 0, последний: 9-02-2017, 07:18 от Germ
платы расширения arduino due [Поиск аналогов] Ответов 0, последний: 9-02-2017, 07:03 от Germ
Часы пропеллер [Светоэффекты] Ответов 103, последний: 9-01-2017, 21:17 от Andrey
Новое в блогах
Если arduino не переходит в режим DFU 16.04.2017 - Если arduino не переходит в режим DFU (0)
Программатор ключей Ibutton RW1990 на arduino 05.05.2016 - Программатор ключей Ibutton RW1990 на … (3)
Регулятор громкости на Arduino и энкодере 31.03.2016 - Регулятор громкости на Arduino и энкод… (1)
Двухканальный ШИМ регулятор мощности на AtTiny 13 27.03.2016 - Двухканальный ШИМ регулятор мощности н… (0)
Резистивная клавиатура на Arduino pro micro 23.03.2016 - Резистивная клавиатура на Arduino pro … (0)
Статистика
Пользователей онлайн: 10
Гостей: 10
Реклама
Социальные сети
Теги
3D, adcsra, atmega, atmega8, Atmel, AVR, codevision, CodeVisionAVR 3.12, ina138, LED, mega8, OrCAD Model Editor, step up, USB, Wi-Fi, аккумулятор, антенна, бесплатные, диммер, зарядное устройство, звуковая карта, зу, источник питания, Конкурс 2013, микроконтроллер, мультиметр, ПДУ, первый, печатная плата, программа, проект, прошивка, радиолоцман, распиновка, стабилитрон, трансформатор, усилитель, ЦАП, часы, Часы пропеллер

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