Re: PT2323+TDA7448
С включением странность началась. На столе все работало , я вам отписался, подключил к центру и все... Выключаю с пульта тв, через 5 сек он включается опять.... Чуть позже попробую опять на столе, перезвоню еще раз...
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
forum.rcl-radio.ru → Переделки → PT2323+TDA7448
Страницы Назад 1 … 8 9 10 11 12 13 14 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
С включением странность началась. На столе все работало , я вам отписался, подключил к центру и все... Выключаю с пульта тв, через 5 сек он включается опять.... Чуть позже попробую опять на столе, перезвоню еще раз...
Не совсем понял вопрос. У Вас блютуз-трансмитер имеет стерео выход? Зачем переводить аудиопроцессор в режим 2,1?
Трансмиттер имеет ВХОД. он принимает и по блютуз отдаёт в наушники
Вы с выхода хотите подать сигнал на аудиопроцессор? На вход AUX?
Взять сигнал с аудиопроцессора, подать на вход блютуз и отправить по блютузу на наушники
Фронтальные выходы аудиопроцессора PT2323 как правило при кодировании стерео в 6 канальный сигнал остаются без изменений. Так было на всех аудиопроцессорах которые я использовал.
Так что Вы может использовать фронтальные выходы аудиопроцессора как источник стерео сигнала для блютуз-трансмитера.
Ну тогда отлично. Я на следующей неделе постараюсь это попробовать , если все получится , попрошу вас помочь с кодом.
Сегодня чуть позже еще раз перепроверю почему перестало работать с пульта тв.
Какая-то непонятная ситуация происходит. Еще раз все перепроверил, перезалил.Выключаю с пульта тв, он через 5 сек включается и так раза 4,5...потом нормально...нажимаю опять и происходит тоже самое, тока наоборот, включаю он выключается...через такое же время и примерно тоска же раз.
Вот повторил опять:
15:18:58.730 -> 0xE0E040BF - мое нажатие,выключил
15:19:03.726 -> 0xE0E040BF - само появилось,включилось
15:19:10.894 -> 0xE0E040BF - мое нажатие, выключил
15:19:15.909 -> 0xE0E040BF - само появилось, включилось
15:19:20.902 -> 0xE0E040BF - мое нажатие и теперь держится, не включается
Как-то так...
Это родной пульт дает последовательность:
15:25:28.563 -> 0xFB6897
15:25:30.064 -> 0xFFFFFFFF - само появляется
15:25:37.197 -> 0xFB6897
15:25:38.824 -> 0xFFFFFFFF - само появляется
15:25:49.394 -> 0xFB6897
15:25:50.920 -> 0xFFFFFFFF - само появляется
15:26:01.864 -> 0xFB6897
15:26:03.490 -> 0xFFFFFFFF - само появляется
Нужно выяснить сколько раз отсылается код кнопки ТВ
Нажмите один раз на кнопку и в мониторе порта посмотрите кол-во повторов, я добавил счетчик повторов.
/*
#define IR1 0x33B844BB // INPUT
#define IR2 0x33B8946B // MUTE
#define IR3 0x33B858A7 // 3D
#define IR4 0x33B820DF // EQ
#define IR5 0x33B8A05F // UP VOL
#define IR6 0x33B8609F // DW VOL
#define IR7 0x33B800FF // STANDBY
#define IR8 0x33B814EB // TREBLE
#define IR9 0x33B840BF // BASS
#define IR10 0x33B824DB // FRONT
#define IR11 0x33B8A45B // REAR
#define IR12 0x33B8649B // CENTER
#define IR13 0x33B8E41B // SUB
#define IR14 0x33B854AB // OUTPUT
#define IR15 3772793023 // STANDBY TV
*/
#define IR1 16478351 // INPUT
#define IR2 16459991 // MUTE
#define IR3 16492631 // 3D
#define IR4 16494671 // EQ
#define IR5 16449791 // UP VOL
#define IR6 16482431 // DW VOL
#define IR7 16476311 // STANDBY
#define IR8 16474271 // TREBLE
#define IR9 16457951 // BASS
#define IR10 16470191 // FRONT
#define IR11 16453871 // REAR
#define IR12 16490591 // CENTER
#define IR13 16486511 // SUB
#define IR14 16462031 // OUTPUT
#define IR15 3772793023 // STANDBY TV
#define ENCODER 11 // BUTTON ENCODER
#define MUTE 12 // BUTTON MUTE
#define IN 10 // BUTTON INPUT
#define POWER 13 // BUTTON POWER
#define STAND_OUT 3 // OUTPUT STANDBY
#include <Wire.h>
#include <PT2322.h>
#include <PT2323.h>
#include <LiquidCrystal_I2C.h> // http://forum.rcl-radio.ru/misc.php?action=pan_download&item=45&download=1
#include <EEPROM.h>
#include <Encoder.h>
#include <MsTimer2.h>
#include <boarddefs.h>
#include <IRremote.h>
PT2322 pt; PT2323 pt0;
Encoder myEnc(8, 7);//CLK, DT подключение энкодера
IRrecv irrecv(9); // указываем вывод модуля IR приемника
decode_results ir;
LiquidCrystal_I2C lcd(0x27,16,2); // Устанавливаем дисплей
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 newPosition,time,oldPosition = -999,times_ir;
int menu,menu2,w,vol,vol_d,z,z0,z1,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;
bool g1,g2;
bool w1=1,power;
int att_front, att_rear;
int w_ir,iii;
void setup() {
Wire.begin();Serial.begin(9600);irrecv.enableIRIn(); // запускаем модуль IR
lcd.init();lcd.backlight();
lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
pinMode(ENCODER,INPUT_PULLUP); // menu кнопка энкодера
pinMode(MUTE,INPUT_PULLUP); // MUTE
pinMode(IN,INPUT_PULLUP); // IN
pinMode(POWER,INPUT_PULLUP); // STANDBY
pinMode(STAND_OUT,OUTPUT); // OUTPUT STANDBY AND MUTE
MsTimer2::set(2, to_Timer);MsTimer2::start();
vol = EEPROM.read(0)-79;in = EEPROM.read(1);bass = EEPROM.read(2)-7;mid = EEPROM.read(3)-7;treb = EEPROM.read(4)-7;
attfl = EEPROM.read(5)-14;attcn = EEPROM.read(7)-14;attsub = EEPROM.read(8)-14;ddd = EEPROM.read(9);tembro = EEPROM.read(10);
attfr = EEPROM.read(11)-14;atttl = EEPROM.read(12)-14;atttr = EEPROM.read(13)-14;
att_front = EEPROM.read(14)-14;att_rear = EEPROM.read(14)-14;
delay(500);
if(tembro==1){bass=4,mid=-2;treb=5;}
if(tembro==2){bass=-3,mid=3;treb=-2;}
if(tembro==3){bass=0,mid=0;treb=-2;}
if(tembro==4){bass=0,mid=0;treb=0;}
audio();audio_in();
}
void to_Timer(){newPosition = myEnc.read()/4;}
void loop(){
//// BUTTON //////////////////////////////
if(power==0){
if(mute==0){
if(digitalRead(ENCODER)==LOW){menu++;cl1();myEnc.write(0);time=millis();w=1;w1=1;if(menu>9){menu=0;}}// меню
if(digitalRead(IN)==LOW || ir.value==IR1){in++;g1=1;g2=0;menu=10;if(in>4){in=0;}if(in==3){in=4;}audio_in();cl1();time=millis();w=1;w1=1;}// in
if(ir.value==IR3){ddd++;menu=9;g1=1;g2=0;cl1();time=millis();w=1;ddd_conf();audio();}
if(ir.value==IR4){tembro++;menu=4;g1=1;g2=0;cl1();time=millis();w=1;w1=1;tembr();audio();}
if(ir.value==IR8){menu=3;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // treble
if(ir.value==IR9){menu=1;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // bass
if(ir.value==IR12){menu=7;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // center
if(ir.value==IR13){menu=8;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // sub
if(ir.value==IR10){menu=5;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // front
if(ir.value==IR11){menu=6;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // rear
} // mute
if((digitalRead(MUTE)==LOW || ir.value==IR2) && mute==0){mute=1;menu=100;g1=0;g2=0;cl1();time=millis();w=1;w1=1;audio();lcd.setCursor(6,0);lcd.print("MUTE");delay(500);}
if((digitalRead(MUTE)==LOW || ir.value==IR2) && mute==1){mute=0;menu=0; g1=0;g2=0;cl1();time=millis();w=1;w1=1;audio();}
}// power
if((digitalRead(POWER)==LOW || ir.value==IR7 || ir.value==IR15) && power==0){power=1;menu=100;g1=0;g2=0;cl1();time=millis();w=1;w1=1;mute=1;audio();lcd.setCursor(3,0);lcd.print("POWER OFF");delay(1000);lcd.noBacklight();cl1();}
if((digitalRead(POWER)==LOW || ir.value==IR7 || ir.value==IR15) && power==1){power=0;menu=0; g1=0;g2=0;cl1();time=millis();w=1;w1=1;mute=0;audio();lcd.backlight();lcd.setCursor(3,0);lcd.print("POWER ON ");delay(1000);cl1();}
if(mute==1||power==1){digitalWrite(STAND_OUT,HIGH);}else{digitalWrite(STAND_OUT,LOW);}// standby out pin D3
if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);time=millis();w=1;w1=1;irrecv.resume();}
if(ir.value==IR15){Serial.println(iii++);}
if(menu==10){
lcd.setCursor(0,0);lcd.print(" INPUT SELECTOR ");
switch(in){
case 0: lcd.setCursor(0,1);lcd.print(" IN ");lcd.print(in+1);break;
case 1: lcd.setCursor(0,1);lcd.print(" IN ");lcd.print(in+1);break;
case 2: lcd.setCursor(0,1);lcd.print(" IN ");lcd.print(in+1);break;
case 3: lcd.setCursor(0,1);lcd.print(" IN ");lcd.print(in+1);break;
case 4: lcd.setCursor(0,1);lcd.print(" 6 CH ");break;
}
}
//////////////////////////////////////// Громкость -79...0 дБ //////////////////////////////////////
if(menu==0){
if(ir.value==IR5){vol++;g1=1;g2=0;cl();time=millis();w=1;w1=1;vol_conf();audio();}// кнопка VOL+ 0xFFA857
if(ir.value==0xFFFFFFFF and g1==1){vol++;g2=0;cl();time=millis();w=1;w1=1;vol_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){vol--;g1=0;g2=1;cl();time=millis();w=1;w1=1;vol_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){vol--;g1=0;cl();time=millis();w=1;w1=1;vol_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
vol=vol+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;vol_conf();audio();}
lcd.setCursor(0,0);lcd.print("VOLUME ");
lcd.print(-79+vol);lcd.print(" ");lcd.setCursor(10,0);lcd.print("dB");vol_d=map(vol, 0,79, 0, 48);
switch(in){
case 0: lcd.print(" IN");lcd.print(in+1);break;
case 1: lcd.print(" IN");lcd.print(in+1);break;
case 2: lcd.print(" IN");lcd.print(in+1);break;
case 3: lcd.print(" IN");lcd.print(in+1);break;
case 4: lcd.print(" 6CH");break;
}
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=vol_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0,1);lcd.write((uint8_t)2);}}}
//////////////////////////////////////// Тембр НЧ +-14 дБ //////////////////////////////////////
if(menu==1){
if(ir.value==IR5){bass++;g1=1;g2=0;cl();time=millis();w=1;w1=1;bass_conf();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){bass++;g2=0;cl();time=millis();w=1;w1=1;bass_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){bass--;g1=0;g2=1;cl();time=millis();w=1;w1=1;bass_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){bass--;g1=0;cl();time=millis();w=1;w1=1;bass_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
bass=bass+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;bass_conf();audio();}
lcd.setCursor(0,0);lcd.print("BASS ");
lcd.print(" ");lcd.print(bass);lcd.print(" ");lcd.setCursor(13,0);bass_d=(bass+7)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=bass_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
//////////////////////////////////////// Тембр CЧ +-14 дБ //////////////////////////////////////
if(menu==2){
if(ir.value==IR5){mid++;g1=1;g2=0;cl();time=millis();w=1;w1=1;mid_conf();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){mid++;g2=0;cl();time=millis();w=1;w1=1;mid_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){mid--;g1=0;g2=1;cl();time=millis();w=1;w1=1;mid_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){mid--;g1=0;cl();time=millis();w=1;w1=1;mid_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
mid=mid+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;mid_conf();audio();}
lcd.setCursor(0,0);lcd.print("MIDDLE ");
lcd.print(" ");lcd.print(mid);lcd.print(" ");lcd.setCursor(13,0);mid_d=(mid+7)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=mid_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
//////////////////////////////////////// Тембр BЧ +-14 дБ //////////////////////////////////////
if(menu==3){
if(ir.value==IR5){treb++;g1=1;g2=0;cl();time=millis();w=1;w1=1;treb_conf();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){treb++;g2=0;cl();time=millis();w=1;w1=1;treb_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){treb--;g1=0;g2=1;cl();time=millis();w=1;w1=1;treb_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){treb--;g1=0;cl();time=millis();w=1;w1=1;treb_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
treb=treb+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;treb_conf();audio();}
lcd.setCursor(0,0);lcd.print("TREBLE ");
lcd.print(" ");lcd.print(treb);lcd.print(" ");lcd.setCursor(13,0);treb_d=(treb+7)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=treb_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
//////////////////////////////////// rock pop classic //////////////////////
if(menu==4){
if(ir.value==IR5){tembro++;g1=1;g2=0;cl();time=millis();w=1;w1=1;tembr();audio();}// кнопка VOL+
if(ir.value==IR6){tembro--;g1=0;g2=1;cl();time=millis();w=1;w1=1;tembr();audio();}// кнопка VOL-
if (newPosition != oldPosition) {
oldPosition = newPosition;
tembro=tembro+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;tembr();}
if(w1==1){w1=0;
lcd.setCursor(0,0);lcd.print(" Preset timbre ");
if(tembro==0){lcd.setCursor(0,1);lcd.print(" manual mode ");}
if(tembro==1){lcd.setCursor(0,1);lcd.print(" ROCK ");bass=4,mid=-2;treb=5;x=1;}
if(tembro==2){lcd.setCursor(0,1);lcd.print(" POP ");bass=-3,mid=3;treb=-2;x=1;}
if(tembro==3){lcd.setCursor(0,1);lcd.print(" CLASSIC ");bass=0,mid=0;treb=-2;x=1;}
if(tembro==4){lcd.setCursor(0,1);lcd.print(" default ");bass=0,mid=0;treb=0;x=1;}
if(x==1){audio();x=0;}
}}
/////////////////////// ATT FRONT ///////////////////
if(menu==5){
if(ir.value==IR5){att_front++;g1=1;g2=0;cl();time=millis();w=1;w1=1;att_front_conf();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){att_front++;g2=0;cl();time=millis();w=1;w1=1;att_front_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){att_front--;g1=0;g2=1;cl();time=millis();w=1;w1=1;att_front_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){att_front--;g1=0;cl();time=millis();w=1;w1=1;att_front_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att_front=att_front+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;att_front_conf();audio();}
lcd.setCursor(0,0);lcd.print("ATT FRONT ");
lcd.print(att_front);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attfl_d=(att_front+14)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=attfl_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
/////////////////////// ATT RAER ///////////////////
if(menu==6){
if(ir.value==IR5){att_rear++;g1=1;g2=0;cl();time=millis();w=1;w1=1;att_rear_conf();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){att_rear++;g2=0;cl();time=millis();w=1;w1=1;att_rear_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){att_rear--;g1=0;g2=1;cl();time=millis();w=1;w1=1;att_rear_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){att_rear--;g1=0;cl();time=millis();w=1;w1=1;att_rear_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att_rear=att_rear+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;att_rear_conf();audio();}
lcd.setCursor(0,0);lcd.print("ATT REAR ");
lcd.print(att_rear);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");atttl_d=(att_rear+14)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=atttl_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
/////////////////////// ATT CN ///////////////////
if(menu==7){
if(ir.value==IR5){attcn++;g1=1;g2=0;cl();time=millis();w=1;w1=1;att_cn();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){attcn++;g2=0;cl();time=millis();w=1;w1=1;att_cn();audio();}// кнопка >>>>>>
if(ir.value==IR6){attcn--;g1=0;g2=1;cl();time=millis();w=1;w1=1;att_cn();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){attcn--;g1=0;cl();time=millis();w=1;w1=1;att_cn();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
attcn=attcn+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;att_cn();audio();}
lcd.setCursor(0,0);lcd.print("ATT CN ");
lcd.print(" ");lcd.print(attcn);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attcn_d=(attcn+14)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=attcn_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
/////////////////////// ATT SUB ///////////////////
if(menu==8){
if(ir.value==IR5){attsub++;g1=1;g2=0;cl();time=millis();w=1;w1=1;att_sub();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){attsub++;g2=0;cl();time=millis();w=1;w1=1;att_sub();audio();}// кнопка >>>>>>
if(ir.value==IR6){attsub--;g1=0;g2=1;cl();time=millis();w=1;w1=1;att_sub();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){attsub--;g1=0;cl();time=millis();w=1;w1=1;att_sub();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
attsub=attsub+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;att_sub();audio();}
lcd.setCursor(0,0);lcd.print("ATT SUB ");
lcd.print(" ");lcd.print(attsub);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attsub_d=(attsub+14)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=attsub_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
//////////////////////////// 3d ///////////////////////////////////////////////
if(menu==9){
if (newPosition != oldPosition) {
oldPosition = newPosition;
ddd=ddd+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;ddd_conf();audio();}
lcd.setCursor(0,0);lcd.print(" Surround ");
lcd.setCursor(0,1);if(ddd==0){lcd.print(" 3D ON ");}else{lcd.print(" 3D OFF ");}}
//////////////////////////// EEPROM /////////////////////////////////////////////////////////////
if(millis()-time>5000&& w==1&&mute==0){
EEPROM.update(0,vol+79);EEPROM.update(1,in);EEPROM.update(2,bass+7);EEPROM.update(3,mid+7);EEPROM.update(4,treb+7);
EEPROM.update(5,attfl+14);EEPROM.update(7,attcn+14);EEPROM.update(8,attsub+14);EEPROM.update(9,ddd);EEPROM.update(10,tembro);
EEPROM.update(11,attfr+14);EEPROM.update(12,atttl+14);EEPROM.update(13,atttr+14);
EEPROM.update(14,att_front+14);EEPROM.update(15,att_rear+14);
menu=0;w=0;w1=1;cl();}
}//loop
void ddd_conf(){if(ddd<0){ddd=1;}if(ddd>1){ddd=0;}}
void att_sub(){if(attsub<-14){attsub=-14;}if(attsub>0){attsub=0;}}
void att_cn(){if(attcn<-14){attcn=-14;}if(attcn>0){attcn=0;}}
void att_rear_conf(){if(att_rear<-14){att_rear=-14;}if(att_rear>0){att_rear=0;}}
void att_front_conf(){if(att_front<-14){att_front=-14;}if(att_front>0){att_front=0;}}
void tembr(){if(tembro>4){tembro=0;}if(tembro<0){tembro=4;}}
void treb_conf(){if(treb<-7){treb=-7;}if(treb>7){treb=7;}}
void mid_conf(){if(mid<-7){mid=-7;}if(mid>7){mid=7;}}
void bass_conf(){if(bass<-7){bass=-7;}if(bass>7){bass=7;}}
void vol_conf(){if(vol>79){vol=79;}if(vol<0){vol=0;}}
void cl(){ir.value=0;delay(100);}
void cl1(){ir.value=0;delay(300);lcd.clear();}
void audio_in(){
pt0.setInput(in);
pt0.setMute(0,0,0,0,0,0,0);
pt0.setFeature(1,1);
}
void audio(){
pt.setFront_lk_att(abs(att_front));// att front L
pt.setFront_rk_att(abs(att_front));// att front R
pt.setCenter_att(abs(attcn)); // att center
pt.setRear_lk_att(abs(att_rear)); // att rear L
pt.setRear_rk_att(abs(att_rear)); // att rear R
pt.setSub_att(abs(attsub)); // att sub
pt.setFunc(mute,ddd,0); // mute,3d,тембр on/off
pt.setBass(bass); // BASS -14...0...14 dB (int -7...0...7)
pt.setMiddle(mid); // MIDDLE -14...0...14 dB (int -7...0...7)
pt.setTreble(treb); // TREBLE -14...0...14 dB (int -7...0...7)
pt.setVol(abs(vol)); // -79...0
}
Спасибо, проверю. Но я пробовал нажимал коротко один раз и сразу закрывал пульт рукой . Выше вы видели . Но скетч проверю.
Добрый вечер!
Данные из порта. Нажал один раз кнопку
20:12:21.295 -> 0xE0E040BF - мое нажатие
20:12:21.295 -> 0
20:12:23.122 -> 0xE0E040BF - появилось само
20:12:23.122 -> 1
Не уверен что получится, но попробуйте это скетч:
/*
#define IR1 0x33B844BB // INPUT
#define IR2 0x33B8946B // MUTE
#define IR3 0x33B858A7 // 3D
#define IR4 0x33B820DF // EQ
#define IR5 0x33B8A05F // UP VOL
#define IR6 0x33B8609F // DW VOL
#define IR7 0x33B800FF // STANDBY
#define IR8 0x33B814EB // TREBLE
#define IR9 0x33B840BF // BASS
#define IR10 0x33B824DB // FRONT
#define IR11 0x33B8A45B // REAR
#define IR12 0x33B8649B // CENTER
#define IR13 0x33B8E41B // SUB
#define IR14 0x33B854AB // OUTPUT
#define IR15 3772793023 // STANDBY TV
*/
#define IR1 16478351 // INPUT
#define IR2 16459991 // MUTE
#define IR3 16492631 // 3D
#define IR4 16494671 // EQ
#define IR5 16449791 // UP VOL
#define IR6 16482431 // DW VOL
#define IR7 16476311 // STANDBY
#define IR8 16474271 // TREBLE
#define IR9 16457951 // BASS
#define IR10 16470191 // FRONT
#define IR11 16453871 // REAR
#define IR12 16490591 // CENTER
#define IR13 16486511 // SUB
#define IR14 16462031 // OUTPUT
#define IR15 3772793023 // STANDBY TV
#define ENCODER 11 // BUTTON ENCODER
#define MUTE 12 // BUTTON MUTE
#define IN 10 // BUTTON INPUT
#define POWER 13 // BUTTON POWER
#define STAND_OUT 3 // OUTPUT STANDBY
#include <Wire.h>
#include <PT2322.h>
#include <PT2323.h>
#include <LiquidCrystal_I2C.h> // http://forum.rcl-radio.ru/misc.php?action=pan_download&item=45&download=1
#include <EEPROM.h>
#include <Encoder.h>
#include <MsTimer2.h>
#include <boarddefs.h>
#include <IRremote.h>
PT2322 pt; PT2323 pt0;
Encoder myEnc(8, 7);//CLK, DT подключение энкодера
IRrecv irrecv(9); // указываем вывод модуля IR приемника
decode_results ir;
LiquidCrystal_I2C lcd(0x27,16,2); // Устанавливаем дисплей
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 newPosition,time,oldPosition = -999,times_ir;
int menu,menu2,w,vol,vol_d,z,z0,z1,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;
bool g1,g2;
bool w1=1,power;
int att_front, att_rear;
int w_ir,iii;
void setup() {
Wire.begin();Serial.begin(9600);irrecv.enableIRIn(); // запускаем модуль IR
lcd.init();lcd.backlight();
lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
pinMode(ENCODER,INPUT_PULLUP); // menu кнопка энкодера
pinMode(MUTE,INPUT_PULLUP); // MUTE
pinMode(IN,INPUT_PULLUP); // IN
pinMode(POWER,INPUT_PULLUP); // STANDBY
pinMode(STAND_OUT,OUTPUT); // OUTPUT STANDBY AND MUTE
MsTimer2::set(2, to_Timer);MsTimer2::start();
vol = EEPROM.read(0)-79;in = EEPROM.read(1);bass = EEPROM.read(2)-7;mid = EEPROM.read(3)-7;treb = EEPROM.read(4)-7;
attfl = EEPROM.read(5)-14;attcn = EEPROM.read(7)-14;attsub = EEPROM.read(8)-14;ddd = EEPROM.read(9);tembro = EEPROM.read(10);
attfr = EEPROM.read(11)-14;atttl = EEPROM.read(12)-14;atttr = EEPROM.read(13)-14;
att_front = EEPROM.read(14)-14;att_rear = EEPROM.read(14)-14;
delay(500);
if(tembro==1){bass=4,mid=-2;treb=5;}
if(tembro==2){bass=-3,mid=3;treb=-2;}
if(tembro==3){bass=0,mid=0;treb=-2;}
if(tembro==4){bass=0,mid=0;treb=0;}
audio();audio_in();
}
void to_Timer(){newPosition = myEnc.read()/4;}
void loop(){
//// BUTTON //////////////////////////////
if(power==0){
if(mute==0){
if(digitalRead(ENCODER)==LOW){menu++;cl1();myEnc.write(0);time=millis();w=1;w1=1;if(menu>9){menu=0;}}// меню
if(digitalRead(IN)==LOW || ir.value==IR1){in++;g1=1;g2=0;menu=10;if(in>4){in=0;}if(in==3){in=4;}audio_in();cl1();time=millis();w=1;w1=1;}// in
if(ir.value==IR3){ddd++;menu=9;g1=1;g2=0;cl1();time=millis();w=1;ddd_conf();audio();}
if(ir.value==IR4){tembro++;menu=4;g1=1;g2=0;cl1();time=millis();w=1;w1=1;tembr();audio();}
if(ir.value==IR8){menu=3;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // treble
if(ir.value==IR9){menu=1;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // bass
if(ir.value==IR12){menu=7;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // center
if(ir.value==IR13){menu=8;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // sub
if(ir.value==IR10){menu=5;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // front
if(ir.value==IR11){menu=6;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // rear
} // mute
if((digitalRead(MUTE)==LOW || ir.value==IR2) && mute==0){mute=1;menu=100;g1=0;g2=0;cl1();time=millis();w=1;w1=1;audio();lcd.setCursor(6,0);lcd.print("MUTE");delay(500);}
if((digitalRead(MUTE)==LOW || ir.value==IR2) && mute==1){mute=0;menu=0; g1=0;g2=0;cl1();time=millis();w=1;w1=1;audio();}
}// power
if((digitalRead(POWER)==LOW || ir.value==IR7 || (ir.value==IR15 && iii==1) && power==0){power=1;iii=0;menu=100;g1=0;g2=0;cl1();time=millis();w=1;w1=1;mute=1;audio();lcd.setCursor(3,0);lcd.print("POWER OFF");delay(1000);lcd.noBacklight();cl1();}
if((digitalRead(POWER)==LOW || ir.value==IR7 || ir.value==IR15 && iii==1) && power==1){power=0;iii=0;menu=0; g1=0;g2=0;cl1();time=millis();w=1;w1=1;mute=0;audio();lcd.backlight();lcd.setCursor(3,0);lcd.print("POWER ON ");delay(1000);cl1();}
if(mute==1||power==1){digitalWrite(STAND_OUT,HIGH);}else{digitalWrite(STAND_OUT,LOW);}// standby out pin D3
if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);time=millis();w=1;w1=1;irrecv.resume();}
if(ir.value==IR15){iii++;}
if(menu==10){
lcd.setCursor(0,0);lcd.print(" INPUT SELECTOR ");
switch(in){
case 0: lcd.setCursor(0,1);lcd.print(" IN ");lcd.print(in+1);break;
case 1: lcd.setCursor(0,1);lcd.print(" IN ");lcd.print(in+1);break;
case 2: lcd.setCursor(0,1);lcd.print(" IN ");lcd.print(in+1);break;
case 3: lcd.setCursor(0,1);lcd.print(" IN ");lcd.print(in+1);break;
case 4: lcd.setCursor(0,1);lcd.print(" 6 CH ");break;
}
}
//////////////////////////////////////// Громкость -79...0 дБ //////////////////////////////////////
if(menu==0){
if(ir.value==IR5){vol++;g1=1;g2=0;cl();time=millis();w=1;w1=1;vol_conf();audio();}// кнопка VOL+ 0xFFA857
if(ir.value==0xFFFFFFFF and g1==1){vol++;g2=0;cl();time=millis();w=1;w1=1;vol_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){vol--;g1=0;g2=1;cl();time=millis();w=1;w1=1;vol_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){vol--;g1=0;cl();time=millis();w=1;w1=1;vol_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
vol=vol+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;vol_conf();audio();}
lcd.setCursor(0,0);lcd.print("VOLUME ");
lcd.print(-79+vol);lcd.print(" ");lcd.setCursor(10,0);lcd.print("dB");vol_d=map(vol, 0,79, 0, 48);
switch(in){
case 0: lcd.print(" IN");lcd.print(in+1);break;
case 1: lcd.print(" IN");lcd.print(in+1);break;
case 2: lcd.print(" IN");lcd.print(in+1);break;
case 3: lcd.print(" IN");lcd.print(in+1);break;
case 4: lcd.print(" 6CH");break;
}
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=vol_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0,1);lcd.write((uint8_t)2);}}}
//////////////////////////////////////// Тембр НЧ +-14 дБ //////////////////////////////////////
if(menu==1){
if(ir.value==IR5){bass++;g1=1;g2=0;cl();time=millis();w=1;w1=1;bass_conf();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){bass++;g2=0;cl();time=millis();w=1;w1=1;bass_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){bass--;g1=0;g2=1;cl();time=millis();w=1;w1=1;bass_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){bass--;g1=0;cl();time=millis();w=1;w1=1;bass_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
bass=bass+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;bass_conf();audio();}
lcd.setCursor(0,0);lcd.print("BASS ");
lcd.print(" ");lcd.print(bass);lcd.print(" ");lcd.setCursor(13,0);bass_d=(bass+7)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=bass_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
//////////////////////////////////////// Тембр CЧ +-14 дБ //////////////////////////////////////
if(menu==2){
if(ir.value==IR5){mid++;g1=1;g2=0;cl();time=millis();w=1;w1=1;mid_conf();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){mid++;g2=0;cl();time=millis();w=1;w1=1;mid_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){mid--;g1=0;g2=1;cl();time=millis();w=1;w1=1;mid_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){mid--;g1=0;cl();time=millis();w=1;w1=1;mid_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
mid=mid+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;mid_conf();audio();}
lcd.setCursor(0,0);lcd.print("MIDDLE ");
lcd.print(" ");lcd.print(mid);lcd.print(" ");lcd.setCursor(13,0);mid_d=(mid+7)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=mid_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
//////////////////////////////////////// Тембр BЧ +-14 дБ //////////////////////////////////////
if(menu==3){
if(ir.value==IR5){treb++;g1=1;g2=0;cl();time=millis();w=1;w1=1;treb_conf();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){treb++;g2=0;cl();time=millis();w=1;w1=1;treb_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){treb--;g1=0;g2=1;cl();time=millis();w=1;w1=1;treb_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){treb--;g1=0;cl();time=millis();w=1;w1=1;treb_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
treb=treb+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;treb_conf();audio();}
lcd.setCursor(0,0);lcd.print("TREBLE ");
lcd.print(" ");lcd.print(treb);lcd.print(" ");lcd.setCursor(13,0);treb_d=(treb+7)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=treb_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
//////////////////////////////////// rock pop classic //////////////////////
if(menu==4){
if(ir.value==IR5){tembro++;g1=1;g2=0;cl();time=millis();w=1;w1=1;tembr();audio();}// кнопка VOL+
if(ir.value==IR6){tembro--;g1=0;g2=1;cl();time=millis();w=1;w1=1;tembr();audio();}// кнопка VOL-
if (newPosition != oldPosition) {
oldPosition = newPosition;
tembro=tembro+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;tembr();}
if(w1==1){w1=0;
lcd.setCursor(0,0);lcd.print(" Preset timbre ");
if(tembro==0){lcd.setCursor(0,1);lcd.print(" manual mode ");}
if(tembro==1){lcd.setCursor(0,1);lcd.print(" ROCK ");bass=4,mid=-2;treb=5;x=1;}
if(tembro==2){lcd.setCursor(0,1);lcd.print(" POP ");bass=-3,mid=3;treb=-2;x=1;}
if(tembro==3){lcd.setCursor(0,1);lcd.print(" CLASSIC ");bass=0,mid=0;treb=-2;x=1;}
if(tembro==4){lcd.setCursor(0,1);lcd.print(" default ");bass=0,mid=0;treb=0;x=1;}
if(x==1){audio();x=0;}
}}
/////////////////////// ATT FRONT ///////////////////
if(menu==5){
if(ir.value==IR5){att_front++;g1=1;g2=0;cl();time=millis();w=1;w1=1;att_front_conf();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){att_front++;g2=0;cl();time=millis();w=1;w1=1;att_front_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){att_front--;g1=0;g2=1;cl();time=millis();w=1;w1=1;att_front_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){att_front--;g1=0;cl();time=millis();w=1;w1=1;att_front_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att_front=att_front+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;att_front_conf();audio();}
lcd.setCursor(0,0);lcd.print("ATT FRONT ");
lcd.print(att_front);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attfl_d=(att_front+14)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=attfl_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
/////////////////////// ATT RAER ///////////////////
if(menu==6){
if(ir.value==IR5){att_rear++;g1=1;g2=0;cl();time=millis();w=1;w1=1;att_rear_conf();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){att_rear++;g2=0;cl();time=millis();w=1;w1=1;att_rear_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){att_rear--;g1=0;g2=1;cl();time=millis();w=1;w1=1;att_rear_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){att_rear--;g1=0;cl();time=millis();w=1;w1=1;att_rear_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att_rear=att_rear+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;att_rear_conf();audio();}
lcd.setCursor(0,0);lcd.print("ATT REAR ");
lcd.print(att_rear);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");atttl_d=(att_rear+14)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=atttl_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
/////////////////////// ATT CN ///////////////////
if(menu==7){
if(ir.value==IR5){attcn++;g1=1;g2=0;cl();time=millis();w=1;w1=1;att_cn();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){attcn++;g2=0;cl();time=millis();w=1;w1=1;att_cn();audio();}// кнопка >>>>>>
if(ir.value==IR6){attcn--;g1=0;g2=1;cl();time=millis();w=1;w1=1;att_cn();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){attcn--;g1=0;cl();time=millis();w=1;w1=1;att_cn();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
attcn=attcn+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;att_cn();audio();}
lcd.setCursor(0,0);lcd.print("ATT CN ");
lcd.print(" ");lcd.print(attcn);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attcn_d=(attcn+14)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=attcn_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
/////////////////////// ATT SUB ///////////////////
if(menu==8){
if(ir.value==IR5){attsub++;g1=1;g2=0;cl();time=millis();w=1;w1=1;att_sub();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){attsub++;g2=0;cl();time=millis();w=1;w1=1;att_sub();audio();}// кнопка >>>>>>
if(ir.value==IR6){attsub--;g1=0;g2=1;cl();time=millis();w=1;w1=1;att_sub();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){attsub--;g1=0;cl();time=millis();w=1;w1=1;att_sub();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
attsub=attsub+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;att_sub();audio();}
lcd.setCursor(0,0);lcd.print("ATT SUB ");
lcd.print(" ");lcd.print(attsub);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attsub_d=(attsub+14)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=attsub_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
//////////////////////////// 3d ///////////////////////////////////////////////
if(menu==9){
if (newPosition != oldPosition) {
oldPosition = newPosition;
ddd=ddd+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;ddd_conf();audio();}
lcd.setCursor(0,0);lcd.print(" Surround ");
lcd.setCursor(0,1);if(ddd==0){lcd.print(" 3D ON ");}else{lcd.print(" 3D OFF ");}}
//////////////////////////// EEPROM /////////////////////////////////////////////////////////////
if(millis()-time>5000&& w==1&&mute==0){
EEPROM.update(0,vol+79);EEPROM.update(1,in);EEPROM.update(2,bass+7);EEPROM.update(3,mid+7);EEPROM.update(4,treb+7);
EEPROM.update(5,attfl+14);EEPROM.update(7,attcn+14);EEPROM.update(8,attsub+14);EEPROM.update(9,ddd);EEPROM.update(10,tembro);
EEPROM.update(11,attfr+14);EEPROM.update(12,atttl+14);EEPROM.update(13,atttr+14);
EEPROM.update(14,att_front+14);EEPROM.update(15,att_rear+14);
menu=0;w=0;w1=1;cl();}
}//loop
void ddd_conf(){if(ddd<0){ddd=1;}if(ddd>1){ddd=0;}}
void att_sub(){if(attsub<-14){attsub=-14;}if(attsub>0){attsub=0;}}
void att_cn(){if(attcn<-14){attcn=-14;}if(attcn>0){attcn=0;}}
void att_rear_conf(){if(att_rear<-14){att_rear=-14;}if(att_rear>0){att_rear=0;}}
void att_front_conf(){if(att_front<-14){att_front=-14;}if(att_front>0){att_front=0;}}
void tembr(){if(tembro>4){tembro=0;}if(tembro<0){tembro=4;}}
void treb_conf(){if(treb<-7){treb=-7;}if(treb>7){treb=7;}}
void mid_conf(){if(mid<-7){mid=-7;}if(mid>7){mid=7;}}
void bass_conf(){if(bass<-7){bass=-7;}if(bass>7){bass=7;}}
void vol_conf(){if(vol>79){vol=79;}if(vol<0){vol=0;}}
void cl(){ir.value=0;delay(100);}
void cl1(){ir.value=0;delay(300);lcd.clear();}
void audio_in(){
pt0.setInput(in);
pt0.setMute(0,0,0,0,0,0,0);
pt0.setFeature(1,1);
}
void audio(){
pt.setFront_lk_att(abs(att_front));// att front L
pt.setFront_rk_att(abs(att_front));// att front R
pt.setCenter_att(abs(attcn)); // att center
pt.setRear_lk_att(abs(att_rear)); // att rear L
pt.setRear_rk_att(abs(att_rear)); // att rear R
pt.setSub_att(abs(attsub)); // att sub
pt.setFunc(mute,ddd,0); // mute,3d,тембр on/off
pt.setBass(bass); // BASS -14...0...14 dB (int -7...0...7)
pt.setMiddle(mid); // MIDDLE -14...0...14 dB (int -7...0...7)
pt.setTreble(treb); // TREBLE -14...0...14 dB (int -7...0...7)
pt.setVol(abs(vol)); // -79...0
}
Опять по кругу включается и выключается
Опять по кругу включается и выключается
Это устранил. Но все равно. Выключаешь. Опять включается
Попробуйте задать кол-во повторов кода:
if((digitalRead(POWER)==LOW || ir.value==IR7 || (ir.value==IR15 && iii==1) && power==0){power=1;iii=0;menu=100;g1=0;g2=0;cl1();time=millis();w=1;w1=1;mute=1;audio();lcd.setCursor(3,0);lcd.print("POWER OFF");delay(1000);lcd.noBacklight();cl1();}
if((digitalRead(POWER)==LOW || ir.value==IR7 || ir.value==IR15 && iii==1) && power==1){power=0;iii=0;menu=0; g1=0;g2=0;cl1();time=millis();w=1;w1=1;mute=0;audio();lcd.backlight();lcd.setCursor(3,0);lcd.print("POWER ON ");delay(1000);cl1();}
Я выделил число повторов, поменяйте на 2, 3, 4 ...
Возможно получится.
Поставил 2. Вроде работает....боюсь сглазить....Потестю немного, отпишусь. Спасибо!
Еще вопрос. Когда система переходит в режим STBY подсветка экрана выключается, но надпись POWER OFF на экране остается. Ее практически не видно, не проблема, просто хотел спросить это не страшно для экрана, не надо ее стирать после выключения?
И еще, для общего развития можете просто пояснить. Вы сказали, что вывод русского шрифта будет сложен и не имеет смысла и нужен экран с поддержкой кириллицы. Разве не достаточно библиотеки LCD_1602_RUS для этого? У меня он поддерживает кириллицу. Спасибо
Еще вопрос. Когда система переходит в режим STBY подсветка экрана выключается, но надпись POWER OFF на экране остается. Ее практически не видно, не проблема, просто хотел спросить это не страшно для экрана, не надо ее стирать после выключения?
Для экрана не вредно.
И еще, для общего развития можете просто пояснить. Вы сказали, что вывод русского шрифта будет сложен и не имеет смысла и нужен экран с поддержкой кириллицы. Разве не достаточно библиотеки LCD_1602_RUS для этого? У меня он поддерживает кириллицу. Спасибо
Я не пользовался этой библиотекой, есть ограничение, в частности в скетче используются 3 байта памяти экрана под спец символы (это полосочки громкости), библиотека так же использует эти ячейки памяти для генерации русских символов которые не возможно заменить английским шрифтом. Всего в экране выделено 8 байт под спец символы.
Но если у Вас русифицированный экран, то Вам такая библиотека не нужна, в памяти экрана на месте китайских символов прошиты русские. Но как их применить я не знаю (скорее всего в lcd.print можно просто писать по русски).
Поставил 2. Вроде работает....боюсь сглазить....Потестю немного, отпишусь. Спасибо!
Увы... ... После загрузки один раз выключается. Потом включаю, а он выключается...
Добрый вечер! Есть у нас шанс добить проблему?
Попробуйте этот код:
/*
#define IR1 0x33B844BB // INPUT
#define IR2 0x33B8946B // MUTE
#define IR3 0x33B858A7 // 3D
#define IR4 0x33B820DF // EQ
#define IR5 0x33B8A05F // UP VOL
#define IR6 0x33B8609F // DW VOL
#define IR7 0x33B800FF // STANDBY
#define IR8 0x33B814EB // TREBLE
#define IR9 0x33B840BF // BASS
#define IR10 0x33B824DB // FRONT
#define IR11 0x33B8A45B // REAR
#define IR12 0x33B8649B // CENTER
#define IR13 0x33B8E41B // SUB
#define IR14 0x33B854AB // OUTPUT
#define IR15 3772793023 // STANDBY TV
*/
#define IR1 16478351 // INPUT
#define IR2 16459991 // MUTE
#define IR3 16492631 // 3D
#define IR4 16494671 // EQ
#define IR5 16449791 // UP VOL
#define IR6 16482431 // DW VOL
#define IR7 16476311 // STANDBY
#define IR8 16474271 // TREBLE
#define IR9 16457951 // BASS
#define IR10 16470191 // FRONT
#define IR11 16453871 // REAR
#define IR12 16490591 // CENTER
#define IR13 16486511 // SUB
#define IR14 16462031 // OUTPUT
#define IR15 3772793023 // STANDBY TV
#define ENCODER 11 // BUTTON ENCODER
#define MUTE 12 // BUTTON MUTE
#define IN 10 // BUTTON INPUT
#define POWER 13 // BUTTON POWER
#define STAND_OUT 3 // OUTPUT STANDBY
#include <Wire.h>
#include <PT2322.h>
#include <PT2323.h>
#include <LiquidCrystal_I2C.h> // http://forum.rcl-radio.ru/misc.php?action=pan_download&item=45&download=1
#include <EEPROM.h>
#include <Encoder.h>
#include <MsTimer2.h>
#include <boarddefs.h>
#include <IRremote.h>
PT2322 pt; PT2323 pt0;
Encoder myEnc(8, 7);//CLK, DT подключение энкодера
IRrecv irrecv(9); // указываем вывод модуля IR приемника
decode_results ir;
LiquidCrystal_I2C lcd(0x27,16,2); // Устанавливаем дисплей
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 newPosition,time,oldPosition = -999,times_ir;
int menu,menu2,w,vol,vol_d,z,z0,z1,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;
bool g1,g2;
bool w1=1,power;
int att_front, att_rear;
int w_ir,iii;
void setup() {
Wire.begin();Serial.begin(9600);irrecv.enableIRIn(); // запускаем модуль IR
lcd.init();lcd.backlight();
lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
pinMode(ENCODER,INPUT_PULLUP); // menu кнопка энкодера
pinMode(MUTE,INPUT_PULLUP); // MUTE
pinMode(IN,INPUT_PULLUP); // IN
pinMode(POWER,INPUT_PULLUP); // STANDBY
pinMode(STAND_OUT,OUTPUT); // OUTPUT STANDBY AND MUTE
MsTimer2::set(2, to_Timer);MsTimer2::start();
vol = EEPROM.read(0)-79;in = EEPROM.read(1);bass = EEPROM.read(2)-7;mid = EEPROM.read(3)-7;treb = EEPROM.read(4)-7;
attfl = EEPROM.read(5)-14;attcn = EEPROM.read(7)-14;attsub = EEPROM.read(8)-14;ddd = EEPROM.read(9);tembro = EEPROM.read(10);
attfr = EEPROM.read(11)-14;atttl = EEPROM.read(12)-14;atttr = EEPROM.read(13)-14;
att_front = EEPROM.read(14)-14;att_rear = EEPROM.read(14)-14;
delay(500);
if(tembro==1){bass=4,mid=-2;treb=5;}
if(tembro==2){bass=-3,mid=3;treb=-2;}
if(tembro==3){bass=0,mid=0;treb=-2;}
if(tembro==4){bass=0,mid=0;treb=0;}
audio();audio_in();
}
void to_Timer(){newPosition = myEnc.read()/4;}
void loop(){
//// BUTTON //////////////////////////////
if(power==0){
if(mute==0){
if(digitalRead(ENCODER)==LOW){menu++;cl1();myEnc.write(0);time=millis();w=1;w1=1;if(menu>9){menu=0;}}// меню
if(digitalRead(IN)==LOW || ir.value==IR1){in++;g1=1;g2=0;menu=10;if(in>4){in=0;}if(in==3){in=4;}audio_in();cl1();time=millis();w=1;w1=1;}// in
if(ir.value==IR3){ddd++;menu=9;g1=1;g2=0;cl1();time=millis();w=1;ddd_conf();audio();}
if(ir.value==IR4){tembro++;menu=4;g1=1;g2=0;cl1();time=millis();w=1;w1=1;tembr();audio();}
if(ir.value==IR8){menu=3;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // treble
if(ir.value==IR9){menu=1;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // bass
if(ir.value==IR12){menu=7;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // center
if(ir.value==IR13){menu=8;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // sub
if(ir.value==IR10){menu=5;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // front
if(ir.value==IR11){menu=6;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // rear
} // mute
if((digitalRead(MUTE)==LOW || ir.value==IR2) && mute==0){mute=1;menu=100;g1=0;g2=0;cl1();time=millis();w=1;w1=1;audio();lcd.setCursor(6,0);lcd.print("MUTE");delay(500);}
if((digitalRead(MUTE)==LOW || ir.value==IR2) && mute==1){mute=0;menu=0; g1=0;g2=0;cl1();time=millis();w=1;w1=1;audio();}
}// power
if(mute==1||power==1){digitalWrite(STAND_OUT,HIGH);}else{digitalWrite(STAND_OUT,LOW);}// standby out pin D3
if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);time=millis();w=1;w1=1;irrecv.resume();}
if(ir.value==IR15){iii++;times_ir=millis();}
if((digitalRead(POWER)==LOW || ir.value==IR7 || (ir.value==IR15 && iii==1)) && power==0){power=1;menu=100;g1=0;g2=0;cl1();time=millis();w=1;w1=1;mute=1;audio();lcd.setCursor(3,0);lcd.print("POWER OFF");delay(1000);lcd.noBacklight();cl1();}
if((digitalRead(POWER)==LOW || ir.value==IR7 || (ir.value==IR15 && iii==1)) && power==1){power=0;menu=0; g1=0;g2=0;cl1();time=millis();w=1;w1=1;mute=0;audio();lcd.backlight();lcd.setCursor(3,0);lcd.print("POWER ON ");delay(1000);cl1();}
if(millis()-times_ir>2000){iii=0;}
if(menu==10){
lcd.setCursor(0,0);lcd.print(" INPUT SELECTOR ");
switch(in){
case 0: lcd.setCursor(0,1);lcd.print(" IN ");lcd.print(in+1);break;
case 1: lcd.setCursor(0,1);lcd.print(" IN ");lcd.print(in+1);break;
case 2: lcd.setCursor(0,1);lcd.print(" IN ");lcd.print(in+1);break;
case 3: lcd.setCursor(0,1);lcd.print(" IN ");lcd.print(in+1);break;
case 4: lcd.setCursor(0,1);lcd.print(" 6 CH ");break;
}
}
//////////////////////////////////////// Громкость -79...0 дБ //////////////////////////////////////
if(menu==0){
if(ir.value==IR5){vol++;g1=1;g2=0;cl();time=millis();w=1;w1=1;vol_conf();audio();}// кнопка VOL+ 0xFFA857
if(ir.value==0xFFFFFFFF and g1==1){vol++;g2=0;cl();time=millis();w=1;w1=1;vol_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){vol--;g1=0;g2=1;cl();time=millis();w=1;w1=1;vol_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){vol--;g1=0;cl();time=millis();w=1;w1=1;vol_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
vol=vol+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;vol_conf();audio();}
lcd.setCursor(0,0);lcd.print("VOLUME ");
lcd.print(-79+vol);lcd.print(" ");lcd.setCursor(10,0);lcd.print("dB");vol_d=map(vol, 0,79, 0, 48);
switch(in){
case 0: lcd.print(" IN");lcd.print(in+1);break;
case 1: lcd.print(" IN");lcd.print(in+1);break;
case 2: lcd.print(" IN");lcd.print(in+1);break;
case 3: lcd.print(" IN");lcd.print(in+1);break;
case 4: lcd.print(" 6CH");break;
}
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=vol_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0,1);lcd.write((uint8_t)2);}}}
//////////////////////////////////////// Тембр НЧ +-14 дБ //////////////////////////////////////
if(menu==1){
if(ir.value==IR5){bass++;g1=1;g2=0;cl();time=millis();w=1;w1=1;bass_conf();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){bass++;g2=0;cl();time=millis();w=1;w1=1;bass_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){bass--;g1=0;g2=1;cl();time=millis();w=1;w1=1;bass_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){bass--;g1=0;cl();time=millis();w=1;w1=1;bass_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
bass=bass+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;bass_conf();audio();}
lcd.setCursor(0,0);lcd.print("BASS ");
lcd.print(" ");lcd.print(bass);lcd.print(" ");lcd.setCursor(13,0);bass_d=(bass+7)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=bass_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
//////////////////////////////////////// Тембр CЧ +-14 дБ //////////////////////////////////////
if(menu==2){
if(ir.value==IR5){mid++;g1=1;g2=0;cl();time=millis();w=1;w1=1;mid_conf();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){mid++;g2=0;cl();time=millis();w=1;w1=1;mid_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){mid--;g1=0;g2=1;cl();time=millis();w=1;w1=1;mid_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){mid--;g1=0;cl();time=millis();w=1;w1=1;mid_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
mid=mid+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;mid_conf();audio();}
lcd.setCursor(0,0);lcd.print("MIDDLE ");
lcd.print(" ");lcd.print(mid);lcd.print(" ");lcd.setCursor(13,0);mid_d=(mid+7)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=mid_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
//////////////////////////////////////// Тембр BЧ +-14 дБ //////////////////////////////////////
if(menu==3){
if(ir.value==IR5){treb++;g1=1;g2=0;cl();time=millis();w=1;w1=1;treb_conf();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){treb++;g2=0;cl();time=millis();w=1;w1=1;treb_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){treb--;g1=0;g2=1;cl();time=millis();w=1;w1=1;treb_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){treb--;g1=0;cl();time=millis();w=1;w1=1;treb_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
treb=treb+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;treb_conf();audio();}
lcd.setCursor(0,0);lcd.print("TREBLE ");
lcd.print(" ");lcd.print(treb);lcd.print(" ");lcd.setCursor(13,0);treb_d=(treb+7)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=treb_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
//////////////////////////////////// rock pop classic //////////////////////
if(menu==4){
if(ir.value==IR5){tembro++;g1=1;g2=0;cl();time=millis();w=1;w1=1;tembr();audio();}// кнопка VOL+
if(ir.value==IR6){tembro--;g1=0;g2=1;cl();time=millis();w=1;w1=1;tembr();audio();}// кнопка VOL-
if (newPosition != oldPosition) {
oldPosition = newPosition;
tembro=tembro+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;tembr();}
if(w1==1){w1=0;
lcd.setCursor(0,0);lcd.print(" Preset timbre ");
if(tembro==0){lcd.setCursor(0,1);lcd.print(" manual mode ");}
if(tembro==1){lcd.setCursor(0,1);lcd.print(" ROCK ");bass=4,mid=-2;treb=5;x=1;}
if(tembro==2){lcd.setCursor(0,1);lcd.print(" POP ");bass=-3,mid=3;treb=-2;x=1;}
if(tembro==3){lcd.setCursor(0,1);lcd.print(" CLASSIC ");bass=0,mid=0;treb=-2;x=1;}
if(tembro==4){lcd.setCursor(0,1);lcd.print(" default ");bass=0,mid=0;treb=0;x=1;}
if(x==1){audio();x=0;}
}}
/////////////////////// ATT FRONT ///////////////////
if(menu==5){
if(ir.value==IR5){att_front++;g1=1;g2=0;cl();time=millis();w=1;w1=1;att_front_conf();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){att_front++;g2=0;cl();time=millis();w=1;w1=1;att_front_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){att_front--;g1=0;g2=1;cl();time=millis();w=1;w1=1;att_front_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){att_front--;g1=0;cl();time=millis();w=1;w1=1;att_front_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att_front=att_front+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;att_front_conf();audio();}
lcd.setCursor(0,0);lcd.print("ATT FRONT ");
lcd.print(att_front);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attfl_d=(att_front+14)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=attfl_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
/////////////////////// ATT RAER ///////////////////
if(menu==6){
if(ir.value==IR5){att_rear++;g1=1;g2=0;cl();time=millis();w=1;w1=1;att_rear_conf();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){att_rear++;g2=0;cl();time=millis();w=1;w1=1;att_rear_conf();audio();}// кнопка >>>>>>
if(ir.value==IR6){att_rear--;g1=0;g2=1;cl();time=millis();w=1;w1=1;att_rear_conf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){att_rear--;g1=0;cl();time=millis();w=1;w1=1;att_rear_conf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att_rear=att_rear+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;att_rear_conf();audio();}
lcd.setCursor(0,0);lcd.print("ATT REAR ");
lcd.print(att_rear);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");atttl_d=(att_rear+14)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=atttl_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
/////////////////////// ATT CN ///////////////////
if(menu==7){
if(ir.value==IR5){attcn++;g1=1;g2=0;cl();time=millis();w=1;w1=1;att_cn();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){attcn++;g2=0;cl();time=millis();w=1;w1=1;att_cn();audio();}// кнопка >>>>>>
if(ir.value==IR6){attcn--;g1=0;g2=1;cl();time=millis();w=1;w1=1;att_cn();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){attcn--;g1=0;cl();time=millis();w=1;w1=1;att_cn();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
attcn=attcn+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;att_cn();audio();}
lcd.setCursor(0,0);lcd.print("ATT CN ");
lcd.print(" ");lcd.print(attcn);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attcn_d=(attcn+14)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=attcn_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
/////////////////////// ATT SUB ///////////////////
if(menu==8){
if(ir.value==IR5){attsub++;g1=1;g2=0;cl();time=millis();w=1;w1=1;att_sub();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){attsub++;g2=0;cl();time=millis();w=1;w1=1;att_sub();audio();}// кнопка >>>>>>
if(ir.value==IR6){attsub--;g1=0;g2=1;cl();time=millis();w=1;w1=1;att_sub();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){attsub--;g1=0;cl();time=millis();w=1;w1=1;att_sub();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
attsub=attsub+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;att_sub();audio();}
lcd.setCursor(0,0);lcd.print("ATT SUB ");
lcd.print(" ");lcd.print(attsub);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attsub_d=(attsub+14)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=attsub_d;z++,z1++){if(z1>2){z1=0;z0++;}
if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(" ");}}
if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}}
//////////////////////////// 3d ///////////////////////////////////////////////
if(menu==9){
if (newPosition != oldPosition) {
oldPosition = newPosition;
ddd=ddd+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;ddd_conf();audio();}
lcd.setCursor(0,0);lcd.print(" Surround ");
lcd.setCursor(0,1);if(ddd==0){lcd.print(" 3D ON ");}else{lcd.print(" 3D OFF ");}}
//////////////////////////// EEPROM /////////////////////////////////////////////////////////////
if(millis()-time>5000&& w==1&&mute==0){
EEPROM.update(0,vol+79);EEPROM.update(1,in);EEPROM.update(2,bass+7);EEPROM.update(3,mid+7);EEPROM.update(4,treb+7);
EEPROM.update(5,attfl+14);EEPROM.update(7,attcn+14);EEPROM.update(8,attsub+14);EEPROM.update(9,ddd);EEPROM.update(10,tembro);
EEPROM.update(11,attfr+14);EEPROM.update(12,atttl+14);EEPROM.update(13,atttr+14);
EEPROM.update(14,att_front+14);EEPROM.update(15,att_rear+14);
menu=0;w=0;w1=1;cl();}
}//loop
void ddd_conf(){if(ddd<0){ddd=1;}if(ddd>1){ddd=0;}}
void att_sub(){if(attsub<-14){attsub=-14;}if(attsub>0){attsub=0;}}
void att_cn(){if(attcn<-14){attcn=-14;}if(attcn>0){attcn=0;}}
void att_rear_conf(){if(att_rear<-14){att_rear=-14;}if(att_rear>0){att_rear=0;}}
void att_front_conf(){if(att_front<-14){att_front=-14;}if(att_front>0){att_front=0;}}
void tembr(){if(tembro>4){tembro=0;}if(tembro<0){tembro=4;}}
void treb_conf(){if(treb<-7){treb=-7;}if(treb>7){treb=7;}}
void mid_conf(){if(mid<-7){mid=-7;}if(mid>7){mid=7;}}
void bass_conf(){if(bass<-7){bass=-7;}if(bass>7){bass=7;}}
void vol_conf(){if(vol>79){vol=79;}if(vol<0){vol=0;}}
void cl(){ir.value=0;delay(100);}
void cl1(){ir.value=0;delay(300);lcd.clear();}
void audio_in(){
pt0.setInput(in);
pt0.setMute(0,0,0,0,0,0,0);
pt0.setFeature(1,1);
}
void audio(){
pt.setFront_lk_att(abs(att_front));// att front L
pt.setFront_rk_att(abs(att_front));// att front R
pt.setCenter_att(abs(attcn)); // att center
pt.setRear_lk_att(abs(att_rear)); // att rear L
pt.setRear_rk_att(abs(att_rear)); // att rear R
pt.setSub_att(abs(attsub)); // att sub
pt.setFunc(mute,ddd,0); // mute,3d,тембр on/off
pt.setBass(bass); // BASS -14...0...14 dB (int -7...0...7)
pt.setMiddle(mid); // MIDDLE -14...0...14 dB (int -7...0...7)
pt.setTreble(treb); // TREBLE -14...0...14 dB (int -7...0...7)
pt.setVol(abs(vol)); // -79...0
}
При первом включении вроде как заработало. Выключил, само не включилось. Когда включил, потом опять выключил, то примерно секунд через пять он включется.
В этой части кода ничего не надо исправить? Может тут конфликт какой-нибудь?
//////////////////////////// EEPROM /////////////////////////////////////////////////////////////
if(millis()-time>5000&& w==1&&mute==0){
Исправьте:
if(millis()-time>5000&& w==1&&mute==0){
if(millis()-time>5000&& w==1&&mute==0 && power==0){
Тоже самое...
Страницы Назад 1 … 8 9 10 11 12 13 14 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
forum.rcl-radio.ru → Переделки → PT2323+TDA7448
Форум работает на PunBB, при поддержке Informer Technologies, Inc
|