1

Тема: Тестовый запуск PT2322 PT2323

Данный контент доступен только зарегистрированным пользователям.
Данный контент доступен только зарегистрированным пользователям.


#include <Wire.h>
#include <PT2323.h>
#include <PT2322.h>

 PT2323 pt0; 
 PT2322 pt1;

 int mute = 0;
 int in = 0; // 0...4
 int ddd = 1; // 0...1
 int bass = 0; // -7...7
 int mid = 0; // -7...7
 int treb = 0; // -7...7
 int vol = 50; // 0...79

 void setup(){
  Wire.begin();delay(500);
  audio1();audio2();
  }

 void loop(){

} 

 void audio1(){
  pt0.setInput(in); 
  pt0.setMute(0,0,0,0,0,0,mute); 
  pt0.setFeature(1,1); 
}
 
void audio2(){
  pt1.setFront_lk_att(abs(0));// att front L
  pt1.setFront_rk_att(abs(0));// att front R
  pt1.setCenter_att(abs(0));  // att center
  pt1.setRear_lk_att(abs(0)); // att rear L
  pt1.setRear_rk_att(abs(0)); // att rear R
  pt1.setSub_att(abs(0));     // att sub
  pt1.setFunc(0,ddd,0); // mute,3d,тембр on/off
  pt1.setBass(bass);            // BASS    -14...0...14 dB (int -7...0...7)
  pt1.setMiddle(mid);          // MIDDLE  -14...0...14 dB (int -7...0...7)
  pt1.setTreble(treb);          // TREBLE  -14...0...14 dB (int -7...0...7)
  pt1.setVol(vol); // 0...79
}

2 (2020-04-10 06:56:32 отредактировано alexu)

Re: Тестовый запуск PT2322 PT2323

Здравствуйте еще раз!
Пытаюсь изменить ваш код под работу без дисплея, пока-что вырезал собственно дисплей, и меню частично, кнопки в итоге хочу оставить громкость + -, канал IN, и позже хочу добавить кнопку на управление питанием усилителя
в постоянную память хочу что-бы сохранялись только настройки канала IN.

в общем то поковырялся в коде немножко, удалось на нем стартануть усилитель, но как и ранее "на горячую" заливая прошивку во время работы усилителся...
естественно я что-то делаю не так, прошу указать путь))))

поправочка при включении платы ардуино после включения усилитеся - усилитель воспроизводит звук, а если наоборот- тоесть убрать на время питание с усилителя, после включения усилителя - молчит

думается мне что ардуинка просто не выдает сигнал, поэтому вижу пока-что колхозным методом добавить простенький код который принажатии кнопки будет инизиализировать передачу данных с ардуино, а заодно включать так желанное мной реле для подачи питания на усилитель

до чего то менее костыльного пока не смог додуматься

#include <Wire.h>
#include <PT2323.h>
#include <PT2322.h>
#include <EEPROM.h>
 PT2323 pt0; 
 PT2322 pt1;
   byte a1[8]={0b00000,0b11011,0b11011,0b11011,0b11011,0b11011,0b11011,0b00000};
   byte a2[8]={0b00000,0b11000,0b11000,0b11000,0b11000,0b11000,0b11000,0b00000};
   unsigned long time;
   int menu,w,vol,vol_d,z,in,bass,bass_d,mid,mid_d,treb,treb_d,attfl,attfl_d,attcn,attcn_d,attsub,attsub_d,ddd,tembro,x,attfr,attfr_d,atttl,atttl_d,atttr,atttr_d,mute;
 
void setup() {
  Wire.begin();Serial.begin(9600);
  pinMode(A0,INPUT); // menu
  pinMode(A1,INPUT); // +
  pinMode(A2,INPUT); // -
  pinMode(A3,INPUT); // input
  vol = 50;in = 0;bass = 0;mid = 0;treb = 0;
  attfl = 0;attcn = 0;attsub = 0;ddd = 1;tembro = 0;
  attfr = 0;atttl = 0;atttr = 0;
  delay(500);
  audio1();audio2();
}
 
void loop() {
   if(analogRead(A0)>900&&mute!=1){menu++;time=millis();w=1;if(menu>11){menu=0;}}// меню
 
/////////////////////////////// volume ///////////////////////////////////////////////
 if(menu==0){
   if(analogRead(A1)>900){vol++;w=1;if(vol>79){vol=79;}audio2();time=millis();}// 79 максимальная громкость  
   if(analogRead(A2)>900){vol--;w=1;if(vol<0){vol=0;}audio2();time=millis();}// 0 минимум громкости 
}



 /////////////////////////////input///////////////////////////////////////////////////
  if(analogRead(A3)>900){in++;if(in>4){in=0;}audio1();delay(2000);time=millis();w=1;}// in
//  if(analogRead(A3)>900){in++;if(in>5){in=0;}audio1();cl();lcd.setCursor(0,0);lcd.print(" INPUT ");lcd.print(in+1);delay(2000);time=millis();w=1;}// если in = 5 то включен шести канальный вход 
//////////// mute ////////////////////////
  if(mute==1&&(analogRead(A1)>900||analogRead(A2)>900)){mute=0;menu=0;audio1();}  
  if(analogRead(A1)>900&&analogRead(A2)>900){mute=1;menu=100;audio1();}
 
 
 
///////////////////////////////eeprom//////////////////////////////////////////////// 
  if(millis()-time>10000&& w==1&&mute==0){
     EEPROM.update(1,in);
     menu=0;w=0;}
/////////////////////////////////////////////////////////////////////////////////////
}// loop

 
void audio1(){
  pt0.setInput(in); 
  pt0.setMute(0,0,0,0,0,0,mute); 
  pt0.setFeature(1,1); 
}
 
void audio2(){
  pt1.setFront_lk_att(abs(attfl));// att front L
  pt1.setFront_rk_att(abs(attfr));// att front R
  pt1.setCenter_att(abs(attcn));  // att center
  pt1.setRear_lk_att(abs(atttl)); // att rear L
  pt1.setRear_rk_att(abs(atttr)); // att rear R
  pt1.setSub_att(abs(attsub));     // att sub
  pt1.setFunc(0,ddd,0); // mute,3d,тембр on/off
  pt1.setBass(bass);            // BASS    -14...0...14 dB (int -7...0...7)
  pt1.setMiddle(mid);          // MIDDLE  -14...0...14 dB (int -7...0...7)
  pt1.setTreble(treb);          // TREBLE  -14...0...14 dB (int -7...0...7)
  pt1.setVol(vol); // 0...79
}

3

Re: Тестовый запуск PT2322 PT2323

Кнопки
D2 И D3 громкость
D4 - выбор входа
D5 - вкл.выкл
D6 - выход управления питанием

Ваш усилитель, точнее микросхемы усилителей наверное имеют вход STANDBY - дежурный режим, как правило для активации работы УНЧ на этом входе должен быть высокий лог. уровень +5В, на этот вход STANDBY надо подать на постоянку +5В или подавать напряжение с выхода D6 ардуино (питание на микросхемы усилителя будет подаваться, но потребление будет очень маленьким - дежурный режим )

Для остальных параметров которые не используются создавать переменные не нужно их можно менять прямо в функциях audio1() и audio2(), например:

pt1.setBass(0);            // BASS    -14...0...14 dB (int -7...0...7)

#include <Wire.h>
#include <EEPROM.h>
#include <PT2323.h>
#include <PT2322.h>

 PT2323 pt0; 
 PT2322 pt1;

 int vol,in,power,mute,w;
 unsigned long times;

 void setup(){
  Wire.begin();
  if(EEPROM.read(100)!=0){for(int i=0;i<101;i++){EEPROM.update(i,0);}}// очистка памяти при первом включении 
  pinMode(2,INPUT); // VOLUME + // D2
  pinMode(3,INPUT); // VOLUME - // D3
  pinMode(4,INPUT); // INPUT // D4
  pinMode(5,INPUT); // POWER // D5
  pinMode(6,OUTPUT); // выход управления питания усилителя (STANDBY)
  vol=EEPROM.read(0);
  in=EEPROM.read(1);
  audio1();audio2();
  delay(500);
  }

 void loop(){
   //// регуировка громкости 
   if(digitalRead(2)==HIGH&&power==0){vol++;;if(vol>79){vol=79;}audio2();w=1;times=millis();}// 79 максимальная громкость  
   if(digitalRead(3)==HIGH&&power==0){vol--;if(vol<0){vol=0;}audio2();w=1;times=millis();}// 0 минимум громкости 
   //// выбор входа
   if(digitalRead(4)==HIGH&&power==0){in++;if(in>5){in=0;}audio1();w=1;times=millis();}// если in = 5 то включен шести канальный вход 
   //// POWER
   if(digitalRead(5)==HIGH&&power==0){power=1;mute=1;audio1();digitalWrite(6,LOW);delay(500);} 
   if(digitalRead(5)==HIGH&&power==1){power=0;mute=0;audio1();digitalWrite(6,HIGH);delay(500);}
   /// EEPROM
    if(millis()-times>5000&&mute==0&&w==1){EEPROM.update(0,vol);EEPROM.update(1,in);w=0;}

   delay(200);
  } 

 void audio1(){
  pt0.setInput(in); 
  pt0.setMute(0,0,0,0,0,0,mute); 
  pt0.setFeature(1,1); 
}
 
void audio2(){
  pt1.setFront_lk_att(0);// att front L
  pt1.setFront_rk_att(0);// att front R
  pt1.setCenter_att(0);  // att center
  pt1.setRear_lk_att(0); // att rear L
  pt1.setRear_rk_att(0); // att rear R
  pt1.setSub_att(0);     // att sub
  pt1.setFunc(0,1,0); // mute,3d,тембр on/off
  pt1.setBass(0);            // BASS    -14...0...14 dB (int -7...0...7)
  pt1.setMiddle(0);          // MIDDLE  -14...0...14 dB (int -7...0...7)
  pt1.setTreble(0);          // TREBLE  -14...0...14 dB (int -7...0...7)
  pt1.setVol(vol); // 0...79
}

4

Re: Тестовый запуск PT2322 PT2323

Спасибо за ваши труды! Почти закончил блок кнопок, в скором времени проверю☺️
В усилителе используется микросхемы tda7269a tda7265 с режимом Standby/mute,
вы это имели в виду? Нашёл их описание на вашем сайте, подал землю на 5 пин, и они вышли из сна, если конечно про них разговор

5

Re: Тестовый запуск PT2322 PT2323

Да все верно, надо на постоянную подать землю на пин 5 или делать это при помощи ардуино, подав напряжение с D6 на пин 5 усилителя.

Надо тогда изменить инверcию выхода D6

//// POWER
   if(digitalRead(5)==HIGH&&power==0){power=1;mute=1;audio1();digitalWrite(6,HIGH);delay(500);} // OFF
   if(digitalRead(5)==HIGH&&power==1){power=0;mute=0;audio1();digitalWrite(6,LOW);delay(500);} // ON

6

Re: Тестовый запуск PT2322 PT2323

liman324 пишет:

Да все верно, надо на постоянную подать землю на пин 5 или делать это при помощи ардуино, подав напряжение с D6 на пин 5 усилителя.

Надо тогда изменить инверcию выхода D6

//// POWER
   if(digitalRead(5)==HIGH&&power==0){power=1;mute=1;audio1();digitalWrite(6,HIGH);delay(500);} // OFF
   if(digitalRead(5)==HIGH&&power==1){power=0;mute=0;audio1();digitalWrite(6,LOW);delay(500);} // ON

А блок кнопок из статьи остаётся без изменений, при нажатии подаём +5 через резистор на землю на цифровые входы?

7

Re: Тестовый запуск PT2322 PT2323

Все кнопки шунтироват резисторами 10 К к земле, нажатие +5В.

8

Re: Тестовый запуск PT2322 PT2323

Кнопки работают идеально,
[*]но проблема осталась примерно та-же, попробую описать
ардуино - вкл
подаю питание на усилитель, тишина[/*]

В общем решил проблему следующим образом, добавил audio2 в код кнопки включения, и вуаля, усилитель стал работать после нажатия кнопки вкл выкл на ардуино. что скажете, не сильно накосячил?)

if(digitalRead(5)==HIGH&&power==1){delay(1000);power=0;mute=0;audio1();audio2();digitalWrite(6,HIGH);delay(1000);}

9

Re: Тестовый запуск PT2322 PT2323

Тогда может лучше так:

//// POWER
   if(digitalRead(5)==HIGH&&power==0){power=1;mute=1;audio1();audio2();digitalWrite(6,LOW);delay(500);} // OFF
   if(digitalRead(5)==HIGH&&power==1){power=0;mute=0;audio1();audio2();digitalWrite(6,HIGH);delay(500);} // ON

А, так все правильно сделали.

10 (2020-04-10 21:03:02 отредактировано alexu)

Re: Тестовый запуск PT2322 PT2323

liman324 пишет:

Тогда может лучше так:

//// POWER
   if(digitalRead(5)==HIGH&&power==0){power=1;mute=1;audio1();audio2();digitalWrite(6,LOW);delay(500);} // OFF
   if(digitalRead(5)==HIGH&&power==1){power=0;mute=0;audio1();audio2();digitalWrite(6,HIGH);delay(500);} // ON

А, так все правильно сделали.

а даст ли перемещение delay по коду изменение в порядке активации эллементов?
сделал порядка 10 включений с разными вариациями delay, и при следующем варианте включение усилителя на мой взгляд происходит чище, без щелчка(думаю вы поняли о чем я)

или все плацебо?)
провел эксперимент, действительно установка delay в разные места имеет эффект

   if(digitalRead(5)==HIGH&&power==1){digitalWrite(6,HIGH);delay(500);power=0;mute=0;audio1();delay(500);audio2();delay(500);} // ON

Спасибо большое за ваше время, и помощь!!
п.с. если что никуда не сбегаю, буду еще доставать своими глупыми вопросами)))

11

Re: Тестовый запуск PT2322 PT2323

по идеи при подачи питания на ардуино и усилитель, ардино должна немного побыть в паузе, чтобы прошил переходные процессы. Это делается как правило в функции setup()

void setup(){
  Wire.begin();
  if(EEPROM.read(100)!=0){for(int i=0;i<101;i++){EEPROM.update(i,0);}}// очистка памяти при первом включении
  pinMode(2,INPUT); // VOLUME + // D2
  pinMode(3,INPUT); // VOLUME - // D3
  pinMode(4,INPUT); // INPUT // D4
  pinMode(5,INPUT); // POWER // D5
  pinMode(6,OUTPUT); // выход управления питания усилителя (STANDBY)
  vol=EEPROM.read(0);
  in=EEPROM.read(1);

// возможно все эти изменения вообще лишнее
  mute = 1; // делаем MUTE на всякий случай
  audio1();audio2(); // отправляет MUTE IN и VOL в аудиопроцессор
  digitalWrite(6,LOW);// переводим усилитель в режим отключения
  delay(500); // пауза
 
 
  mute = 0; // ОТКЛЮЧАЕМ MUTE
  audio1();audio2(); // отправляет MUTE IN и VOL в аудиопроцессор
  delay(500);
  digitalWrite(6,HIGH);// переводим усилитель в режим ВКЛЮЧЕНИЯ
  delay(500); // пауза
  }

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

if(digitalRead(5)==HIGH&&power==1){
digitalWrite(6,HIGH); // усилитель включается
delay(500);power=0;mute=0;audio1();delay(500);audio2();delay(500);} // ON

Я думаю что Вы поступили правильно, сначала включили усилитель, потом активировали аудиопроцессор

if(digitalRead(5)==HIGH&&power==1){digitalWrite(6,HIGH);delay(500);power=0;mute=0;audio1();audio2();delay(500);} // ON

Если Ваш код работает как надо, то применяйте его.

12

Re: Тестовый запуск PT2322 PT2323

вечером еще поэкспериментирую, по моему именно задержка перед audio2 избавляет от щелчка, т.к. сперва предусилитель выходит из сна напитывая межкаскадные конденсаторы????(возможно) и потом только начинает воспроизведение звука.

т.к. увеличение задержки между digitalWrite(6,HIGH) и power=0;mute=0 не избавляет от щелчка, но задержка тут явно нужка т.к. плате усилителя нужно время на запитку

вечером еще в общем поковыряюсь

13 (2020-04-18 17:34:50 отредактировано alexu)

Re: Тестовый запуск PT2322 PT2323

Доброго утра!Посмотрел на дату поледнего поста, и немножко офигел, 8 дней бьюсь уже с этим усилителем) даже больше по факту то)

В общем что могу сказать в целом про все это - pt2322s ужасная микруха, как и elenberg HT-450 в котором она живет))))

Все это время боролся с шумами (надо сказать они были не очень сильные, но были, в общем эстет не смог с ними жить)
Что было сделано- полностью переделано питание усилителя, заменил диоды на шоттки и перенес ихподальше от разводки нежных цепей по плате, а самое главное дело в точке раздачи нуля по плате, производитель решил фильтровать в это точку + и - сразных сторон, от этого гул стоял постоянный, пришлось соединять фильтрующие конденсаторы в воздухе, и вести от них единый провод на пятачок раздачи по плате, и о чудо, гул ушел....
так же поеду сегодня за импульсником на 24в, попробую разделить его на двухполярное питание, ибо по датащиту для 4-6 ом 22 вольта больно жирно

Дальше предстоял неравный бой с шипением, спойлер - я проиграл)
методом последовательного отключения возможных источников шума из цепочки выяснил что TDA 7269а просто умнички, очень малошумные усилители
а вот pt2322s шумит сама внутри себя, замена не помогла, отключение ее от кондеров для темброблока тоже не помогла.
Но зато помог Гугл, оказывается я не один такой счастличик- у народа Sки шипят, а DIP говорят нет.

в общем как итог заказал с али микруху в корпусе DIP, в надежде припаять кроватку к выходам Soic, и в нее поместить микруху.

и с этого места начинается самое интересное, возникла мысль собрать усилитель самому, уж больно я погрузился в это все, очень интересно оказалось, да и доработать бы текущий усилитель хотелось бы.
но сперва конечно соберу как есть, только на импульснике, больно с линейным питаловом мне не прет, тор гудит - не подходит, а отматывать рука не поднимается, ш образник уже весь искурочил, отматал до 19.8по плате, стал греться, тоже не подходит

пошерстив ваш сайт прочел описание других аудиопроцессоров, и в некоторых вы оставляли коментарии - качественный, а к некоторым Очень качественный, что натолкнуло на мысль)))))) по этому мне очень хотелось бы обсудить эту тему с Вами....
наверное не в этой теме?

14 (2020-04-18 17:43:26 отредактировано alexu)

Re: Тестовый запуск PT2322 PT2323

https://i.ibb.co/fS9FnbC/815-FAE74-870-A-448-F-A988-C6809010-FD10.jpg
добавлю фото скоммутированого чуда, все работает благодаря вашему скетчу

И фото перелопаченого питальника, к сожалению покрасивше- никак не вышло
https://i.ibb.co/DL1JdQg/09-F2-EECA-59-F4-422-F-8436-668-F416-C775-A.jpg

15

Re: Тестовый запуск PT2322 PT2323

По pt2322 я к сожалению ни чего толком посоветовать не могу, у меня не было этой микросхемы, библиотеку и скетчи написал по просьбе пользователя, он ее и тестировал.

По другим аудиопроцессорам - наиболее качественная это BD37534FV или BD37033FV, они в принципе похожи, имеют очень низкий уровень шумов и рекордно низкий КНИ.

16

Re: Тестовый запуск PT2322 PT2323

Встретил у вас ещё упоминание R2S15902FP, или bd лучше будут?

17

Re: Тестовый запуск PT2322 PT2323

И ещё, может можно у вас где создать раздел для пользователей,  где можно будет Вести свой журнал и делиться своим колхозом, а заодно и спросить чего, чтобы не засорять темы

18

Re: Тестовый запуск PT2322 PT2323

R2S15902FP не плохая микросхема, она может работать в режиме stereo входа (3 AUX) и шестиканального входа (DVD), но у ней простой функционал, громкость, тембр ВЧ НЧ, предусилитель входа и раздельная регулировка усиление каждого выхода.

У BD37534FV большой функционал - громкость, тембр 3 полосы, изменение центральной полосы каждого тембра (4 позиции), изминение добротности каждой полосы (4 позиции), ФНЧ сабвуфера 4 полосы и преусиление входов и выходов.
Тембр +-20 дБ, громкость -79...+15 дБ, тонкомпенсация с изменением центральных полос и усилителем, КНИ 0,001%

19

Re: Тестовый запуск PT2322 PT2323

alexu пишет:

И ещё, может можно у вас где создать раздел для пользователей,  где можно будет Вести свой журнал и делиться своим колхозом, а заодно и спросить чего, чтобы не засорять темы

Могу создать отдельный форум и раздел в котором Вы откроете тему, укажите название форума и название раздела

20

Re: Тестовый запуск PT2322 PT2323

liman324 пишет:
alexu пишет:

И ещё, может можно у вас где создать раздел для пользователей,  где можно будет Вести свой журнал и делиться своим колхозом, а заодно и спросить чего, чтобы не засорять темы

Могу создать отдельный форум и раздел в котором Вы откроете тему, укажите название форума и название раздела

Имеете в виду на отдельном поддомене?

21

Re: Тестовый запуск PT2322 PT2323

Нет, есть этот сайт - форум, в нем есть форумы, например Arduino в котором мы сейчас находимся, и есть категория "Проблемы с запусками скетча" , в категории можно создать тему.

22

Re: Тестовый запуск PT2322 PT2323

liman324 пишет:

Нет, есть этот сайт - форум, в нем есть форумы, например Arduino в котором мы сейчас находимся, и есть категория "Проблемы с запусками скетча" , в категории можно создать тему.

Например раздел энтузиастов,  и категории - вопросы к гуру, самоделки энтузиастов)

23

Re: Тестовый запуск PT2322 PT2323

Может лучше назвать форум тематике уст-в, например звукотехника, радио, а в форуме создать раздел ну например самоделки или еще как нибудь.
Если не определились с форумом темы можно создавать в форуме "Разное", потом можно эти темы перенести в другие форумы и категории.

24

Re: Тестовый запуск PT2322 PT2323

liman324 пишет:

Может лучше назвать форум тематике уст-в, например звукотехника, радио, а в форуме создать раздел ну например самоделки или еще как нибудь.
Если не определились с форумом темы можно создавать в форуме "Разное", потом можно эти темы перенести в другие форумы и категории.

Тоже хорошая идея, не все же звуком едины, а по использованию ардуинки не только в звуке у меня тоже куча идей, все таки в квестах работаю)))

25

Re: Тестовый запуск PT2322 PT2323

Хорошо, я создал нужный раздел.