Re: TDA7419 + OLED1.3 + ENCODER + IR + Spectrum Analyzer (LGT8F328)
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
forum.rcl-radio.ru → Тестирование скетчей → TDA7419 + OLED1.3 + ENCODER + IR + Spectrum Analyzer (LGT8F328)
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Приветствую! Собрал я схему, использовал atmega328. Все работает отлично, я использовал код из 19 сообщения этой темы.
Здесь есть небольшой баг: BT ON накладывается на цифру 1.
И да, собирал более ранние ваши проекты, к примеру TDA8425 с 1602 экраном. Там было более хорошее управление энкодером, с каждым щелчком меняется значение громкости, баса и т.п, а здесь как-то через раз. Вы могли бы это исправить? Извините, что отвлекаю, просто сам не силен в этом.
Я сделал это путем копирования и вставки с этого форума, но все равно не могу загрузить. извините, я только новичок.
Опубликуйте скетч который используете.
Я просто скопировал и вставил скетч с этого форума, ничего не изменилось ни в малейшей степени.
В теме несколько скетчей, какой из них используете?
Serial port отключен из-за нехватки памяти, коды кнопок отображаться не будут
// TDA7419 + OLED1.3 + ENCODER + IR + Spectrum Analyzer // rcl-radio.ru // liman324@yandex.ru // Alexander Liman #define IR2 0x33B820DF // button encoder #define MUTE_IR 0x33B8946B // mute #define IR4 0x33B810EF // >>> #define IR5 0x33B8E01F // <<< #define INPUT_IR 0x33B88877 // IN #define POWER_IR 0x33B800FF // POWER #define GAIN_SPEC 2.0 #define SIG_0_SPEC 7 #define SPED_SPEC 25 #define TIME_SPEC 15 #define ENC_DT 9 #define ENC_CLK 8 #define ENC_SW 10 #define IR 12 #define IN 2 #define POWER 3 #define SET 5 #define MUTE 6 #define POWER_OUT_PIN 13 #define PBT_OUT_PIN A3 #include <Wire.h> #include <U8glib.h> // https://github.com/olikraus/u8glib/ #include <MsTimer2.h> // http://rcl-radio.ru/wp-content/uploads/2018/11/MsTimer2.zip #include <TDA7419.h> // https://github.com/liman324/TDA7419.git #include <Encoder.h> // http://rcl-radio.ru/wp-content/uploads/2019/05/Encoder.zip #include <EEPROM.h> #include <boarddefs.h> // входит в состав библиотеки IRremote #include <IRremote.h> // http://rcl-radio.ru/wp-content/uploads/2019/06/IRremote.zip TDA7419 tda; Encoder myEnc(ENC_DT, ENC_CLK); U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); IRrecv irrecv(IR); decode_results ir; long times,oldPosition = -999,newPosition, times1; byte spektor[7]; int menu,vol_reg,in_reg,treb_reg,mid_reg,bass_reg,treb_f,gain0,gain1,gain2,gain3; int lon,lon_f; bool w=1,w1,gr1,gr2,www,set,mute=1,power; byte ur[7],urr[7]; int fr,fl,rr,rl,sab,out_att,out,mid_f,mid_q,sab_f,bass_f,bass_q; void setup(){ Wire.begin(); analogReadResolution(8); analogReference(INTERNAL1V024); irrecv.enableIRIn(); pinMode(A0,INPUT); // SAOUT TDA7419 pinMode(A1,OUTPUT); // SAIN TDA7419 pinMode(IN,INPUT_PULLUP); // IN1 TDA7419 pinMode(POWER,INPUT_PULLUP); // POWER pinMode(SET,INPUT_PULLUP); // SET TDA7419 pinMode(MUTE,INPUT_PULLUP); // MUTE TDA7419 pinMode(A3,OUTPUT); // BT OUT MsTimer2::set(1, to_Timer);MsTimer2::start(); vol_reg = EEPROM.read(0)-79;treb_reg = EEPROM.read(1)-15;mid_reg = EEPROM.read(2)-15;bass_reg = EEPROM.read(3)-15; in_reg = EEPROM.read(4);gain1 = EEPROM.read(5);gain2 = EEPROM.read(6);gain3 = EEPROM.read(7); lon = EEPROM.read(8);lon_f = EEPROM.read(9); fr = EEPROM.read(10);fl = EEPROM.read(11);rl = EEPROM.read(12);rr = EEPROM.read(13);sab = EEPROM.read(14); treb_f = EEPROM.read(15);mid_f = EEPROM.read(16);mid_q = EEPROM.read(17); bass_f = EEPROM.read(18);bass_q = EEPROM.read(19);sab_f = EEPROM.read(20); arr_7(); delay(500);audio(); } void loop(){ /// IR //////////////////////////////////////// if ( irrecv.decode( &ir )) {Serial.print("0x");irrecv.resume();}// IR приемник - чтение, в мониторе порта отображаются коды кнопок if(ir.value==0){gr1=0;gr2=0;}// запрет нажатий не активных кнопок пульта //////// BUTTON //////////////////////////////////////////////// ///////// POWER /////////////////// if((digitalRead(POWER)==LOW||ir.value==POWER_IR)&&power==0){power=1;menu=100;cl();mute=0;audio(); u8g.firstPage();do {u8g.setFont(u8g_font_profont12r);u8g.drawStr(40,30,"POWER OFF");} while( u8g.nextPage() ); delay(1500); u8g.firstPage();do {} while( u8g.nextPage() );} if((digitalRead(POWER)==LOW||ir.value==POWER_IR)&&power==1){power=0;menu=0;times1=millis();mute=1;arr_1(); u8g.firstPage();do {u8g.drawStr(42,30,"POWER ON");} while( u8g.nextPage() );delay(1500);audio();} if(power==0){digitalWrite(POWER_OUT_PIN,HIGH);}else{digitalWrite(POWER_OUT_PIN,LOW);} if(in_reg==1 && power==0){digitalWrite(PBT_OUT_PIN,HIGH);}else{digitalWrite(PBT_OUT_PIN,LOW);} if(power==0){ if(digitalRead(ENC_SW)==LOW&&menu<5||ir.value==IR2){menu++;cl();if(menu>3){menu=0;}arr_1();delay(200);} if(digitalRead(IN)==LOW&&menu<5||ir.value==INPUT_IR){menu=4;cl();in_reg++;arr_1();www=1;if(in_reg>3){in_reg=1;};delay(200);} if(digitalRead(SET)==LOW&&set==0){menu=5;set=1;times1=millis();w=1;delay(200);} if(digitalRead(SET)==LOW&&set==1){menu=0;set=0;;arr_1();www=1;delay(200);} if(digitalRead(ENC_SW)==LOW&&menu>4){menu++;if(menu>10){menu=0;}times1=millis();w=1;set=0;delay(200);} if((digitalRead(MUTE)==LOW||ir.value==MUTE_IR)&&mute==1){mute=0;menu=100;cl(); u8g.firstPage();do {u8g.setFont(u8g_font_profont12r);u8g.drawStr(53,30,"MUTE");} while( u8g.nextPage() );audio();delay(200);} if((digitalRead(MUTE)==LOW||ir.value==MUTE_IR)&&mute==0){mute=1;menu=0;cl();arr_1();audio();delay(200);} } /////////////////////////////////////////////////////////////// //////// VOLUME ////////////////////////////////////////////////////////////////////////////////////////////////////////////// if(menu==0){ if(newPosition != oldPosition){arr_2();vol_reg=vol_reg+newPosition;arr_3();arr_1();vol_func();audio();} if(ir.value==IR4){vol_reg++;arr_4();cl();arr_1();vol_func();audio();}// кнопка > if(ir.value==0xFFFFFFFF and gr1==1){vol_reg++;gr2=0;cl();arr_1();vol_func();audio();}// кнопка >>>>>> if(ir.value==IR5){vol_reg--;gr1=0;gr2=1;cl();arr_1();vol_func();audio();}// кнопка < if(ir.value==0xFFFFFFFF and gr2==1){vol_reg--;gr1=0;cl();arr_1();vol_func();audio();}// кнопка <<<<<< if(w==1){w=0; u8g.firstPage(); do { u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,8,"VOLUME");u8g.drawStr(0,18,"IN"); u8g.setPrintPos(20, 18);if(in_reg==1){u8g.drawStr(20,18,"BT ON");}u8g.print(in_reg);u8g.drawStr(0,28,"GAIN");u8g.setPrintPos(30, 28);u8g.print(gain0); arr_6(); u8g.drawStr(0,44,"TREBLE");u8g.setPrintPos(80, 44);u8g.print(treb_reg);u8g.drawStr(95,44,"dB"); u8g.drawStr(0,54,"MIDDLE");u8g.setPrintPos(80, 54);u8g.print(mid_reg);u8g.drawStr(95,54,"dB"); u8g.drawStr(0,64,"BASS");u8g.setPrintPos(80, 64);u8g.print(bass_reg);u8g.drawStr(95,64,"dB"); u8g.setFont(u8g_font_profont29r); u8g.setPrintPos(78, 22);u8g.print(vol_reg+79); } while( u8g.nextPage() ); }} ///////////////////////////////////////////////////////////////// //////// TREBLE ////////////////////////////////////////////////////////////////////////////////////////////////////////////// if(menu==1){ if(newPosition != oldPosition){arr_2();treb_reg=treb_reg+newPosition;arr_3();arr_1();treb_func();audio();} if(ir.value==IR4){treb_reg++;arr_4();cl();arr_1();treb_func();audio();}// кнопка > if(ir.value==0xFFFFFFFF and gr1==1){treb_reg++;gr2=0;cl();arr_1();treb_func();audio();}// кнопка >>>>>> if(ir.value==IR5){treb_reg--;gr1=0;gr2=1;cl();arr_1();treb_func();audio();}// кнопка < if(ir.value==0xFFFFFFFF and gr2==1){treb_reg--;gr1=0;cl();arr_1();treb_func();audio();}// кнопка <<<<<< if(w==1){w=0; u8g.firstPage(); do { u8g.setFont(u8g_font_profont29r); u8g.setPrintPos(78, 22);u8g.print(treb_reg); arr_6(); u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,8,"TREBLE");u8g.drawStr(0,44,"MIDDLE");u8g.setPrintPos(80, 44);u8g.print(mid_reg);u8g.drawStr(95,44,"dB"); u8g.drawStr(0,54,"BASS");u8g.setPrintPos(80, 54);u8g.print(bass_reg);u8g.drawStr(95,54,"dB"); u8g.drawStr(0,64,"VOLUME");u8g.setPrintPos(80, 64);u8g.print(vol_reg+79);u8g.drawStr(95,64,"dB"); } while( u8g.nextPage() ); }} ///////////////////////////////////////////////////////////////// //////// MIDDLE ////////////////////////////////////////////////////////////////////////////////////////////////////////////// if(menu==2){ if(newPosition != oldPosition){arr_2();mid_reg=mid_reg+newPosition;arr_3();arr_1();mid_func();audio();} if(ir.value==IR4){mid_reg++;arr_4();cl();arr_1();mid_func();audio();}// кнопка > if(ir.value==0xFFFFFFFF and gr1==1){mid_reg++;gr2=0;cl();arr_1();mid_func();audio();}// кнопка >>>>>> if(ir.value==IR5){mid_reg--;gr1=0;gr2=1;cl();arr_1();mid_func();audio();}// кнопка < if(ir.value==0xFFFFFFFF and gr2==1){mid_reg--;gr1=0;cl();arr_1();mid_func();audio();}// кнопка <<<<<< if(w==1){w=0; u8g.firstPage(); do { u8g.setFont(u8g_font_profont29r); u8g.setPrintPos(78, 22);u8g.print(mid_reg); arr_6(); u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,8,"MIDDLE");u8g.drawStr(0,44,"BASS");u8g.setPrintPos(80, 44);u8g.print(bass_reg);u8g.drawStr(95,44,"dB"); u8g.drawStr(0,54,"VOLUME");u8g.setPrintPos(80, 54);u8g.print(vol_reg+79);u8g.drawStr(95,54,"dB"); u8g.drawStr(0,64,"TREBLE");u8g.setPrintPos(80, 64);u8g.print(treb_reg);u8g.drawStr(95,64,"dB"); } while( u8g.nextPage() ); }} ///////////////////////////////////////////////////////////////// //////// BASS ////////////////////////////////////////////////////////////////////////////////////////////////////////////// if(menu==3){ if(newPosition != oldPosition){arr_2();bass_reg=bass_reg+newPosition;arr_3();arr_1();bass_func();audio();} if(ir.value==IR4){bass_reg++;arr_4();cl();arr_1();bass_func();audio();}// кнопка > if(ir.value==0xFFFFFFFF and gr1==1){bass_reg++;gr2=0;cl();arr_1();bass_func();audio();}// кнопка >>>>>> if(ir.value==IR5){bass_reg--;gr1=0;gr2=1;cl();arr_1();bass_func();audio();}// кнопка < if(ir.value==0xFFFFFFFF and gr2==1){bass_reg--;gr1=0;cl();arr_1();bass_func();audio();}// кнопка <<<<<< if(w==1){w=0; u8g.firstPage(); do { u8g.setFont(u8g_font_profont29r); u8g.setPrintPos(78, 22);u8g.print(bass_reg); arr_6(); u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,8,"BASS");u8g.drawStr(0,44,"VOLUME");u8g.setPrintPos(80, 44);u8g.print(vol_reg+79);u8g.drawStr(95,44,"dB"); u8g.drawStr(0,54,"TREBLE");u8g.setPrintPos(80, 54);u8g.print(mid_reg);u8g.drawStr(95,54,"dB"); u8g.drawStr(0,64,"MIDDLE");u8g.setPrintPos(80, 64);u8g.print(treb_reg);u8g.drawStr(95,64,"dB"); } while( u8g.nextPage() ); }} ///////////////////////////////////////////////////////////////// ////////////// INPUT GAIN /////////////////////////////////////////////////////////////////// if(menu==4){ arr_7(); if (newPosition != oldPosition){arr_5();gain0=gain0+newPosition;arr_3();arr_1();www=1;gain_func();} switch(in_reg){ case 1: gain1=gain0;break; case 2: gain2=gain0;break; case 3: gain3=gain0;break; } if(www==1){audio();www=0;} if(w==1){w=0; u8g.firstPage(); do { u8g.setFont(u8g_font_profont29r);u8g.setPrintPos(78, 60);u8g.print(gain0); u8g.setPrintPos(78, 22);if(in_reg==1){u8g.drawStr(40,22,"BT ON");}else{u8g.print(in_reg);} arr_6(); u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,8,"INPUT");u8g.drawStr(0,44,"GAIN"); } while( u8g.nextPage() ); }} /////////// loudness att/freq ///////////////////// if(menu==5){ if (newPosition != oldPosition){arr_5();lon=lon-newPosition;arr_3();w=1;lon_func();audio();} if(digitalRead(IN)==LOW){lon_f++;if(lon_f>3){lon_f=0;}w=1;;audio();delay(200);} if(w==1){w=0;EEPROM.update(8,lon);EEPROM.update(9,lon_f); u8g.firstPage(); do { u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,8,"LOUDNESS ATTENUATION");u8g.setPrintPos(50, 22);u8g.print(-lon);u8g.drawStr(80,22,"dB"); arr_6(); u8g.drawStr(0,44,"LOUDNESS FREQUENCY"); switch(lon_f){ case 0: u8g.drawStr(50, 60," FLAT");break; case 1: u8g.drawStr(50, 60," 400Hz");break; case 2: u8g.drawStr(50, 60," 800Hz");break; case 3: u8g.drawStr(50, 60,"2400Hz");break;} } while( u8g.nextPage() ); }} ///////////// out att /////////////////////////////// if(menu==6){ if(digitalRead(IN)==LOW){out++;if(out>4){out=0;}w=1;delay(200);} switch(out){ case 0: out_att=fr;break; case 1: out_att=fl;break; case 2: out_att=rl;break; case 3: out_att=rr;break; case 4: out_att=sab;break; } if (newPosition != oldPosition){arr_5();out_att=out_att+newPosition;arr_3();w=1;att_func();www=1;} switch(out){ case 0: fr=out_att;break; case 1: fl=out_att;break; case 2: rl=out_att;break; case 3: rr=out_att;break; case 4: sab=out_att;break; } if(www==1){audio();www=0; EEPROM.update(10,fr);EEPROM.update(11,fl);EEPROM.update(12,rl);EEPROM.update(13,rr);EEPROM.update(14,sab);} if(w==1){w=0; u8g.firstPage(); do { u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,8,"OUTPUT"); switch(out){ case 0: u8g.drawStr(45,8,"FR");break; case 1: u8g.drawStr(45,8,"FL");break; case 2: u8g.drawStr(45,8,"RL");break; case 3: u8g.drawStr(45,8,"RR");break; case 4: u8g.drawStr(45,8,"SAB");break; } u8g.setPrintPos(50, 22);u8g.print(out_att);u8g.drawStr(80,22,"dB"); } while( u8g.nextPage() ); }} /////////////////////////////////////////////////////////////////// /////////// treb f ///////////////////// if(menu==7){ if (newPosition != oldPosition){arr_5();treb_f=treb_f+newPosition;arr_3();w=1;treb_f_func();audio();} if(w==1){w=0;EEPROM.update(15,treb_f); u8g.firstPage(); do { u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,8,"TREBLE CENTER FREQ"); switch(treb_f){ case 0: u8g.drawStr(40, 22,"10.0 kHz");break; case 1: u8g.drawStr(40, 22,"12.5 kHz");break; case 2: u8g.drawStr(40, 22,"15.0 kHz");break; case 3: u8g.drawStr(40, 22,"17.5 kHz");break;} } while( u8g.nextPage() ); }} /////////// middle f/q ///////////////////// if(menu==8){ if (newPosition != oldPosition){arr_5();mid_f=mid_f+newPosition;arr_3();w=1;mid_f_func();audio();} if(digitalRead(IN)==LOW){mid_q++;mid_q_func();w=1;audio();delay(200);} if(w==1){w=0;EEPROM.update(16,mid_f);EEPROM.update(17,mid_q); u8g.firstPage(); do { u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,8,"MIDDLE CENTER FREQ"); switch(mid_f){ case 0: u8g.drawStr(40, 22,"0.5 kHz");break; case 1: u8g.drawStr(40, 22,"1.0 kHz");break; case 2: u8g.drawStr(40, 22,"1.5 kHz");break; case 3: u8g.drawStr(40, 22,"2.5 kHz");break;} arr_6(); u8g.drawStr(0,44,"MIDDLE Q FACTOR"); switch(mid_q){ case 0: u8g.drawStr(50, 60,"0.50");break; case 1: u8g.drawStr(50, 60,"0.75");break; case 2: u8g.drawStr(50, 60,"1.00");break; case 3: u8g.drawStr(50, 60,"1.25");break;} } while( u8g.nextPage() ); }} /////////// bass f/q ///////////////////// if(menu==9){ if (newPosition != oldPosition){arr_5();bass_f=bass_f+newPosition;arr_3();w=1;bass_f_func();audio();} if(digitalRead(IN)==LOW){bass_q++;bass_q_func();w=1;audio();delay(200);} if(w==1){w=0;EEPROM.update(18,bass_f);EEPROM.update(19,bass_q); u8g.firstPage(); do { u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,8,"BASS CENTER FREQ"); switch(bass_f){ case 0: u8g.drawStr(40, 22," 60 Hz");break; case 1: u8g.drawStr(40, 22," 80 Hz");break; case 2: u8g.drawStr(40, 22,"100 Hz");break; case 3: u8g.drawStr(40, 22,"200 Hz");break;} arr_6(); u8g.drawStr(0,44,"BASS Q FACTOR"); switch(bass_q){ case 0: u8g.drawStr(50, 60,"1.00");break; case 1: u8g.drawStr(50, 60,"1.25");break; case 2: u8g.drawStr(50, 60,"1.50");break; case 3: u8g.drawStr(50, 60,"2.00");break;} } while( u8g.nextPage() ); }} /////////// sab f ///////////////////// if(menu==10){ if (newPosition != oldPosition){arr_5();sab_f=sab_f+newPosition;arr_3();w=1;sab_f_func();audio();} if(w==1){w=0;EEPROM.update(20,sab_f); u8g.firstPage(); do { u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,8,"SUBWOOFER CENTER FREQ"); switch(sab_f){ case 0: u8g.drawStr(40, 22," FLAT ");break; case 1: u8g.drawStr(40, 22," 80 Hz");break; case 2: u8g.drawStr(40, 22,"120 Hz");break; case 3: u8g.drawStr(40, 22,"160 Hz");break;} } while( u8g.nextPage() ); }} if(millis()-times1>TIME_SPEC*1000&&mute==1&&(menu<5||menu>50)){menu=100;spec_func(); if(newPosition != oldPosition){arr_5();myEnc.write(0);times1=millis();menu=0;w=1;} if(ir.value!=0){cl();times1=millis();menu=0;w=1;} } if(millis()-times>3000 && w1==1 && menu<5){ EEPROM.update(0,vol_reg+79);EEPROM.update(1,treb_reg+15);EEPROM.update(2,mid_reg+15);EEPROM.update(3,bass_reg+15); EEPROM.update(4,in_reg);EEPROM.update(5,gain1);EEPROM.update(6,gain2);EEPROM.update(7,gain3); menu=0;w1=0;w=1;myEnc.write(0);} } // end loop void arr_7(){switch(in_reg){ case 1: gain0=gain1;break; case 2: gain0=gain2;break; case 3: gain0=gain3;break; }} void arr_6(){u8g.drawLine(0, 32, 128, 32);} void arr_5(){oldPosition = newPosition;} void arr_4(){gr1=1;gr2=0;} void arr_3(){myEnc.write(0);newPosition=0;} void arr_2(){arr_5();if(newPosition>1){newPosition=1;}if(newPosition<-1){newPosition=-1;}} void arr_1(){times=millis();times1=millis();w=1;w1=1;} void cl(){ir.value=0;delay(300);} void sab_f_func(){if(sab_f>3){sab_f=0;}if(sab_f<0){sab_f=3;}} void bass_q_func(){if(bass_q>3){bass_q=0;}if(bass_q<0){bass_q=3;}} void bass_f_func(){if(bass_f>3){bass_f=0;}if(bass_f<0){bass_f=3;}} void mid_q_func(){if(mid_q>3){mid_q=0;}if(mid_q<0){mid_q=3;}} void mid_f_func(){if(mid_f>3){mid_f=0;}if(mid_f<0){mid_f=3;}} void treb_f_func(){if(treb_f>3){treb_f=0;}if(treb_f<0){treb_f=3;}} void att_func(){if(out_att>15){out_att=15;}if(out_att<0){out_att=0;}} void lon_func(){if(lon<0){lon=0;}if(lon>15){lon=15;}} void gain_func(){if(gain0>15){gain0=15;}if(gain0<0){gain0=0;}} void bass_func(){if(bass_reg<-15){bass_reg=-15;}if(bass_reg>15){bass_reg=15;}} void mid_func(){if(mid_reg<-15){mid_reg=-15;}if(mid_reg>15){mid_reg=15;}} void treb_func(){if(treb_reg<-15){treb_reg=-15;}if(treb_reg>15){treb_reg=15;}} void vol_func(){if(vol_reg<-79){vol_reg=-79;}if(vol_reg>15){vol_reg=15;}} void to_Timer(){newPosition = myEnc.read()/4;} void audio(){ tda.setInput(in_reg,gain0,0); //вх1=1, вх2=2, вх3=3 tda.setInput2(0,0,0); // не используется tda.setAtt_loudness(lon,lon_f,0,0); tda.setSoft(mute,0,0,0,0);//mute = 1 off tda.setVolume(vol_reg,0); // общая громкость int = -79...+15 tda.setAtt_LF(64+fl,0); // гром. лк фронт tda.setAtt_RF(64+fr,0); // гром. пк фронт tda.setAtt_LT(64+rl,0); // гром. лк тыл tda.setAtt_RT(64+rr,0); // гром. пк тыл tda.setAtt_SUB(64+sab,0); // гром. савбуфер tda.setAtt_Mix(79,0); // не использует tda.setFilter_Treble(treb_reg,treb_f,0); tda.setFilter_Middle(mid_reg,mid_q,0); tda.setFilter_Bass(bass_reg,bass_q,0); tda.setSub_M_B(sab_f,mid_f,bass_f,0,0); tda.setMix_Gain_Eff(1,0,0,0,0); // не используется tda.setSpektor(2,0,1,0,1,0,0); } void spec_func(){ //// spectrum analyzer ////////////////////////////////////// digitalWrite(A1,LOW);digitalWrite(A1,HIGH);delay(SPED_SPEC); for(int i=0;i<7;i++){ digitalWrite(A1,LOW);digitalWrite(A1,HIGH); spektor[i]=analogRead(A0)*2; if(spektor[i]<SIG_0_SPEC){spektor[i]=0;}} u8g.firstPage(); do { for (int pos = 0; pos < 7; pos++) { for (int v_pos=0; v_pos<spektor[pos]+4;v_pos+=4){u8g.drawBox(pos*19, 61-v_pos, 13, 2);}} } while( u8g.nextPage() ); }
У меня все работает, плата версии 2.0.7
Тестовый скетч
#include <Wire.h>
#include <TDA7419.h>
TDA7419 tda;
void setup(){
delay(200);
audio();
}
void loop(){
}//loop
void audio(){
tda.setInput(1,0,0); //вх1=1, вх2=2, вх3=3
tda.setInput2(0,0,0); // не используется
tda.setAtt_loudness(0,0,0,0);
tda.setSoft(1,0,0,0,0);//mute off (не менять)
tda.setVolume(79,0); // общая громкость от 0 до 79 макс
tda.setAtt_LF(79,0); // гром. лк фронт
tda.setAtt_RF(79,0); // гром. пк фронт
tda.setAtt_LT(79,0); // гром. лк тыл
tda.setAtt_RT(79,0); // гром. пк тыл
tda.setAtt_SUB(79,0); // гром. савбуфер
tda.setAtt_Mix(79,0); // не использует
tda.setFilter_Treble(0,0,0);
tda.setFilter_Middle(0,0,0);
tda.setFilter_Bass(0,0,0);
tda.setSub_M_B(0,0,0,0,0);
tda.setMix_Gain_Eff(1,0,0,0,0); // не используется
tda.setSpektor(0,0,1,0,1,0,0);
}
всем привет, приветствия... Мне удалось загрузить эскиз в режиме BT с помощью promini, но на lgt8 он не сработал. но в кодировщике есть небольшая ошибка. для увеличения громкости это должно быть в противоположном направлении. а при использовании реле для включения и выключения кнопка работает немного медленно, а иногда даже не срабатывает. Замерял напряжение на промини, всего на 4 вольта больше. Влияет ли это на работу промини?
Вечер добрый, подскажите пожалуйста на 17 выводе микросхемы TDA7419 это выход правого канала почему-то максимальное напряжение на выходе всего 1вольт , когда на всех остальных выходах по 2 вольта.
Как то можете пояснить ?
Вероятно что-то нужно поменять в настройках, не подскажите ?
всем привет, приветствия. Мне удалось загрузить эскиз с помощью LGT8F328, но есть небольшая проблема: порт монитора не отображается, когда я хочу загрузить удаленный код. Как мне сделать так, чтобы код отображался на порту монитора. ? Я установил неудаленную библиотеку, но она все еще не появляется.
всем привет..и низкий поклон авторам статей и зарисовок.. Меня все еще смущает режим ожидания, в котором реле у меня не работает, потому что напряжение на контакте 13 lgt8f составляет всего 3 В. Я попробовал еще раз, купив несколько плат lgt8f, но результаты были такими же. затем я протестировал его с помощью Arduino Nano, результаты были хорошими, и реле работает, но на анализатор спектра не очень приятно смотреть. Несмотря на то, что в анализатор спектра не поступает звуковой сигнал, я спрашиваю, есть некоторые плюсы и минусы. за помощь в моем случае.
Я тоже тестировал с LG8F Mini, но в результате на экране ничего не отображается и мигает светодиод 13 cum4a. LGT8 Mini для этого не подходит.
LGT8 Mini для этого не подходит.
Почему такой вывод? Они одинаковые, разница в способе заливки скетча.
liman324 Этот звуковой процессор я сделал с помощью Arduino Nano, но у меня проблема с дисплеем, какие еще изменения нужно внести, картинку прикрепил. Спасибо!
У Вас OLED1.3?
Для OLED 0.96
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI
OLED 1.3 !
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST);
для OLED1.3
Добрый вечер! liman32 Я использовал Arduino Nano и Oled SSD1306 1.3, только с настройками для Oled 0.96 дисплей работал корректно. Большое спасибо за вашу помощь!
Чтобы отправить ответ, вы должны войти или зарегистрироваться
forum.rcl-radio.ru → Тестирование скетчей → TDA7419 + OLED1.3 + ENCODER + IR + Spectrum Analyzer (LGT8F328)
Форум работает на PunBB, при поддержке Informer Technologies, Inc
|