Re: PT2323+TDA7448
Все работает!
Маленький ньюанс появился, если выбрать вход блютус с пульта, то на дисплее на мгновение пропадает изображение, с энкодера такого не наблюдается
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
forum.rcl-radio.ru → Переделки → PT2323+TDA7448
Страницы Назад 1 … 5 6 7 8 9 … 14 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Все работает!
Маленький ньюанс появился, если выбрать вход блютус с пульта, то на дисплее на мгновение пропадает изображение, с энкодера такого не наблюдается
#define IR_8 0xFF21DE // Кнопка MENU (input sel)
#define IR_3 0xFF09F6 // Кнопка > (Vol+)
#define IR_4 0xFF29D6 // Кнопка < (Vol-)
#define MUTE 0xFF41BE // Кнопка MUTE
#define MODE 0xFF619E // Кнопка MODE
#define IR_5 0xFF8976 // Кнопка CH+
#define IR_6 0xFF6996 // Кнопка CH-
#define IR_7 0xFFA15E // Кнопка Reset
#define STBY 0xFF01FE // Кнопка Standby
#define TU_1 0xFF916E // Кнопка Tune-
#define TU_2 0xFF51AE // Кнопка Tune+
//#define BRIG_H 250
//#define BRIG_L 0
#include <Wire.h>
#include <PT2323.h>
#include <TDA7448.h>
#include <Encoder.h>
#include <EEPROM.h>
#include <MsTimer2.h>
#include <boarddefs.h>
#include <IRremote.h>
#include <LiquidCrystal.h>
TDA7448 tda;
PT2323 pt;
IRrecv irrecv(10); // указываем вывод модуля IR приемника
decode_results ir;
LiquidCrystal lcd(7, 6, 2, 3, 4, 5);// RS,E,D4,D5,D6,D7 подключение LCD
Encoder myEnc(9, 8);//CLK, DT подключение энкодера
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,times,oldPosition = -999;
int x,i,w,w1,menu,menu1=0,vol,vol_d,z,z0,z1,gr1,gr2,in,att1,att2,att3,att4,att5,att6;
bool mute,power,flag;
void setup(){
Serial.begin(9600);Wire.begin();irrecv.enableIRIn(); // запускаем модуль IR
lcd.begin(8, 2);
pinMode(A0,OUTPUT); // питание блютус
pinMode(13,INPUT); // КНОПКА ЭНКОДЕРA
pinMode(12,OUTPUT); // выход управления MUTE
pinMode(11,OUTPUT); // output LED
digitalWrite(11,HIGH);
MsTimer2::set(3, to_Timer);MsTimer2::start();
lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
lcd.setCursor(0,0);lcd.print("TDA 7448");
lcd.setCursor(0,1);lcd.print("PT 2323");
delay(1000);cl();
digitalWrite(12,HIGH); // mute, чтобы избежать хлопка при включении
lcd.setCursor(0,0);lcd.print("SOFT-RWR");
delay(1000);
if(EEPROM.read(100)!=0){for(i=0;i<101;i++){EEPROM.update(i,0);}}// очистка памяти при первом включении
vol = EEPROM.read(0)-79;in = EEPROM.read(1);
att1 = EEPROM.read(11);att2 = EEPROM.read(12);att3 = EEPROM.read(13);att4 = EEPROM.read(14);att5 = EEPROM.read(15);att6 = EEPROM.read(16);
audio_tda();audio_pt();
delay(1500);cl();
digitalWrite(12,LOW); // выключение mute
}
void loop(){
//if(in==1){digitalWrite(A0,HIGH);}else{digitalWrite(A0,LOW);} //вкл-выкл питания блютус
if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);times=millis();w=1;w1=1;irrecv.resume();} // IR приемник
if(ir.value==0){gr1=0;gr2=0;}
if(mute==0&&power==0){
if(digitalRead(13)==HIGH&&menu!=100){menu++;x++;cl();myEnc.write(0);times=millis();w=1;w1=1;if(menu>1){menu=0;}} // меню input
if(x>5){menu1=1;menu=100;lcd.setCursor(0,0);lcd.print("ATTENUAT");delay(1000);}
if(digitalRead(13)==LOW){x=0;}
if(digitalRead(13)==HIGH&&menu==100){menu1++;cl();myEnc.write(0);times=millis();w=1;w1=1;if(menu1>6){menu1=1;}}
//if(ir.value==IR_8){menu++;gr1=0;gr2=0;cl();times=millis();w=1;w1=1;if(menu>1){menu=0;}} // меню input
if(ir.value==IR_7){menu=0;menu1=0;cl();times=millis();w=1;w1=1;} // кнопка reset
if(menu==0||menu1==1){
if(ir.value==IR_8){menu1=0;menu=1;gr1=0;gr2=0;cl();times=millis();w=1;w1=1;}} // меню input
if(menu==1){
if(ir.value==IR_8){in++;flag=1;menu1=0;cl();times=millis();w=1;w1=1;in_func();audio_tda();audio_pt();}} // input - переключение входов с пульта
if(ir.value==MODE){menu1=1;menu=100;cl();lcd.setCursor(0,0);lcd.print("ATTENUAT");delay(1000);}
if(ir.value==IR_5&&menu==100){menu1++;cl();myEnc.write(0);times=millis();w=1;w1=1;if(menu1>6){menu1=1;}}
if(ir.value==IR_6&&menu==100){menu1--;cl();myEnc.write(0);times=millis();w=1;w1=1;if(menu1<1){menu1=6;}}
}
if(ir.value==MUTE&&mute==0 && power==0){mute=1;gr1=0;gr2=0;cl1();menu=100;menu1=0;lcd.setCursor(0,0);lcd.print(" MUTE ");digitalWrite(12,HIGH);}
if(ir.value==MUTE&&mute==1 && power==0){mute=0;gr1=0;gr2=0;cl1();menu=0;digitalWrite(12,LOW);}
//////////////////////// POWER //////////////////////////////////////////////////////////////////////////////////////
if(ir.value==STBY&&power==0){power=1;gr1=0;gr2=0;cl();menu=100;menu1=0;lcd.setCursor(0,0);lcd.print("POWEROFF");digitalWrite(12,HIGH);digitalWrite(11,LOW);delay(2000);cl();}
if(ir.value==STBY&&power==1){power=0;gr1=0;gr2=0;cl();menu=0;cl();lcd.setCursor(0,0);lcd.print("POWER ON");digitalWrite(12,LOW);digitalWrite(11,HIGH);delay(2000);cl();}
/////////////////////// VOLUME ///////////////////////////////////////////////////////////////////////////////////////
if(menu==0){
if(ir.value==IR_3){vol++;gr1=1;gr2=0;cl1();w1=1;vol_func();audio_tda();audio_pt();}// кнопка >
if(ir.value==0xFFFFFFFF and gr1==1){vol++;gr2=0;cl1();w1=1;vol_func();audio_tda();audio_pt();}// кнопка >>>>>>
if(ir.value==IR_4){vol--;gr1=0;gr2=1;cl1();w1=1;vol_func();audio_tda();audio_pt();}// кнопка <
if(ir.value==0xFFFFFFFF and gr2==1){vol--;gr1=0;cl1();w1=1;vol_func();audio_tda();audio_pt();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
vol=vol+newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;vol_func();audio_tda();audio_pt();}
lcd.setCursor(0,0);lcd.print(" VOL");
lcd.print(" ");lcd.print(79+vol);lcd.print(" ");lcd.setCursor(5,0);lcd.print(" ");vol_d=map(abs(vol), 79,0, 0,24);
if(w1==1){
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);}w1=0;}}
/////////////////// INPUT ////////////////////////////////////////////////////////////////////////////////////////
if(in==1&&flag==1){flag=0;digitalWrite(12,HIGH);digitalWrite(A0,HIGH);print_in();delay(500);digitalWrite(12,LOW);}// включили блютуc
if(in!=1){digitalWrite(A0,LOW);} // выключили блютус если вход не IN1
if(menu==1){
//if(ir.value==IR_3){in++;gr1=1;gr2=0;cl1();w1=1;in_func();audio_tda();audio_pt();}// кнопка >
//if(ir.value==0xFFFFFFFF and gr1==1){in++;gr2=0;cl1();w1=1;in_func();audio_tda();audio_pt();}// кнопка >>>>>>
//if(ir.value==IR_4){in--;gr1=0;gr2=1;cl1();w1=1;in_func();audio_tda();audio_pt();}// кнопка <
//if(ir.value==0xFFFFFFFF and gr2==1){in--;gr1=0;cl1();w1=1;in_func();audio_tda();audio_pt();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
in=in+newPosition;myEnc.write(0);newPosition=0;times=millis();flag=1;w=1;w1=1;in_func();audio_tda();audio_pt();}
print_in();
}
///////////////////////////////////// Att //////////////////////////////////////////
if(menu1==1){
if(ir.value==IR_4){att1++;gr1=1;gr2=0;cl1();w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;};audio_tda();audio_pt();}// кнопка >
if(ir.value==0xFFFFFFFF and gr1==1){att1++;gr2=0;cl1();w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;};audio_tda();audio_pt();}// кнопка >>>>>>
if(ir.value==IR_3){att1--;gr1=0;gr2=1;cl1();w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;};audio_tda();audio_pt();}// кнопка <
if(ir.value==0xFFFFFFFF and gr2==1){att1--;gr1=0;cl1();w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;};audio_tda();audio_pt();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att1=att1-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;}audio_tda();audio_pt();}
lcd.setCursor(0,0);lcd.print("ATTENUAT");
lcd.setCursor(0,1);lcd.print("FL ");lcd.setCursor(3,1);
if(-att1>-1){lcd.print(" 0 ");}
else{lcd.print(-att1);if(-att1>-10){lcd.print(" ");}}
lcd.setCursor(6,1);lcd.print("dB");
}
if(menu1==2){
if(ir.value==IR_4){att2++;gr1=1;gr2=0;cl1();w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;};audio_tda();audio_pt();}// кнопка >
if(ir.value==0xFFFFFFFF and gr1==1){att2++;gr2=0;cl1();w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;};audio_tda();audio_pt();}// кнопка >>>>>>
if(ir.value==IR_3){att2--;gr1=0;gr2=1;cl1();w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;};audio_tda();audio_pt();}// кнопка <
if(ir.value==0xFFFFFFFF and gr2==1){att2--;gr1=0;cl1();w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;};audio_tda();audio_pt();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att2=att2-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;}audio_tda();audio_pt();}
lcd.setCursor(0,0);lcd.print("ATTENUAT");
lcd.setCursor(0,1);lcd.print("FR ");lcd.setCursor(3,1);
if(-att2>-1){lcd.print(" 0 ");}
else{lcd.print(-att2);if(-att2>-10){lcd.print(" ");}}
lcd.setCursor(6,1);lcd.print("dB");
}
if(menu1==3){
if(ir.value==IR_4){att3++;gr1=1;gr2=0;cl1();w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;};audio_tda();audio_pt();}// кнопка >
if(ir.value==0xFFFFFFFF and gr1==1){att3++;gr2=0;cl1();w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;};audio_tda();audio_pt();}// кнопка >>>>>>
if(ir.value==IR_3){att3--;gr1=0;gr2=1;cl1();w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;};audio_tda();audio_pt();}// кнопка <
if(ir.value==0xFFFFFFFF and gr2==1){att3--;gr1=0;cl1();w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;};audio_tda();audio_pt();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att3=att3-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;}audio_tda();audio_pt();}
lcd.setCursor(0,0);lcd.print("ATTENUAT");
lcd.setCursor(0,1);lcd.print("CT ");lcd.setCursor(3,1);
if(-att3>-1){lcd.print(" 0 ");}
else{lcd.print(-att3);if(-att3>-10){lcd.print(" ");}}
lcd.setCursor(6,1);lcd.print("dB");
}
if(menu1==4){
if(ir.value==IR_4){att4++;gr1=1;gr2=0;cl1();w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;};audio_tda();audio_pt();}// кнопка >
if(ir.value==0xFFFFFFFF and gr1==1){att4++;gr2=0;cl1();w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;};audio_tda();audio_pt();}// кнопка >>>>>>
if(ir.value==IR_3){att4--;gr1=0;gr2=1;cl1();w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;};audio_tda();audio_pt();}// кнопка <
if(ir.value==0xFFFFFFFF and gr2==1){att4--;gr1=0;cl1();w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;};audio_tda();audio_pt();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att4=att4-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;}audio_tda();audio_pt();}
lcd.setCursor(0,0);lcd.print("ATTENUAT");
lcd.setCursor(0,1);lcd.print("SW ");lcd.setCursor(3,1);
if(-att4>-1){lcd.print(" 0 ");}
else{lcd.print(-att4);if(-att4>-10){lcd.print(" ");}}
lcd.setCursor(6,1);lcd.print("dB");
}
if(menu1==5){
if(ir.value==IR_4){att5++;gr1=1;gr2=0;cl1();w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;};audio_tda();audio_pt();}// кнопка >
if(ir.value==0xFFFFFFFF and gr1==1){att5++;gr2=0;cl1();w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;};audio_tda();audio_pt();}// кнопка >>>>>>
if(ir.value==IR_3){att5--;gr1=0;gr2=1;cl1();w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;};audio_tda();audio_pt();}// кнопка <
if(ir.value==0xFFFFFFFF and gr2==1){att5--;gr1=0;cl1();w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;};audio_tda();audio_pt();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att5=att5-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;}audio_tda();audio_pt();}
lcd.setCursor(0,0);lcd.print("ATTENUAT");
lcd.setCursor(0,1);lcd.print("SL ");lcd.setCursor(3,1);
if(-att5>-1){lcd.print(" 0 ");}
else{lcd.print(-att5);if(-att5>-10){lcd.print(" ");}}
lcd.setCursor(6,1);lcd.print("dB");
}
if(menu1==6){
if(ir.value==IR_4){att6++;gr1=1;gr2=0;cl1();w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;};audio_tda();audio_pt();}// кнопка >
if(ir.value==0xFFFFFFFF and gr1==1){att6++;gr2=0;cl1();w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;};audio_tda();audio_pt();}// кнопка >>>>>>
if(ir.value==IR_3){att6--;gr1=0;gr2=1;cl1();w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;};audio_tda();audio_pt();}// кнопка <
if(ir.value==0xFFFFFFFF and gr2==1){att6--;gr1=0;cl1();w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;};audio_tda();audio_pt();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att6=att6-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;}audio_tda();audio_pt();}
lcd.setCursor(0,0);lcd.print("ATTENUAT");
lcd.setCursor(0,1);lcd.print("SR ");lcd.setCursor(3,1);
if(-att6>-1){lcd.print(" 0 ");}
else{lcd.print(-att6);if(-att6>-10){lcd.print(" ");}}
lcd.setCursor(6,1);lcd.print("dB");
}
///////////////// EEPROM ///////////////////////////////////////////////////////////////////////////////////////
if(millis()-times>10000 && w==1){
EEPROM.update(0,vol+79);
EEPROM.update(1,in);
EEPROM.update(11,att1);EEPROM.update(12,att2);EEPROM.update(13,att3);EEPROM.update(14,att4);EEPROM.update(15,att5);EEPROM.update(16,att6);
menu=0;cl();w=0,w1=1;menu1=0;}
}//loop
void print_in(){
lcd.setCursor(0,0);lcd.print(" INPUT ");
lcd.setCursor(0,1);
switch(in){case 0: lcd.print(" AUX "); break;
case 1: lcd.print(" BT "); break;
case 2: lcd.print(" --- "); break;
case 3: lcd.print(" ----- "); break;
case 4: lcd.print(" 5.1 "); break;}} // пропишите свои названия входов
void in_func(){if(in<0){in=4;}if(in>4){in=0;}}
void vol_func(){if(vol>0){vol=0;}if(vol<-79){vol=-79;}}
void cl(){ir.value=0;delay(300);lcd.clear();}
void cl1(){ir.value=0;delay(100);}
void audio_pt(){
pt.setInput(in); // входы 1...4 (0...3) или 6 моно (4)
pt.setMute(0,0,0,0,0,0,0);
pt.setFeature(0,1); // дополнительные функции 0...3
// 0 - Enhanced Surround Function Active
// 1 - Enhanced Surround Function Disabled
// 0 - Mixed Channel (0dB) Setup
// 1 - Mixed Channel (+6dB) Setup
}
void audio_tda(){
tda.setAtt(1,vol-att1);// 0 макс громк, -79(79) мин громк
tda.setAtt(2,vol-att2);
tda.setAtt(3,vol-att3);
tda.setAtt(4,vol-att4);
tda.setAtt(5,vol-att5);
tda.setAtt(6,vol-att6);
}
void to_Timer(){newPosition = myEnc.read()/4;}
#define IR_8 0xFF21DE // Кнопка MENU (input sel)
#define IR_3 0xFF09F6 // Кнопка > (Vol+)
#define IR_4 0xFF29D6 // Кнопка < (Vol-)
#define MUTE 0xFF41BE // Кнопка MUTE
#define MODE 0xFF619E // Кнопка MODE
#define IR_5 0xFF8976 // Кнопка CH+
#define IR_6 0xFF6996 // Кнопка CH-
#define IR_7 0xFFA15E // Кнопка Reset
#define STBY 0xFF01FE // Кнопка Standby
#define TU_1 0xFF916E // Кнопка Tune-
#define TU_2 0xFF51AE // Кнопка Tune+
//#define BRIG_H 250
//#define BRIG_L 0
#include <Wire.h>
#include <PT2323.h>
#include <TDA7448.h>
#include <Encoder.h>
#include <EEPROM.h>
#include <MsTimer2.h>
#include <boarddefs.h>
#include <IRremote.h>
#include <LiquidCrystal.h>
TDA7448 tda;
PT2323 pt;
IRrecv irrecv(10); // указываем вывод модуля IR приемника
decode_results ir;
LiquidCrystal lcd(7, 6, 2, 3, 4, 5);// RS,E,D4,D5,D6,D7 подключение LCD
Encoder myEnc(9, 8);//CLK, DT подключение энкодера
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,times,oldPosition = -999;
int x,i,w,w1,menu,menu1=0,vol,vol_d,z,z0,z1,gr1,gr2,in,att1,att2,att3,att4,att5,att6;
bool mute,power,flag;
void setup(){
Serial.begin(9600);Wire.begin();irrecv.enableIRIn(); // запускаем модуль IR
lcd.begin(8, 2);
pinMode(A0,OUTPUT); // питание блютус
pinMode(13,INPUT); // КНОПКА ЭНКОДЕРA
pinMode(12,OUTPUT); // выход управления MUTE
pinMode(11,OUTPUT); // output LED
digitalWrite(11,HIGH);
MsTimer2::set(3, to_Timer);MsTimer2::start();
lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
lcd.setCursor(0,0);lcd.print("TDA 7448");
lcd.setCursor(0,1);lcd.print("PT 2323");
delay(1000);cl();
digitalWrite(12,HIGH); // mute, чтобы избежать хлопка при включении
lcd.setCursor(0,0);lcd.print("SOFT-RWR");
delay(1000);
if(EEPROM.read(100)!=0){for(i=0;i<101;i++){EEPROM.update(i,0);}}// очистка памяти при первом включении
vol = EEPROM.read(0)-79;in = EEPROM.read(1);
att1 = EEPROM.read(11);att2 = EEPROM.read(12);att3 = EEPROM.read(13);att4 = EEPROM.read(14);att5 = EEPROM.read(15);att6 = EEPROM.read(16);
audio_tda();audio_pt();
delay(1500);cl();
digitalWrite(12,LOW); // выключение mute
}
void loop(){
//if(in==1){digitalWrite(A0,HIGH);}else{digitalWrite(A0,LOW);} //вкл-выкл питания блютус
if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);times=millis();w=1;w1=1;irrecv.resume();} // IR приемник
if(ir.value==0){gr1=0;gr2=0;}
if(mute==0&&power==0){
if(digitalRead(13)==HIGH&&menu!=100){menu++;x++;cl();myEnc.write(0);times=millis();w=1;w1=1;if(menu>1){menu=0;}} // меню input
if(x>5){menu1=1;menu=100;lcd.setCursor(0,0);lcd.print("ATTENUAT");delay(1000);}
if(digitalRead(13)==LOW){x=0;}
if(digitalRead(13)==HIGH&&menu==100){menu1++;cl();myEnc.write(0);times=millis();w=1;w1=1;if(menu1>6){menu1=1;}}
//if(ir.value==IR_8){menu++;gr1=0;gr2=0;cl();times=millis();w=1;w1=1;if(menu>1){menu=0;}} // меню input
if(ir.value==IR_7){menu=0;menu1=0;cl();times=millis();w=1;w1=1;} // кнопка reset
if(menu==0||menu1==1){
if(ir.value==IR_8){menu1=0;menu=1;gr1=0;gr2=0;ir.value=0;delay(100);lcd.clear();times=millis();w=1;w1=1;}} // меню input
if(menu==1){
if(ir.value==IR_8){in++;flag=1;menu1=0;cl();times=millis();w=1;w1=1;in_func();audio_tda();audio_pt();}} // input - переключение входов с пульта
if(ir.value==MODE){menu1=1;menu=100;cl();lcd.setCursor(0,0);lcd.print("ATTENUAT");delay(1000);}
if(ir.value==IR_5&&menu==100){menu1++;cl();myEnc.write(0);times=millis();w=1;w1=1;if(menu1>6){menu1=1;}}
if(ir.value==IR_6&&menu==100){menu1--;cl();myEnc.write(0);times=millis();w=1;w1=1;if(menu1<1){menu1=6;}}
}
if(ir.value==MUTE&&mute==0 && power==0){mute=1;gr1=0;gr2=0;cl1();menu=100;menu1=0;lcd.setCursor(0,0);lcd.print(" MUTE ");digitalWrite(12,HIGH);}
if(ir.value==MUTE&&mute==1 && power==0){mute=0;gr1=0;gr2=0;cl1();menu=0;digitalWrite(12,LOW);}
//////////////////////// POWER //////////////////////////////////////////////////////////////////////////////////////
if(ir.value==STBY&&power==0){power=1;gr1=0;gr2=0;cl();menu=100;menu1=0;lcd.setCursor(0,0);lcd.print("POWEROFF");digitalWrite(12,HIGH);digitalWrite(11,LOW);delay(2000);cl();}
if(ir.value==STBY&&power==1){power=0;gr1=0;gr2=0;cl();menu=0;cl();lcd.setCursor(0,0);lcd.print("POWER ON");digitalWrite(12,LOW);digitalWrite(11,HIGH);delay(2000);cl();}
/////////////////////// VOLUME ///////////////////////////////////////////////////////////////////////////////////////
if(menu==0){
if(ir.value==IR_3){vol++;gr1=1;gr2=0;cl1();w1=1;vol_func();audio_tda();audio_pt();}// кнопка >
if(ir.value==0xFFFFFFFF and gr1==1){vol++;gr2=0;cl1();w1=1;vol_func();audio_tda();audio_pt();}// кнопка >>>>>>
if(ir.value==IR_4){vol--;gr1=0;gr2=1;cl1();w1=1;vol_func();audio_tda();audio_pt();}// кнопка <
if(ir.value==0xFFFFFFFF and gr2==1){vol--;gr1=0;cl1();w1=1;vol_func();audio_tda();audio_pt();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
vol=vol+newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;vol_func();audio_tda();audio_pt();}
lcd.setCursor(0,0);lcd.print(" VOL");
lcd.print(" ");lcd.print(79+vol);lcd.print(" ");lcd.setCursor(5,0);lcd.print(" ");vol_d=map(abs(vol), 79,0, 0,24);
if(w1==1){
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);}w1=0;}}
/////////////////// INPUT ////////////////////////////////////////////////////////////////////////////////////////
if(in==1&&flag==1){flag=0;digitalWrite(12,HIGH);digitalWrite(A0,HIGH);print_in();delay(500);digitalWrite(12,LOW);}// включили блютуc
if(in!=1){digitalWrite(A0,LOW);} // выключили блютус если вход не IN1
if(menu==1){
//if(ir.value==IR_3){in++;gr1=1;gr2=0;cl1();w1=1;in_func();audio_tda();audio_pt();}// кнопка >
//if(ir.value==0xFFFFFFFF and gr1==1){in++;gr2=0;cl1();w1=1;in_func();audio_tda();audio_pt();}// кнопка >>>>>>
//if(ir.value==IR_4){in--;gr1=0;gr2=1;cl1();w1=1;in_func();audio_tda();audio_pt();}// кнопка <
//if(ir.value==0xFFFFFFFF and gr2==1){in--;gr1=0;cl1();w1=1;in_func();audio_tda();audio_pt();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
in=in+newPosition;myEnc.write(0);newPosition=0;times=millis();flag=1;w=1;w1=1;in_func();audio_tda();audio_pt();}
print_in();
}
///////////////////////////////////// Att //////////////////////////////////////////
if(menu1==1){
if(ir.value==IR_4){att1++;gr1=1;gr2=0;cl1();w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;};audio_tda();audio_pt();}// кнопка >
if(ir.value==0xFFFFFFFF and gr1==1){att1++;gr2=0;cl1();w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;};audio_tda();audio_pt();}// кнопка >>>>>>
if(ir.value==IR_3){att1--;gr1=0;gr2=1;cl1();w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;};audio_tda();audio_pt();}// кнопка <
if(ir.value==0xFFFFFFFF and gr2==1){att1--;gr1=0;cl1();w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;};audio_tda();audio_pt();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att1=att1-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;}audio_tda();audio_pt();}
lcd.setCursor(0,0);lcd.print("ATTENUAT");
lcd.setCursor(0,1);lcd.print("FL ");lcd.setCursor(3,1);
if(-att1>-1){lcd.print(" 0 ");}
else{lcd.print(-att1);if(-att1>-10){lcd.print(" ");}}
lcd.setCursor(6,1);lcd.print("dB");
}
if(menu1==2){
if(ir.value==IR_4){att2++;gr1=1;gr2=0;cl1();w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;};audio_tda();audio_pt();}// кнопка >
if(ir.value==0xFFFFFFFF and gr1==1){att2++;gr2=0;cl1();w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;};audio_tda();audio_pt();}// кнопка >>>>>>
if(ir.value==IR_3){att2--;gr1=0;gr2=1;cl1();w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;};audio_tda();audio_pt();}// кнопка <
if(ir.value==0xFFFFFFFF and gr2==1){att2--;gr1=0;cl1();w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;};audio_tda();audio_pt();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att2=att2-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;}audio_tda();audio_pt();}
lcd.setCursor(0,0);lcd.print("ATTENUAT");
lcd.setCursor(0,1);lcd.print("FR ");lcd.setCursor(3,1);
if(-att2>-1){lcd.print(" 0 ");}
else{lcd.print(-att2);if(-att2>-10){lcd.print(" ");}}
lcd.setCursor(6,1);lcd.print("dB");
}
if(menu1==3){
if(ir.value==IR_4){att3++;gr1=1;gr2=0;cl1();w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;};audio_tda();audio_pt();}// кнопка >
if(ir.value==0xFFFFFFFF and gr1==1){att3++;gr2=0;cl1();w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;};audio_tda();audio_pt();}// кнопка >>>>>>
if(ir.value==IR_3){att3--;gr1=0;gr2=1;cl1();w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;};audio_tda();audio_pt();}// кнопка <
if(ir.value==0xFFFFFFFF and gr2==1){att3--;gr1=0;cl1();w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;};audio_tda();audio_pt();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att3=att3-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;}audio_tda();audio_pt();}
lcd.setCursor(0,0);lcd.print("ATTENUAT");
lcd.setCursor(0,1);lcd.print("CT ");lcd.setCursor(3,1);
if(-att3>-1){lcd.print(" 0 ");}
else{lcd.print(-att3);if(-att3>-10){lcd.print(" ");}}
lcd.setCursor(6,1);lcd.print("dB");
}
if(menu1==4){
if(ir.value==IR_4){att4++;gr1=1;gr2=0;cl1();w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;};audio_tda();audio_pt();}// кнопка >
if(ir.value==0xFFFFFFFF and gr1==1){att4++;gr2=0;cl1();w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;};audio_tda();audio_pt();}// кнопка >>>>>>
if(ir.value==IR_3){att4--;gr1=0;gr2=1;cl1();w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;};audio_tda();audio_pt();}// кнопка <
if(ir.value==0xFFFFFFFF and gr2==1){att4--;gr1=0;cl1();w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;};audio_tda();audio_pt();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att4=att4-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;}audio_tda();audio_pt();}
lcd.setCursor(0,0);lcd.print("ATTENUAT");
lcd.setCursor(0,1);lcd.print("SW ");lcd.setCursor(3,1);
if(-att4>-1){lcd.print(" 0 ");}
else{lcd.print(-att4);if(-att4>-10){lcd.print(" ");}}
lcd.setCursor(6,1);lcd.print("dB");
}
if(menu1==5){
if(ir.value==IR_4){att5++;gr1=1;gr2=0;cl1();w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;};audio_tda();audio_pt();}// кнопка >
if(ir.value==0xFFFFFFFF and gr1==1){att5++;gr2=0;cl1();w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;};audio_tda();audio_pt();}// кнопка >>>>>>
if(ir.value==IR_3){att5--;gr1=0;gr2=1;cl1();w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;};audio_tda();audio_pt();}// кнопка <
if(ir.value==0xFFFFFFFF and gr2==1){att5--;gr1=0;cl1();w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;};audio_tda();audio_pt();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att5=att5-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;}audio_tda();audio_pt();}
lcd.setCursor(0,0);lcd.print("ATTENUAT");
lcd.setCursor(0,1);lcd.print("SL ");lcd.setCursor(3,1);
if(-att5>-1){lcd.print(" 0 ");}
else{lcd.print(-att5);if(-att5>-10){lcd.print(" ");}}
lcd.setCursor(6,1);lcd.print("dB");
}
if(menu1==6){
if(ir.value==IR_4){att6++;gr1=1;gr2=0;cl1();w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;};audio_tda();audio_pt();}// кнопка >
if(ir.value==0xFFFFFFFF and gr1==1){att6++;gr2=0;cl1();w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;};audio_tda();audio_pt();}// кнопка >>>>>>
if(ir.value==IR_3){att6--;gr1=0;gr2=1;cl1();w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;};audio_tda();audio_pt();}// кнопка <
if(ir.value==0xFFFFFFFF and gr2==1){att6--;gr1=0;cl1();w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;};audio_tda();audio_pt();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
att6=att6-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;}audio_tda();audio_pt();}
lcd.setCursor(0,0);lcd.print("ATTENUAT");
lcd.setCursor(0,1);lcd.print("SR ");lcd.setCursor(3,1);
if(-att6>-1){lcd.print(" 0 ");}
else{lcd.print(-att6);if(-att6>-10){lcd.print(" ");}}
lcd.setCursor(6,1);lcd.print("dB");
}
///////////////// EEPROM ///////////////////////////////////////////////////////////////////////////////////////
if(millis()-times>10000 && w==1){
EEPROM.update(0,vol+79);
EEPROM.update(1,in);
EEPROM.update(11,att1);EEPROM.update(12,att2);EEPROM.update(13,att3);EEPROM.update(14,att4);EEPROM.update(15,att5);EEPROM.update(16,att6);
menu=0;cl();w=0,w1=1;menu1=0;}
}//loop
void print_in(){
lcd.setCursor(0,0);lcd.print(" INPUT ");
lcd.setCursor(0,1);
switch(in){case 0: lcd.print(" AUX "); break;
case 1: lcd.print(" BT "); break;
case 2: lcd.print(" --- "); break;
case 3: lcd.print(" ----- "); break;
case 4: lcd.print(" 5.1 "); break;}} // пропишите свои названия входов
void in_func(){if(in<0){in=4;}if(in>4){in=0;}}
void vol_func(){if(vol>0){vol=0;}if(vol<-79){vol=-79;}}
void cl(){ir.value=0;delay(300);lcd.clear();}
void cl1(){ir.value=0;delay(100);}
void audio_pt(){
pt.setInput(in); // входы 1...4 (0...3) или 6 моно (4)
pt.setMute(0,0,0,0,0,0,0);
pt.setFeature(0,1); // дополнительные функции 0...3
// 0 - Enhanced Surround Function Active
// 1 - Enhanced Surround Function Disabled
// 0 - Mixed Channel (0dB) Setup
// 1 - Mixed Channel (+6dB) Setup
}
void audio_tda(){
tda.setAtt(1,vol-att1);// 0 макс громк, -79(79) мин громк
tda.setAtt(2,vol-att2);
tda.setAtt(3,vol-att3);
tda.setAtt(4,vol-att4);
tda.setAtt(5,vol-att5);
tda.setAtt(6,vol-att6);
}
void to_Timer(){newPosition = myEnc.read()/4;}
Все работает! Еще раз спасибо огромное!
Добрый вечер! Воплотил наконец я все в железе. Но к сожалению опять начались проблемы. Перед началом всего, я запустил ваш скетч на проверку аудиопроцессоров. Все прекрасно работало. После подключения всего в кучу, ничего опять не работает .
Я проверил саму плату ардуино. Моргал светодиодом. Плата рабочая, шьется, все ок.Проверил работу Ик-приемника и энкодера. Все работает. Но ни экран, ни аудиопроцессоры не запустились. Я попробовал все ваши рекомендации, которые вы мне давали первый раз, но увы....Сканер показывает, что устройство не подключено...
Пробовал отключить экран от шины и запустить процессоры...увы....
Прошу опять вашего совета....куда рыть...
Все железо собрано по следующей схеме
Загрузите I2C сканер http://forum.rcl-radio.ru/viewtopic.php?id=64
Если адрес не определен установите подтягивающие резисторы к +5В на шину I2C по 4,7 кОм на SDA SCL
Вы скетч используете с I2C подключением экрана?
Попробую поставить резисторы. Я их не ставил до этого и все работало . Да , скетч использую с l2c подключением.
Добрый вечер! Вопрос удалось решить! Проблема была в плате ардуинки. Между пином А4 и самой микросхемой пропадал почему-то контакт. Дорожка на вид была целая.Короче говоря все прекрасно работает! экран пишет, звук идет . Можно переходить к продолжению работы.
По поводу подтягивающих резисторов. Я не ставил их, все работает. На оригинальной плате процессоров стоят последовательно на каждую ногу по резистору.
Если при такой схеме все же вы рекомендуете поставить подтягивающие, поставлю.
И так:
1.Режим STBY и MUTE в оригинальной схеме реализован следующим образом. При включении одного из режимов, на управляющем пине микропроцессора появляется 1. Учитывая, что усилитель центрального канала не имеет управляющей ноги для этих режимов, то еще видимо реализуется программный MUTE. Поэтому надо, что бы в режиме MUTE и STBY на пине D3 появлялась 1, включался MUTE программно, а дополнительно в режиме STBY выключался экран. КАк-то так...
2.Режимов эквалайзера, думаю трех достаточно будет. В оригинальном есть режим DISCO, он наиболее приятный. Вот только бы узнать его параметры....подберу сам потом на слух.
3.Я думаю использовать энергонезависимую память смысла нет, нужно просто будет сделать при включении установку параметров по умолчанию.
4. У меня используются три стерео входа(0,1,2) и шестиканальный.
5. Если можно, сделать вывод уровней не в дб, а в цифрах (-7...7)
Ну пока для начала так.
Я уже немного запутался на каком мы этапе. Вроде как у Вас нет еще скетча, только тестовые.
У вас по схеме нет кнопки энкодера, я пока уберу кнопку ST и заменю ее на кнопку энкодера, протестируйте скетч, на его базе будем работать.
Пока только проверьте как работает скетч, регулировки аудиопроцессоров, переключение входов и тд.
#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(7, 8);//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;
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;
int g1,g2,inn;
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(11,INPUT_PULLUP); // menu кнопка энкодера
pinMode(12,INPUT_PULLUP); // MUTE
pinMode(10,INPUT_PULLUP); // IN
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;
delay(500);
audio();audio_in();
}
void to_Timer(){newPosition = myEnc.read()/4;}
void loop(){delay(10);
if(digitalRead(11)==LOW){menu++;cl1();myEnc.write(0);time=millis();w=1;if(menu>11){menu=0;}}// меню
//////////// mute ////////////////////////
if(mute==1&&(digitalRead(12)==LOW)){mute=0;menu=0;audio();cl1();}
if(digitalRead(12)==LOW){mute=1;menu=100;audio();cl1();}
if(mute==1){lcd.setCursor(0,0);lcd.print(" MUTE ");delay(300);}
////////////////////////////////////////////////////////////////////////////////
if(digitalRead(11)==LOW||inn==1){in++;if(in>4){in=0;}audio_in();cl1();lcd.setCursor(0,0);lcd.print(" INPUT ");lcd.print(in+1);delay(2000);time=millis();w=1;inn=0;}// in
if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);time=millis();w=1;irrecv.resume();}// IR приемник
if(ir.value==0x2FDD02F){menu++;g1=0;g2=0;cl1();time=millis();w=1;if(menu>11){menu=0;}}// меню кнопка CH+
if(ir.value==0x2FD32CD){menu--;g1=0;g2=0;cl1();time=millis();w=1;if(menu<0){menu=11;}}// меню кнопка CH-
if(ir.value==0x2FDB24D){menu=0;g1=0;g2=0;cl1();time=millis();w=1;}// меню кнопка CH (menu===0)
if(ir.value==0x2FDEA15){inn=1;g1=0;g2=0;time=millis();w=1;audio();}// кнопка IN
//////////////////////////////////////// Громкость -79...0 дБ //////////////////////////////////////
if(menu==0){
if(ir.value==0x2FD906F){vol++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+ 0xFFA857
if(ir.value==0xFFFFFFFF and g1==1){vol++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
if(ir.value==0x2FDF20D){vol--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){vol--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
if(vol>79){vol=79;}if(vol<0){vol=0;}
if (newPosition != oldPosition) {
oldPosition = newPosition;
vol=vol+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(vol>79){vol=79;}if(vol<0){vol=0;}audio();}
lcd.setCursor(0,0);lcd.print("Volume ");
lcd.print(" ");lcd.print(-79+vol);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");vol_d=vol-32;
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==0x2FD906F){bass++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){bass++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
if(ir.value==0x2FDF20D){bass--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){bass--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
if(bass<-7){bass=-7;}if(bass>7){bass=7;}
if (newPosition != oldPosition) {
oldPosition = newPosition;
bass=bass+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(bass<-7){bass=-7;}if(bass>7){bass=7;}audio();}
lcd.setCursor(0,0);lcd.print("Bass ");
lcd.print(" ");lcd.print(bass*2);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");bass_d=(bass+7)*2;
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==0x2FD906F){mid++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){mid++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
if(ir.value==0x2FDF20D){mid--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){mid--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
if(mid<-7){mid=-7;}if(mid>7){mid=7;}
if (newPosition != oldPosition) {
oldPosition = newPosition;
mid=mid+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(mid<-7){mid=-7;}if(mid>7){mid=7;}audio();}
lcd.setCursor(0,0);lcd.print("Middle ");
lcd.print(" ");lcd.print(mid*2);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");mid_d=(mid+7)*2;
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==0x2FD906F){treb++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){treb++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
if(ir.value==0x2FDF20D){treb--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){treb--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
if(treb<-7){treb=-7;}if(treb>7){treb=7;}
if (newPosition != oldPosition) {
oldPosition = newPosition;
treb=treb+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(treb<-7){treb=-7;}if(treb>7){treb=7;}audio();}
lcd.setCursor(0,0);lcd.print("Treble ");
lcd.print(" ");lcd.print(treb*2);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");treb_d=(treb+7)*2;
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==0x2FD906F){tembro++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){tembro++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
if(ir.value==0x2FDF20D){tembro--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){tembro--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
if(tembro>4){tembro=0;}if(tembro<0){tembro=4;}
if (newPosition != oldPosition) {
oldPosition = newPosition;
tembro=tembro+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(tembro>4){tembro=0;}if(tembro<0){tembro=4;}}
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 FL ///////////////////
if(menu==5){
if(ir.value==0x2FD906F){attfl++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){attfl++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
if(ir.value==0x2FDF20D){attfl--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){attfl--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
if(attfl<-14){attfl=-14;}if(attfl>0){attfl=0;}
if (newPosition != oldPosition) {
oldPosition = newPosition;
attfl=attfl+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(attfl<-14){attfl=-14;}if(attfl>0){attfl=0;}audio();}
lcd.setCursor(0,0);lcd.print("ATT FL ");
lcd.print(" ");lcd.print(attfl);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attfl_d=(attfl+14)*2;
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 FR ///////////////////
if(menu==6){
if(ir.value==0x2FD906F){attfr++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){attfr++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
if(ir.value==0x2FDF20D){attfr--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){attfr--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
if(attfr<-14){attfr=-14;}if(attfr>0){attfr=0;}
if (newPosition != oldPosition) {
oldPosition = newPosition;
attfr=attfr+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(attfr<-14){attfr=-14;}if(attfr>0){attfr=0;}audio();}
lcd.setCursor(0,0);lcd.print("ATT FR ");
lcd.print(" ");lcd.print(attfr);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attfr_d=(attfr+14)*2;
for(z=0,z0=0,z1=0;z<=attfr_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 TL ///////////////////
if(menu==7){
if(ir.value==0x2FD906F){atttl++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){atttl++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
if(ir.value==0x2FDF20D){atttl--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){atttl--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
if(atttl<-14){atttl=-14;}if(atttl>0){atttl=0;}
if (newPosition != oldPosition) {
oldPosition = newPosition;
atttl=atttl+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(atttl<-14){atttl=-14;}if(atttl>0){atttl=0;}audio();}
lcd.setCursor(0,0);lcd.print("ATT TL ");
lcd.print(" ");lcd.print(atttl);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");atttl_d=(atttl+14)*2;
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 TR ///////////////////
if(menu==8){
if(ir.value==0x2FD906F){atttr++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){atttr++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
if(ir.value==0x2FDF20D){atttr--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){atttr--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
if(atttr<-14){atttr=-14;}if(atttr>0){atttr=0;}
if (newPosition != oldPosition) {
oldPosition = newPosition;
atttr=atttr+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(atttr<-14){atttr=-14;}if(atttr>0){atttr=0;}audio();}
lcd.setCursor(0,0);lcd.print("ATT TR ");
lcd.print(" ");lcd.print(atttr);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");atttr_d=(atttr+14)*2;
for(z=0,z0=0,z1=0;z<=atttr_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==9){
if(ir.value==0x2FD906F){attcn++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){attcn++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
if(ir.value==0x2FDF20D){attcn--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){attcn--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
if(attcn<-14){attcn=-14;}if(attcn>0){attcn=0;}
if (newPosition != oldPosition) {
oldPosition = newPosition;
attcn=attcn+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(attcn<-14){attcn=-14;}if(attcn>0){attcn=0;}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;
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==10){
if(ir.value==0x2FD906F){attsub++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){attsub++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
if(ir.value==0x2FDF20D){attsub--;g1=0;g2=1;cl();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){attsub--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
if(attsub<-14){attsub=-14;}if(attsub>0){attsub=0;time=millis();}
if (newPosition != oldPosition) {
oldPosition = newPosition;
attsub=attsub+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(attsub<-14){attsub=-14;}if(attsub>0){attsub=0;}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;
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==11){
if(ir.value==0x2FD906F){ddd++;g1=1;g2=0;cl1();time=millis();w=1;audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){ddd++;g2=0;cl1();time=millis();w=1;audio();}// кнопка >>>>>>
if(ir.value==0x2FDF20D){ddd--;g1=0;g2=1;cl1();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){ddd--;g1=0;cl1();time=millis();w=1;audio();}// кнопка <<<<<<
if(ddd<0){ddd=1;}if(ddd>1){ddd=0;}
if (newPosition != oldPosition) {
oldPosition = newPosition;
ddd=ddd+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(ddd<0){ddd=1;}if(ddd>1){ddd=0;}audio();}
lcd.setCursor(0,0); if(ddd==0){lcd.print(" 3D ON ");}else{lcd.print(" 3D OFF ");} }
if(millis()-time>10000&& 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);
menu=0;w=0;cl();}
}//loop
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(attfl));// att front L
pt.setFront_rk_att(abs(attfr));// att front R
pt.setCenter_att(abs(attcn)); // att center
pt.setRear_lk_att(abs(atttl)); // att rear L
pt.setRear_rk_att(abs(atttr)); // 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
}
Да, все скетчи тестовые .Энкодер без кнопки
Все равно надо переключать пункты меню, поэтому кнопка пусть и не в энкодере будет нужна
Ок, понял. Завтра постараюсь все протестить , спасибо
Sound_test2:8:10: fatal error: boarddefs.h: No such file or directory
Несколько библиотек найдено для "LiquidCrystal_I2C.h"
#include <boarddefs.h>
^~~~~~~~~~~~~
Используется: /Users/.../Documents/Arduino/libraries/LiquidCrystalI2C
compilation terminated.
Не используется: /Users/.../Documents/Arduino/libraries/LiquidCrystal
exit status 1
boarddefs.h: No such file or directory
Я так понимаю нужно установить boarddefs.h. В сети его не нашел. Как его установить?
Этот файл входит в состав библиотеки http://rcl-radio.ru/wp-content/uploads/ … remote.zip
Добрый вечер! Залил скетч. Вообщем и целом все работает.Входы переключаются, эквалайзер работает, поканальный аттенюатор тоже, С пульта тоже работает. Пульт у меня выглядит вот так..
Нажатие кнопки сразу реализует функцию. Возможно так же сделать?
2.Мерцают полоски на регулировке громкости. Полоски заканчиваются при уровне -45Дб, хотя громкости идет до -79.
3.Что бы сменить вход, нужно дождаться пока экран переключится на отображение громкости и только потом можно дальше переключаться. это можно тоже исправить, чтобы переключение входов шло сразу.
4.Можно сделать вывод надписей на русском?Я так понимаю нужно подключить библиотеку с поддержкой кириллицы?
5. Я как-то не понял как он сохраняет последние настройки в память. Выключал, включал, но настройки были не последние.
Как я писал ранее, эту функцию можно опустить, достаточно сделать при включении установку параметров по умолчанию.(громкость, вход, выход, эквалайзер).
Ну это пока вот для начала...
Скетч работает, все регулирует, это самое главное. Все будет переписано по новому.
Нажатие кнопки сразу реализует функцию. Возможно так же сделать?
Да, так и буду делать.
2 и 3 пункт будут учены в новом скетче.
4.Можно сделать вывод надписей на русском?Я так понимаю нужно подключить библиотеку с поддержкой кириллицы?
Не использовал ни когда такую библиотеку, она все очень усложнит, проще все сделать на анг. или купить экран с поддержкой русского шрифта.
5. Я как-то не понял как он сохраняет последние настройки в память. Выключал, включал, но настройки были не последние.
Надо ждать 10 секунд после изминения параметров, после чего все заноситься в память. Отказываться от памяти не рекомендую, эта очень простая в программном плане функция и очень удобная в использовании.
В выходные буду собирать схему (без аудипроцессора) и переписывать скетч.
Про русский не принципиально, просто спросил. Экран у меня поддерживает вроде как русский шрифт. Я тут в соседней теме подглядел как прописать свои названия входов. Попробую потом сам прикрутить...
Ну если вы рекомендуете не отказываться от памяти, то хорошо, пусть так будет.
Ну и еще надо режим STBY реализовать. Логику работы я описывал выше.
Еще раз спасибо.
И еще...
Есть одна вещь, которую надо будет реализовать. Хочу прикрутить блютуз трансмиттер для наушников. Я озадачу вас, когда решим основную задачу, изложу свое видение, а вы направите на путь истинный...
Что делает кнопка OUTPUT на пульте?
Нет кнопки MIDDLE на пульте.
Кнопка OUTPUT меняет режим вывода звука - 2.1,5.1,псевдо 5.1. Проверить скетч смогу только скорее всего завтра. Спасибо
Кнопка OUTPUT меняет режим вывода звука - 2.1,5.1,псевдо 5.1.
то есть нужно отключать выходы в зависимости от режима?
2,1 = фронт + саб
5,1 = фронт + тыл + центр + саб
5,1 псевдо ???
По 2.1 завтра точно отпишусь.
5.1 стандартно поканально.
Псевдо я так понимаю из 2.1 делает типа 5.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
#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;
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;
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(11,INPUT_PULLUP); // menu кнопка энкодера
pinMode(12,INPUT_PULLUP); // MUTE
pinMode(10,INPUT_PULLUP); // IN
pinMode(13,INPUT_PULLUP); // STANDBY
pinMode(3,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;
delay(500);
audio();audio_in();
}
void to_Timer(){newPosition = myEnc.read()/4;}
void loop(){
//// BUTTON //////////////////////////////
if(power==0){
if(mute==0){
if(digitalRead(11)==LOW){menu++;cl1();myEnc.write(0);time=millis();w=1;w1=1;if(menu>11){menu=0;}}// меню
if(digitalRead(10)==LOW || ir.value==IR1){in++;if(in>4){in=0;}audio_in();cl1();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;
}delay(500);time=millis();w=1;w1=1;cl1();}// in
if(ir.value==IR3){ddd++;menu=11;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=9;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // center
if(ir.value==IR13){menu=10;g1=1;g2=0;cl1();time=millis();w=1;w1=1;} // sub
} // mute
if((digitalRead(12)==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(12)==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(13)==LOW || ir.value==IR7) && 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();}
if((digitalRead(13)==LOW || ir.value==IR7) && 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(3,HIGH);}else{digitalWrite(3,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();}// IR приемник
//////////////////////////////////////// Громкость -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 FL ///////////////////
if(menu==5){
if(ir.value==IR5){attfl++;g1=1;g2=0;cl();time=millis();w=1;w1=1;att_lf();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){attfl++;g2=0;cl();time=millis();w=1;w1=1;att_lf();audio();}// кнопка >>>>>>
if(ir.value==IR6){attfl--;g1=0;g2=1;cl();time=millis();w=1;w1=1;att_lf();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){attfl--;g1=0;cl();time=millis();w=1;w1=1;att_lf();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
attfl=attfl+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;att_lf();audio();}
lcd.setCursor(0,0);lcd.print("ATT FL ");
lcd.print(" ");lcd.print(attfl);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attfl_d=(attfl+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 FR ///////////////////
if(menu==6){
if(ir.value==IR5){attfr++;g1=1;g2=0;cl();time=millis();w=1;w1=1;att_fr();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){attfr++;g2=0;cl();time=millis();w=1;w1=1;att_fr();audio();}// кнопка >>>>>>
if(ir.value==IR6){attfr--;g1=0;g2=1;cl();time=millis();w=1;w1=1;att_fr();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){attfr--;g1=0;cl();time=millis();w=1;w1=1;att_fr();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
attfr=attfr+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;att_fr();audio();}
lcd.setCursor(0,0);lcd.print("ATT FR ");
lcd.print(" ");lcd.print(attfr);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attfr_d=(attfr+14)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=attfr_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 TL ///////////////////
if(menu==7){
if(ir.value==IR5){atttl++;g1=1;g2=0;cl();time=millis();w=1;w1=1;att_tl();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){atttl++;g2=0;cl();time=millis();w=1;w1=1;att_tl();audio();}// кнопка >>>>>>
if(ir.value==IR6){atttl--;g1=0;g2=1;cl();time=millis();w=1;w1=1;att_tl();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){atttl--;g1=0;cl();time=millis();w=1;w1=1;att_tl();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
atttl=atttl+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;att_tl();audio();}
lcd.setCursor(0,0);lcd.print("ATT TL ");
lcd.print(" ");lcd.print(atttl);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");atttl_d=(atttl+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 TR ///////////////////
if(menu==8){
if(ir.value==IR5){atttr++;g1=1;g2=0;cl();time=millis();w=1;w1=1;att_tr();audio();}// кнопка VOL+
if(ir.value==0xFFFFFFFF and g1==1){atttr++;g2=0;cl();time=millis();w=1;w1=1;att_tr();audio();}// кнопка >>>>>>
if(ir.value==IR6){atttr--;g1=0;g2=1;cl();time=millis();w=1;w1=1;att_tr();audio();}// кнопка VOL-
if(ir.value==0xFFFFFFFF and g2==1){atttr--;g1=0;cl();time=millis();w=1;w1=1;att_tr();audio();}// кнопка <<<<<<
if (newPosition != oldPosition) {
oldPosition = newPosition;
atttr=atttr+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w1=1;att_tr();audio();}
lcd.setCursor(0,0);lcd.print("ATT TR ");
lcd.print(" ");lcd.print(atttr);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");atttr_d=(atttr+14)*2;
if(w1==1){w1=0;
for(z=0,z0=0,z1=0;z<=atttr_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==9){
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==10){
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==11){
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);
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_tr(){if(atttr<-14){atttr=-14;}if(atttr>0){atttr=0;}}
void att_tl(){if(atttl<-14){atttl=-14;}if(atttl>0){atttl=0;}}
void att_fr(){if(attfr<-14){attfr=-14;}if(attfr>0){attfr=0;}}
void att_lf(){if(attfl<-14){attfl=-14;}if(attfl>0){attfl=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(attfl));// att front L
pt.setFront_rk_att(abs(attfr));// att front R
pt.setCenter_att(abs(attcn)); // att center
pt.setRear_lk_att(abs(atttl)); // att rear L
pt.setRear_rk_att(abs(atttr)); // 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
}
Страницы Назад 1 … 5 6 7 8 9 … 14 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
forum.rcl-radio.ru → Переделки → PT2323+TDA7448
Форум работает на PunBB, при поддержке Informer Technologies, Inc
|