26 (2020-03-05 16:50:52 отредактировано motoman)

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

liman324 пишет:

LCD2004 с I2C модулем

А под него новый скетч нужен с библиотекой?
Вижу, что в скетче уже есть изменения под новый дисплей, так?

27

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Эта та же библиотека которая используется для модуля I2C PCF8574 для LCD1602
LiquidCrystal_I2C.h // http://forum.rcl-radio.ru/misc.php?acti … download=1
Если нет PCF8574, то можно использовать простое (параллельное подключение) на любые 6 цифровых выходов (если не хватает свободных (не хватит, это точно), то часть кнопок можно перекинуть на аналоговый порт)
http://forum.rcl-radio.ru/uploads/images/2020/03/60235fd9c99a95986490b8b655a37dc8.png
http://forum.rcl-radio.ru/uploads/images/2020/03/a5638235f9673b5203848cd14abb1f81.png

28

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

liman324 пишет:

Эта та же библиотека которая используется для модуля I2C PCF8574 для LCD1602
LiquidCrystal_I2C.h // http://forum.rcl-radio.ru/misc.php?acti … download=1
Если нет PCF8574, то можно использовать простое (параллельное подключение) на любые 6 цифровых выходов (если не хватает свободных (не хватит, это точно), то часть кнопок можно перекинуть на аналоговый порт)
http://forum.rcl-radio.ru/uploads/images/2020/03/60235fd9c99a95986490b8b655a37dc8.png
http://forum.rcl-radio.ru/uploads/images/2020/03/a5638235f9673b5203848cd14abb1f81.png

Да, у меня сейчас стоит дисплей LCD1602 с I2c адаптером.
Можно просто заменить его на LCD2004 с I2C модулем без изменения скетча?

29

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Можно, но у Вас нижние строки будут пустые.
Может этот вариант Вам подойдет - http://forum.rcl-radio.ru/viewtopic.php?id=133

30

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

liman324 пишет:

Можно, но у Вас нижние строки будут пустые.
Может этот вариант Вам подойдет - http://forum.rcl-radio.ru/viewtopic.php?id=133

Да, может

31

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

liman324 пишет:

Не помогло при delay 100, сделал delay равным даже 500, пульт начал работать медленно. Но все равно, тот же параметр изменения фазы при установке на 180 меняется медленно на 0 и потом снова на 180. Как-будто происходит двойное нажатие кнопки пульта. Такое есть и при переборе параметров других функций в Menu 2. Например Bass Q изменяется с энкодера 0,5-1-1,5-2, а с пульта ИК - 0,5-1,5-2. Параметр 2 пропускается.
Вернул как было - убрал delay из строки.

Создайте отдельную функцию:
void cl2(){ir.value=0;delay(300);}

и там где нужна меньшая скорость переключения вместо cl1() укажите cl2()

Например:

   

     if(ir.value==IR_3){faza++;gr1=1;gr2=0;cl2();w2=1;faza_func();audio();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){faza++;gr2=0;cl2();w2=1;faza_func();audio();}// кнопка >>>>>>
     if(ir.value==IR_4){faza--;gr1=0;gr2=1;cl2();w2=1;faza_func();audio();}// кнопка < 
     if(ir.value==0xFFFFFFFF and gr2==1){faza--;gr1=0;cl2();w2=1;faza_func();audio();}// кнопка <<<<<<  

А можно подробнее о функции? В каком месте скетча ее создавать?

32

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Есть функция:

void cl1(){ir.value=0;delay(100);}

сделайте такую же, но lc2()

void cl2(){ir.value=0;delay(300);}// увеличите время задержки
расположите ее после(или перед - это не имеет значения):
void cl1(){ir.value=0;delay(100);}

там где нужно медленно укажите cl2(), например при смене фазы:

     if(ir.value==IR_3){faza++;gr1=1;gr2=0;cl2();w2=1;faza_func();audio();}// кнопка >
     if(ir.value==0xFFFFFFFF and gr1==1){faza++;gr2=0;cl2();w2=1;faza_func();audio();}// кнопка >>>>>>
     if(ir.value==IR_4){faza--;gr1=0;gr2=1;cl2();w2=1;faza_func();audio();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){faza--;gr1=0;cl2();w2=1;faza_func();audio();}// кнопка <<<<<< 

там где надо быстро, используйте cl1();

33

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

liman324 пишет:

Есть функция:

void cl1(){ir.value=0;delay(100);}

сделайте такую же, но lc2()

void cl2(){ir.value=0;delay(300);}// увеличите время задержки
расположите ее после(или перед - это не имеет значения):
void cl1(){ir.value=0;delay(100);}

там где нужно медленно укажите cl2(), например при смене фазы:

     if(ir.value==IR_3){faza++;gr1=1;gr2=0;cl2();w2=1;faza_func();audio();}// кнопка >
     if(ir.value==0xFFFFFFFF and gr1==1){faza++;gr2=0;cl2();w2=1;faza_func();audio();}// кнопка >>>>>>
     if(ir.value==IR_4){faza--;gr1=0;gr2=1;cl2();w2=1;faza_func();audio();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){faza--;gr1=0;cl2();w2=1;faza_func();audio();}// кнопка <<<<<< 

там где надо быстро, используйте cl1();

Это в самом конце скетча?

34

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

да, в самом конце

35

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

liman324 пишет:

да, в самом конце

Спасибо, попробую!

36

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

motoman пишет:
liman324 пишет:

Есть функция:

void cl1(){ir.value=0;delay(100);}

сделайте такую же, но lc2()

void cl2(){ir.value=0;delay(300)d;}// увеличите время задержки
расположите ее после(или перед - это не имеет значения):
void cl1(){ir.value=0;delay(100);}

там где нужно медленно укажите cl2(), например при смене фазы:

     if(ir.value==IR_3){faza++;gr1=1;gr2=0;cl2();w2=1;faza_func();audio();}// кнопка >
     if(ir.value==0xFFFFFFFF and gr1==1){faza++;gr2=0;cl2();w2=1;faza_func();audio();}// кнопка >>>>>>
     if(ir.value==IR_4){faza--;gr1=0;gr2=1;cl2();w2=1;faza_func();audio();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){faza--;gr1=0;cl2();w2=1;faza_func();audio();}// кнопка <<<<<< 

там где надо быстро, используйте cl1();

Это в самом конце скетча?

Попробовал так сделать - не помогло. Иногда при смене фазы с пульта параметр 180 меняется на 0, и затем самопроизвольно меняется на 180. Т.е. все осталось как было, только изменения чуть замедлились, delay=300.
Так же и в других параметрах, где выбор идет по кольцу, некоторые параметры самопроизвольно проскакивают, например после 1 должен быть 1,5, а он проскакивает далее на 2.
Использовал уже 2 типа ИК приемников.
С энкодера управление работает отлично, без таких сбоев.

37

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);irrecv.resume();time=millis();w=1;}// IR приемник - чтение, в мониторе порта отображаются коды кнопок

замените на

if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);irrecv.resume();time=millis();w=1;delay(200);}// IR приемник - чтение, в мониторе порта отображаются коды кнопок

38 (2020-03-16 18:29:14 отредактировано motoman)

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Заметил интересную особенность - если нажимать кнопку пульта однократно для изменения параметра фазы, например, то иногда параметр меняется с 0 на 180 и снова на 0. И при этом на Ардуино светодиод TX мигает дважды! Как будто кнопка пульта была нажата дважды! При нормальной работе светодиод TX при нажатии кнопки мигает однократно.
Это похоже на дребезг кнопок пульта. Такое иногда еще встречается при изменении громкости.
Можно ли как-то в скетче сделать работу кнопок ИК пульта более четкой?

39

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

liman324 пишет:

if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);irrecv.resume();time=millis();w=1;}// IR приемник - чтение, в мониторе порта отображаются коды кнопок

замените на

if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);irrecv.resume();time=millis();w=1;delay(200);}// IR приемник - чтение, в мониторе порта отображаются коды кнопок

Не помогло (((.

40 (2020-03-16 19:01:34 отредактировано motoman)

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

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

41

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

новая переменная:

long t_ir;

if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);irrecv.resume();time=millis();w=1;delay(200);t_ir=millis();}// IR приемник - чтение, в мониторе порта отображаются коды кнопок



    if(millis()-t_ir>300){
     if(ir.value==IR_3){faza++;gr1=1;gr2=0;cl2();w2=1;faza_func();audio();}// кнопка >
     if(ir.value==0xFFFFFFFF and gr1==1){faza++;gr2=0;cl2();w2=1;faza_func();audio();}// кнопка >>>>>>
     if(ir.value==IR_4){faza--;gr1=0;gr2=1;cl2();w2=1;faza_func();audio();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){faza--;gr1=0;cl2();w2=1;faza_func();audio();}// кнопка <<<<<<
     }

42

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

В каком месте скетча ее вставить?

43

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

unsigned long time,oldPosition  = -999,newPosition;

заменить на

  unsigned long time,oldPosition  = -999,newPosition,t_ir;




     if(ir.value==IR_3){faza++;gr1=1;gr2=0;cl2();w2=1;faza_func();audio();}// кнопка >
     if(ir.value==0xFFFFFFFF and gr1==1){faza++;gr2=0;cl2();w2=1;faza_func();audio();}// кнопка >>>>>>
     if(ir.value==IR_4){faza--;gr1=0;gr2=1;cl2();w2=1;faza_func();audio();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){faza--;gr1=0;cl2();w2=1;faza_func();audio();}// кнопка <<<<<<

заменить на

if(millis()-t_ir>300){
     if(ir.value==IR_3){faza++;gr1=1;gr2=0;cl2();w2=1;faza_func();audio();}// кнопка >
     if(ir.value==0xFFFFFFFF and gr1==1){faza++;gr2=0;cl2();w2=1;faza_func();audio();}// кнопка >>>>>>
     if(ir.value==IR_4){faza--;gr1=0;gr2=1;cl2();w2=1;faza_func();audio();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){faza--;gr1=0;cl2();w2=1;faza_func();audio();}// кнопка <<<<<<
     }


if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);irrecv.resume();time=millis();w=1;delay(200);}// IR приемник - чтение, в мониторе порта отображаются коды кнопок

заменить на

if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);irrecv.resume();time=millis();w=1;delay(200);t_ir=millis();}// IR приемник - чтение, в мониторе порта отображаются коды кнопок

44

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

unsigned long time,oldPosition  = -999,newPosition;

заменить на

  unsigned long time,oldPosition  = -999,newPosition,t_ir;

------ а это в каком месте скетча?

45

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Ну или просто добавить в конце новую переменную t_ir

unsigned long time,oldPosition  = -999,newPosition,t_ir;

46

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

liman324 пишет:

Ну или просто добавить в конце новую переменную t_ir

unsigned long time,oldPosition  = -999,newPosition,t_ir;

В самый конец скетча?http://forum.rcl-radio.ru/uploads/images/2020/03/2676135862c06f6a974a933638d6807e.jpg

47

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Нет, там где объявлены все переменные (в начале скетча):

byte a1[8] = {0b00000,0b10101,0b10101,0b10101,0b10101,0b10101,0b10101,0b00000};
  byte a2[8] = {0b00000,0b10100,0b10100,0b10100,0b10100,0b10100,0b10100,0b00000};
  byte a3[8] = {0b00000,0b10000,0b10000,0b10000,0b10000,0b10000,0b10000,0b00000}; 
  unsigned long time,oldPosition  = -999,newPosition,   t_ir  ;
  int gr1,gr2,vol,vol_d,z,z0,z1,w,w2,menu,treb,treb_d,middle,middle_d,bass,bass_d,in,mute,power,menu2=100,www,gain0,gain1,gain2,gain3,gain_d,lon_f,lon,lon_d;
  int out,vol_out,rf,lf,rt,lt,sab,treb_c,mid_c,bas_c,sab_f,treb_q,mid_q,bas_q,faza;

48

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

http://forum.rcl-radio.ru/uploads/images/2020/03/1adc3dd69f0fc81461a286787e87186d.jpg
Все сделал. Часть скетча с фазой должна выглядеть так?

49

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

http://forum.rcl-radio.ru/uploads/images/2020/03/bd4f101279ccfa711179b558b681c479.jpg
Вот крупнее масштаб

50 (2020-03-16 19:43:32 отредактировано motoman)

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Протестировал - и все так же, иногда отсылаются двойные команды, светодиод TX мигает дважды при однократном нажатии на кнопки ИК пульта. Причем расстояние от пульта до приемника роли не играет.