Темы в форуме

      Наш youtube        Наш инстаграм     ☝ Сказать спасибо!           Правила форума   




Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

molodec100
Пользователь
Сообщения: 14
Стаж: 4 года 9 месяцев
Репутация: 0
Откуда: Сызрань
Аудио система: Monitor audio bx-5

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение molodec100 »

Набросал тут программу на Arduino для управления регулятором громкости Sure PGA2311. Кто будет пробовать, сперва протестируйте на стабильность работы через систему со своим ограничением громкости в течении дня, например. Возможно, стоит запускать проект на более производительной STM32.
Можно перенести пост в другой раздел. У меня нет прав на создание тем.

Оборудование :Arduino Nano, энкодер и ИК приемник обыкновенные, экран SSD1306 128*64 i2c
20201018_190536.jpg
20201018_190536.jpg (385.61 КБ) 4244 просмотра

Код: Выделить всё

/****************
 * кнопка энкодера D04
 * S1, S2 энкодера А2, А3
 * Библиотека энкодера
 * https://github.com/AlexGyver/GyverLibs/releases/download/GyverEncoder/GyverEncoder.zip
 * Библиотека таймеров
 * https://alexgyver.ru/gyvertimer/
 * Загружал с менеджером плат GyverCore
 * https://alexgyver.ru/lessons/gyvercore-doc/
 * Экран: SCK - A5, SDA - A4 
 * SPI в PGA2311: Clock - D13, Data - D10, минус соединен между ардуино и регулятором, плюс ардуино от иного источника
 * ИК приемник - данные в A0 * 
 * Мои Коды - 33450645; + 33452685; Mute  33469005; Repeat  4294967295 * 
 */

#include <GyverEncoder.h>
#include <IRremote.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Экран
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET     4 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

//IR
IRrecv irrecv(A0); // указываем пин, к которому подключен IR приемник
decode_results results;

//Энкодер 
#define CLK A3
#define DT A2
#define SW 4
Encoder enc1(CLK, DT, SW);

#define STEPS  1    //Шаг изменения громкости
#define MinVol 0    //Минимальная громкость
#define MaxVol 180  //Максимальная громкость: Максимум 255 - +31,5 dB

byte Volume, LastVolume, lastValue, countBt;
signed int Gain;  //Уровень громкости в децибеллах
bool VolMute;

bool VolPlusBt, VolMinusBt, VolRepeatBt, VolMuteBt, VolRepeatPlus, VolRepeatMinus, VolPlusBtWas, VolMinusBtWas;

void setup() {
  //Энкодер
  enc1.setType(TYPE2);        // тип энкодера TYPE1 одношаговый, TYPE2 двухшаговый. Если ваш энкодер работает странно, смените тип\=
  enc1.setFastTimeout(40);    // таймаут на скорость isFastR. По умолч. 50
  
  //ИК
  irrecv.enableIRIn();  // запускаем прием инфракрасного сигнала
  pinMode(A0, INPUT); // пин A0 будет входом
  
  Serial.begin(9600);
  
  pinMode (SW, INPUT);  //Кнопка энкодера

  //Включение экрана
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();

  Volume = 80;  //Начальное значение громкости
  SPI.begin();
  delay (1000);
  SPI.transfer(Volume);
  SPI.transfer(Volume);  
}

void loop() {  
    //Энкодер 
    enc1.tick();
    if (Volume < MaxVol and !VolMute){
      if (enc1.isRight()) Volume += STEPS;        // если был поворот направо, увеличиваем на 1     
    }

    if (Volume > MinVol and !VolMute){
      if (enc1.isLeft()) Volume -= STEPS;         // если был поворот налево, уменьшаем на 1
    }
    //Активен mute. Выключить и позволить менять громкость
    if ((enc1.isRight() or enc1.isLeft()) and VolMute){
      countBt = 2;
      Mute();
    }    

    if (enc1.isPress()){                // Нажатие кнопки энкодера Mute
        countBt +=1 ;   //1 - mute, 2 - unmute
        Mute();
  }  
    
    IR_Recieve(); //Вызов функции ИК приемника

       // если громкость изменилась - выводим на экран
   if (lastValue != Volume) {      
      lastValue = Volume;
      SPI.transfer(Volume);
      SPI.transfer(Volume); 
      display_show();
   }
}

//Вывод на экран
void display_show() {
  Gain = 31.5 - (0.5 * (255 - Volume));   //Уровень громксоти в децибеллах

    display.clearDisplay();    
    display.setTextColor(SSD1306_WHITE); // Draw white text
      if (VolMute){
        display.setCursor(1, 0);
        display.setTextSize(2);
        display.println("MUTE");
      } 
    display.setTextSize(4);
    display.setCursor(10, 17);
    display.print(Gain);
    display.setTextSize(3);
    display.println("dB");
    display.display();
}

void IR_Recieve(){
   if (irrecv.decode(&results)) // если данные пришли выполняем команды
   {
      //Для считывания кодов пульта
      //Serial.println(results.value); // отправляем полученные данные на порт
      
      if (results.value == 33452685) VolPlusBt = true;
      else VolPlusBt = false;
      if (results.value == 33450645) VolMinusBt = true;
      else VolMinusBt = false;
      if (results.value == 33469005) VolMuteBt = true;
      else VolMuteBt = false;
      if (results.value == 4294967295) VolRepeatBt = true;
      else VolRepeatBt = false;

      // Vol + Repeat
      if (VolPlusBt) VolPlusBtWas = true;
      if (VolPlusBtWas and (VolMinusBt or VolMuteBt)) VolPlusBtWas = false;     

      if (VolPlusBtWas and VolRepeatBt) VolRepeatPlus = true;
      else VolRepeatPlus = false;
            
      // Vol - Repeat
      if (VolMinusBt) VolMinusBtWas = true;
      if (VolMinusBtWas and (VolPlusBt or VolMuteBt)) VolMinusBtWas = false;     

      if (VolMinusBtWas and VolRepeatBt) VolRepeatMinus = true;
      else VolRepeatMinus = false;
  
      // Vol +
      if ((VolPlusBt or VolRepeatPlus) and (Volume < MaxVol) and !VolMute)  
      Volume += STEPS ;
         
      //Vol - 
      if ((VolMinusBt or VolRepeatMinus) and (Volume > MinVol) and !VolMute) 
      Volume -= STEPS;
            
      //Mute
      if (VolMuteBt) {
        countBt +=1 ;
        Mute();
      }
      
      //Активен mute. Выключить и позволить менять громкость
      if ((VolPlusBt or VolMinusBt) and VolMute) { 
      countBt = 2;
      Mute();
      }
          
      irrecv.resume(); // принимаем следующий сигнал на ИК приемнике
      }
}

void Mute(){
    if (!VolMute and countBt == 1){
      LastVolume = Volume;
      Volume = MinVol;
      VolMute = true; 
  }
    if (VolMute and countBt == 2){
    Volume = LastVolume;
    VolMute = false; 
    countBt = 0;
  }
}
salwater
Почетный пользователь
Сообщения: 95
Стаж: 4 года 9 месяцев
Репутация: 0
Откуда: Москва
Аудио система: Atoll IN 200 Signature
Penaudio Cenya

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение salwater »

Набросал тут программу на Arduino для управления регулятором громкости Sure PGA2311.
Здравствуйте!
Спасибо, интересно)

Я так понимаю, Serial.begin(9600); можно закомментировать после отладки?

Пару вопросов.
Для чего по коду в двух местах повторяется
SPI.transfer(Volume);
SPI.transfer(Volume);

В чем разница Vol + Repeat и просто Vol + ?
Я увидел объявление переменных, а что делают не понял.
molodec100
Пользователь
Сообщения: 14
Стаж: 4 года 9 месяцев
Репутация: 0
Откуда: Сызрань
Аудио система: Monitor audio bx-5

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение molodec100 »

Я так понимаю, Serial.begin(9600); можно закомментировать после отладки?
Да, пригодится для получения кодов ИК пульта
Для чего по коду в двух местах повторяется
SPI.transfer(Volume);
SPI.transfer(Volume);
Громкость пишется по байту на канал. Можно сделать регулировку баланса при необходимости.
В чем разница Vol + Repeat и просто Vol + ?
Vol + Repeat - не однократно прибавить громкость, а увеличивать, пока удерживается кнопка. ИК код при первом нажатии приходит один, затем идет максимальное число int. Поэтому косвенно пришлось определять, какая кнопка была нажата и что делать. Аналогично с VolRepeatMinus.

Некоторая неточность у меня. Уровень громкости меняется с шагом 0,5 дБ. В моем варианте шрифт крупнее, но отображается только целое число. Чтобы отображать дробное число:
1.

Код: Выделить всё

signed int Gain; заменить на float Gain;
2.

Код: Выделить всё

    display.setTextSize(4);
    display.setCursor(10, 17);
    display.print(Gain);
    display.setTextSize(3);
заменить на

Код: Выделить всё

    display.setTextSize(3);
    display.setCursor(10, 17);
    display.print(Gain, 1);
    display.setTextSize(2);
Аватара пользователя
Alex
Site Admin
Сообщения: 4003
Стаж: 13 лет 7 месяцев
Репутация: 2515
Откуда: Kiev
Аудио система: www.is.gd/l0dt3T
Контактная информация:

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение Alex »

Sous писал(а): 18 окт 2020, 01:06 100Вт версия, эскиз:
BTM.PNG
Симпотно и компактно ;)
salwater
Почетный пользователь
Сообщения: 95
Стаж: 4 года 9 месяцев
Репутация: 0
Откуда: Москва
Аудио система: Atoll IN 200 Signature
Penaudio Cenya

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение salwater »

В моем варианте шрифт крупнее
В этом эранчике в принципе можно менять шрифт и подобрать другой.
Я если буду делать, то возьму экранчик 128*32.

Пульт ИК не совсем то, без кнопки отключения питания :)
По идее там не сложно, вывести ногу на реле, но я в ИК не разбираюсь..
molodec100
Пользователь
Сообщения: 14
Стаж: 4 года 9 месяцев
Репутация: 0
Откуда: Сызрань
Аудио система: Monitor audio bx-5

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение molodec100 »

salwater писал(а): 19 окт 2020, 23:21
Пульт ИК не совсем то, без кнопки отключения питания :)
По идее там не сложно, вывести ногу на реле, но я в ИК не разбираюсь..
Режим Standbuy.

Код: Выделить всё

 перед void setup() добавить 
 bool Standbuy
 byte Standbuy_count
 
 в void setup() добавить
 pinMode(5, OUTPUT); //Выход d5
  
 в void IR_Recieve() добавить
 if (results.value == КОД_КНОПКИ){ 
 Standbuy_count +=1 ;
 Standbuy_fn();
 }
 
 Добавить функцию в конец программы
 void Standbuy_fn(){
    if (!Standbuy and Standbuy_count == 1){
      digitalWrite(5, HIGH); //Включить выход
      //прочие действия
      //запись начальной громкости
  }
    if (Standbuy and Standbuy_count == 2){
    digitalWrite(5, LOW);
    Standbuy_count = 0;
  }
}
salwater
Почетный пользователь
Сообщения: 95
Стаж: 4 года 9 месяцев
Репутация: 0
Откуда: Москва
Аудио система: Atoll IN 200 Signature
Penaudio Cenya

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение salwater »

Спасибо :)
molodec100
Пользователь
Сообщения: 14
Стаж: 4 года 9 месяцев
Репутация: 0
Откуда: Сызрань
Аудио система: Monitor audio bx-5

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение molodec100 »

Посчитал тут примерную стоимость самодельного усилителя и получается в районе 1000$. За примерно те же деньги можно взять готовый брендовый со всеми защитами, корпусом, темброблоком, дистанционным управлением, входами и т.д.
Как же со звуком у нашего nCore в сравнении с брендовыми усилителями? Покажет ли он класс в сравнении с, например, Marantz PM8006 за почти 2000$? Раскроет ли потенциал желанных мною в недалеком будущем полочных Monitor Audio Gold?
Замеры на осцилографе, конечно, показательны)) Но как со сравнением на АС уровнем выше киношных напольников, которые в том числе и у меня на данный момент. Порой смотришь восхищенные отзывы, а у людей колонки стоят в углу, да почти вплотную к стене, да МР3 еще включат, не говоря уж об акустической обработке помещения.
Аватара пользователя
Alex
Site Admin
Сообщения: 4003
Стаж: 13 лет 7 месяцев
Репутация: 2515
Откуда: Kiev
Аудио система: www.is.gd/l0dt3T
Контактная информация:

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение Alex »

molodec100 писал(а): 26 окт 2020, 12:36 Посчитал тут примерную стоимость самодельного усилителя и получается в районе 1000$.
А чего так дорого то?

По поводу звука здесь нужно самому слушать и решать, на моей новой акустике звучит отлично.
Lektor
Ветеран движения
Сообщения: 1927
Стаж: 6 лет 4 месяца
Репутация: 115
Откуда: Александрия, Украина

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение Lektor »

Вы совершенно правы. Самодельный усилитель на хороших компонентах и в красивом корпусе выйдет не дешевле, а то и дороже. Есть хорошее видео на эту тему.
Усилители нужно слушать самому.
Аватара пользователя
Alex
Site Admin
Сообщения: 4003
Стаж: 13 лет 7 месяцев
Репутация: 2515
Откуда: Kiev
Аудио система: www.is.gd/l0dt3T
Контактная информация:

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение Alex »

У меня получается примерно около $270 с корпусом и потрохами ;)
maximf
Почетный пользователь
Сообщения: 64
Стаж: 4 года 10 месяцев
Репутация: 0
Откуда: Самара
Аудио система: Yamaha RX-V559
ЦАП: SU2
Колонки: JAMO C607

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение maximf »

270 $ Норм. Фул версия немного побольше, но тоже неплохо
Аватара пользователя
Alex
Site Admin
Сообщения: 4003
Стаж: 13 лет 7 месяцев
Репутация: 2515
Откуда: Kiev
Аудио система: www.is.gd/l0dt3T
Контактная информация:

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение Alex »

это я посчитал фул
maximf
Почетный пользователь
Сообщения: 64
Стаж: 4 года 10 месяцев
Репутация: 0
Откуда: Самара
Аудио система: Yamaha RX-V559
ЦАП: SU2
Колонки: JAMO C607

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение maximf »

Alex, вот бы вы еще выложили видео со сборкой и тестированием фул версии. И с сылочками на купленные компоненты
Аватара пользователя
Alex
Site Admin
Сообщения: 4003
Стаж: 13 лет 7 месяцев
Репутация: 2515
Откуда: Kiev
Аудио система: www.is.gd/l0dt3T
Контактная информация:

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение Alex »

Да, я планирую это сделать.
Sous
Разработчик
Сообщения: 1366
Стаж: 4 года 10 месяцев
Репутация: 1195
Откуда: Ивано-Франковск
Аудио система: DX3pro
Focal horus716
S_Audio stereo AMP 2_061

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение Sous »

По версии 2_050 получается
2 БП - 60
2 усилителя - 144
корпус и разъемы 100
Это для двойного моно 304$. В целом приемлемо.
С декабря стартует проект на платах 3 версии.
там будет дороже на 100.
Sous
Разработчик
Сообщения: 1366
Стаж: 4 года 10 месяцев
Репутация: 1195
Откуда: Ивано-Франковск
Аудио система: DX3pro
Focal horus716
S_Audio stereo AMP 2_061

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение Sous »

для 100Вт можно секономить:
ориентировочная цена усилителя 28$
Корпус можно брать мелкий, за 40-50
итого:28х2=56
корпус с разъемами 60
БП 30
вообще сверхбюджетно
150$
maximf
Почетный пользователь
Сообщения: 64
Стаж: 4 года 10 месяцев
Репутация: 0
Откуда: Самара
Аудио система: Yamaha RX-V559
ЦАП: SU2
Колонки: JAMO C607

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение maximf »

Если экономия при покупке 100 вт версии будет без потерь в качестве звучания, то прекрасный вариант. 3 версия будет 100 вт?
molodec100
Пользователь
Сообщения: 14
Стаж: 4 года 9 месяцев
Репутация: 0
Откуда: Сызрань
Аудио система: Monitor audio bx-5

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение molodec100 »

Connex SMPS300RE 2 * 65$
2_050 полный 2 * 74$
регулятор громкости 31$
разъемы 10$
Итого 315$

Плюс: корпус большой - долларов 200 с доставкой, дополнительная защита колонок, темброблок, селектор входов, то, се...

И да, теперь хотелось бы третью версию, раз уж такие новости) Интересно все-таки смастерить собственный прибор, пусть и из готовых элементов.
Аватара пользователя
Alex
Site Admin
Сообщения: 4003
Стаж: 13 лет 7 месяцев
Репутация: 2515
Откуда: Kiev
Аудио система: www.is.gd/l0dt3T
Контактная информация:

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение Alex »

В этой теме я буду делать полноценный усилитель на базе клон nСore 2 версии.
Sous
Разработчик
Сообщения: 1366
Стаж: 4 года 10 месяцев
Репутация: 1195
Откуда: Ивано-Франковск
Аудио система: DX3pro
Focal horus716
S_Audio stereo AMP 2_061

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение Sous »

maximf писал(а): 26 окт 2020, 18:37 Если экономия при покупке 100 вт версии будет без потерь в качестве звучания, то прекрасный вариант. 3 версия будет 100 вт?
3 версия 500вт при +/-60В
100вт версия аналог лайт версии.
rodaf
Пользователь
Сообщения: 27
Стаж: 4 года 9 месяцев
Репутация: 1
Откуда: Волгоград
Аудио система: Revox B226 Signature, Lynx P-05, Threshold Stasis 2, Trio LS-505

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение rodaf »

Sous писал(а): 27 окт 2020, 11:44 100вт версия аналог лайт версии.
А 100 Вт. версия уже есть в продаже или только разрабатывается?
Sous
Разработчик
Сообщения: 1366
Стаж: 4 года 10 месяцев
Репутация: 1195
Откуда: Ивано-Франковск
Аудио система: DX3pro
Focal horus716
S_Audio stereo AMP 2_061

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение Sous »

пока заказаны пробная партия (5шт) голых плат.
соберу пару для проверки, если все параметры подтвердятся-тогда в следующий раз можно будет заказать 30 штук коммерческих.
По срокам это займет месяца полтора.
ИгорьК
Сообщения: 2
Стаж: 4 года 7 месяцев
Репутация: 0
Откуда: Ливны
Аудио система: onkyo pr-sc5509 kef g900

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение ИгорьК »

Добрый день,хотел приобрести у Вас клон ncore 400,как это сделать?
Lektor
Ветеран движения
Сообщения: 1927
Стаж: 6 лет 4 месяца
Репутация: 115
Откуда: Александрия, Украина

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение Lektor »

В отдельной ветке
wwmark
Сообщения: 1
Стаж: 4 года 7 месяцев
Репутация: 0
Откуда: Волгоград
Аудио система: Радиотехника 001, Эстония 010, самодел из S-70 ...

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение wwmark »

Sous писал(а): 27 окт 2020, 11:44 3 версия 500вт при +/-60В
Когда планируется выпуск коммерческого варианта третьей версии? Какие принципиальные отличия от 2.05?
Аватара пользователя
Alex
Site Admin
Сообщения: 4003
Стаж: 13 лет 7 месяцев
Репутация: 2515
Откуда: Kiev
Аудио система: www.is.gd/l0dt3T
Контактная информация:

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение Alex »

ИгорьК писал(а): 01 ноя 2020, 16:46 Добрый день,хотел приобрести у Вас клон ncore 400,как это сделать?

здесь
Аватара пользователя
angerfist555
Сообщения: 2
Стаж: 4 года 7 месяцев
Репутация: 0
Откуда: Тула
Аудио система: 2 напольника(110ват*2) с головками Wavecor WF146WA01-01 и ресивер BBK AV212T

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение angerfist555 »

Sous писал(а): 27 окт 2020, 11:44
maximf писал(а): 26 окт 2020, 18:37 Если экономия при покупке 100 вт версии будет без потерь в качестве звучания, то прекрасный вариант. 3 версия будет 100 вт?
3 версия 500вт при +/-60В
100вт версия аналог лайт версии.
Приветствую! Можно ли уже застолбить в очереди место на 2х100вт версию?
ModerR
Сообщения: 2
Стаж: 4 года 7 месяцев
Репутация: 0
Откуда: Кострома
Аудио система: Пока что сам себе пою и сам играю

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение ModerR »

Я тоже хоооочу 2х100,
Sous
Разработчик
Сообщения: 1366
Стаж: 4 года 10 месяцев
Репутация: 1195
Откуда: Ивано-Франковск
Аудио система: DX3pro
Focal horus716
S_Audio stereo AMP 2_061

Re: Клон nСore от Юрия Игнатьева 400 Вт (2_051_LITE)

Сообщение Sous »

Это еще вопрос туманный, возможно прототип вообще не заработает.
так что пока рано про это говорить.
Ответить

Вернуться в «Аудио усилители»