Re: Аудиопроцессор R2S15902FP

Я ПЫТАЛСЯ ПОДКЛЮЧИТЬ r2s15902fp IC СОЕДИНЕНИЕ ПРИ ПОДКЛЮЧЕНИИ ЗВУК НЕ ПОЛУЧАЕТСЯ КАК РЕШИТЬ ДАННЫЕ НЕ ПОНИМАЮТСЯ ЧТО IC КАК РЕШИТЬ МОЮ ПРОБЛЕМУ

27

Re: Аудиопроцессор R2S15902FP

Опубликуйте скетч который Вы используете.

Re: Аудиопроцессор R2S15902FP

#define IR_1 0x807F827D // Кнопка вверх
#define IR_2 0x807FB04F // Кнопка вниз
#define IR_3 0x807F32CD // Кнопка >
#define IR_4 0x807F728D // Кнопка <
#define IR_5 0x807FB24D // Кнопка IN


#include <Wire.h>
#include <R2S15902FP.h>
#include <Encoder.h>
#include <EEPROM.h>
#include <MsTimer2.h>
#include <boarddefs.h>
#include <IRremote.h>
#include <LiquidCrystal_I2C.h> //Библиотека -  [url]http://forum.rcl-radio.ru/misc.php?action=pan_download&item=45&download=1[/url]
  LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей 
   IRrecv irrecv(12); // указываем вывод модуля IR приемника
   Encoder myEnc(9, 8);// DT, CLK
   decode_results ir;
      byte v1[8] = {31,31,31,31,31,31,31,31};
      byte v2[8] = {31,31,31, 0, 0, 0, 0, 0};      
      byte v3[8] = { 0, 0, 0, 0, 0,31,31,31};
      byte v4[8] = {31,31, 0, 0, 0, 0,31,31};
      byte v5[8] = { 0, 0, 0, 0, 0, 0, 0, 0};
      byte v7[8] = { 0, 0, 0, 0, 0, 0,31,31};
  
  unsigned long time,oldPosition  = -999,newPosition;
  int menu,vol,vol_d,treb,treb_d,bass,bass_d,in;
  byte w,w2,www,gr1,gr2;
  byte a[2];
  int out,vol_out,rf,lf,rt,lt,sab1,sab2,sl,sr;
  byte i,d1,d2,d3,d4,d5,d6,e1,e2,e3;


void setup(){ irrecv.enableIRIn(); // запускаем модуль IR
  lcd.init();lcd.backlight();

  lcd.createChar(1, v1);lcd.createChar(2, v2);lcd.createChar(3, v3);lcd.createChar(4, v4);lcd.createChar(5, v5);lcd.createChar(7, v7);

   lcd.setCursor(0,0);lcd.print("   R2S15902FP   ");delay(2000);
   Serial.begin(9600);
   pinMode(DATA, OUTPUT); // D2
   pinMode(CLK, OUTPUT);   // D3
   pinMode(10,INPUT);// МЕНЮ КНОПКА SW энкодера
   pinMode(11,INPUT);// КНОПКА IN

   
    MsTimer2::set(3, to_Timer);MsTimer2::start(); // АКТИВИРУЕМПРЕРЫВАНИЯ ДЛЯ ЭНКОДЕРА
    vol = EEPROM.read(0);treb = EEPROM.read(1);bass = EEPROM.read(2);in= EEPROM.read(3);
    rf = EEPROM.read(10);lf = EEPROM.read(11);rt = EEPROM.read(12);lt =EEPROM.read(13);sab1 = EEPROM.read(14);sab2 = EEPROM.read(24);
   delay(100);cl();
   audio();
}

void loop(){
if(digitalRead(10)==LOW){menu++;cl();time=millis();w=1;w2=1;if(menu>4){menu=0;}}//меню
if(digitalRead(11)==HIGH){in++;;cl();time=millis();w=1;w2=1;www=1;in_func();lcd.setCursor(0,0);lcd.print("    INPUT");lcd.print(in+1);audio();delay(2000);cl();}// КНОПКА ВЫБОРА ВХОДА I

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

if(ir.value==IR_1){menu++;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;if(menu>4){menu=0;}}//меню кнопка вверх
if(ir.value==IR_2){menu--;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;if(menu<0){menu=4;}}//меню кнопка вниз

///////////////////////  vol
    if(menu==0){

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

    if (newPosition != oldPosition){oldPosition = newPosition;vol=vol+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;vol_func();audio();}
    vol_d = abs(vol-99);
    a[0]= vol_d/10;a[1]=vol_d%10;

    for(i=0;i<2;i++){
      switch(i){
        case 0: e1=9,e2=10,e3=11;break;
        case 1: e1=13,e2=14,e3=15;break;}       
      switch(a[i]){
        case 0: d1=1,d2=2,d3=1,d4=1,d5=3,d6=1;break;
        case 1: d1=2,d2=1,d3=5,d4=7,d5=1,d6=7;break;
        case 2: d1=2,d2=4,d3=1,d4=1,d5=3,d6=3;break;
        case 3: d1=2,d2=4,d3=1,d4=3,d5=3,d6=1;break;
        case 4: d1=1,d2=3,d3=1,d4=5,d5=5,d6=1;break;
        case 5: d1=1,d2=4,d3=2,d4=3,d5=3,d6=1;break;
        case 6: d1=1,d2=4,d3=2,d4=1,d5=3,d6=1;break;
        case 7: d1=2,d2=2,d3=1,d4=5,d5=5,d6=1;break;
        case 8: d1=1,d2=4,d3=1,d4=1,d5=3,d6=1;break;
        case 9: d1=1,d2=4,d3=1,d4=3,d5=3,d6=1;break;
       case 11: d1=5,d2=5,d3=5,d4=5,d5=5,d6=5;break;
    }
     
      lcd.setCursor(e1,0);lcd.write((uint8_t)d1);lcd.setCursor(e2,0);lcd.write((uint8_t)d2);lcd.setCursor(e3,0);lcd.write((uint8_t)d3);
      lcd.setCursor(e1,1);lcd.write((uint8_t)d4);lcd.setCursor(e2,1);lcd.write((uint8_t)d5);lcd.setCursor(e3,1);lcd.write((uint8_t)d6);}

      lcd.setCursor(0,0);lcd.print("VOLUME");
      lcd.setCursor(0,1);;lcd.print("INPUT ");lcd.print(in+1);
  }

///////////////////////// TREBLE +/-14 dB
/////////////////////////////////////////////////////////
    if(menu==1){

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

      if (newPosition != oldPosition) {
     oldPosition = newPosition;
treb=treb+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;treb_func();audio();}

    treb_d = abs(treb-14);
    a[0]= treb_d/10;a[1]=treb_d%10;

    for(i=0;i<2;i++){
      switch(i){
        case 0: e1=9,e2=10,e3=11;break;
        case 1: e1=13,e2=14,e3=15;break;}       
      switch(a[i]){
        case 0: d1=1,d2=2,d3=1,d4=1,d5=3,d6=1;break;
        case 1: d1=2,d2=1,d3=5,d4=7,d5=1,d6=7;break;
        case 2: d1=2,d2=4,d3=1,d4=1,d5=3,d6=3;break;
        case 3: d1=2,d2=4,d3=1,d4=3,d5=3,d6=1;break;
        case 4: d1=1,d2=3,d3=1,d4=5,d5=5,d6=1;break;
        case 5: d1=1,d2=4,d3=2,d4=3,d5=3,d6=1;break;
        case 6: d1=1,d2=4,d3=2,d4=1,d5=3,d6=1;break;
        case 7: d1=2,d2=2,d3=1,d4=5,d5=5,d6=1;break;
        case 8: d1=1,d2=4,d3=1,d4=1,d5=3,d6=1;break;
        case 9: d1=1,d2=4,d3=1,d4=3,d5=3,d6=1;break;
       case 11: d1=5,d2=5,d3=5,d4=5,d5=5,d6=5;break;
    }
     
      lcd.setCursor(e1,0);lcd.write((uint8_t)d1);lcd.setCursor(e2,0);lcd.write((uint8_t)d2);lcd.setCursor(e3,0);lcd.write((uint8_t)d3);
      lcd.setCursor(e1,1);lcd.write((uint8_t)d4);lcd.setCursor(e2,1);lcd.write((uint8_t)d5);lcd.setCursor(e3,1);lcd.write((uint8_t)d6);}

      lcd.setCursor(0,0);lcd.print("TREBLE");
     // lcd.setCursor(0,1);;lcd.print("INPUT ");lcd.print(in+1);
  
  
  }

///////////////////////// BASS +/-14 dB
/////////////////////////////////////////////////////////
    if(menu==2){

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

      if (newPosition != oldPosition) {
     oldPosition = newPosition;
bass=bass+newPosition;myEnc.write(2);newPosition=0;time=millis();w=1;w2=1;bass_func();audio();}

   bass_d = abs(bass-14);
    a[0]= bass_d/10;a[1]=bass_d%10;

    for(i=0;i<2;i++){
      switch(i){
        case 0: e1=9,e2=10,e3=11;break;
        case 1: e1=13,e2=14,e3=15;break;}       
      switch(a[i]){
        case 0: d1=1,d2=2,d3=1,d4=1,d5=3,d6=1;break;
        case 1: d1=2,d2=1,d3=5,d4=7,d5=1,d6=7;break;
        case 2: d1=2,d2=4,d3=1,d4=1,d5=3,d6=3;break;
        case 3: d1=2,d2=4,d3=1,d4=3,d5=3,d6=1;break;
        case 4: d1=1,d2=3,d3=1,d4=5,d5=5,d6=1;break;
        case 5: d1=1,d2=4,d3=2,d4=3,d5=3,d6=1;break;
        case 6: d1=1,d2=4,d3=2,d4=1,d5=3,d6=1;break;
        case 7: d1=2,d2=2,d3=1,d4=5,d5=5,d6=1;break;
        case 8: d1=1,d2=4,d3=1,d4=1,d5=3,d6=1;break;
        case 9: d1=1,d2=4,d3=1,d4=3,d5=3,d6=1;break;
       case 11: d1=5,d2=5,d3=5,d4=5,d5=5,d6=5;break;
    }
     
      lcd.setCursor(e1,0);lcd.write((uint8_t)d1);lcd.setCursor(e2,0);lcd.write((uint8_t)d2);lcd.setCursor(e3,0);lcd.write((uint8_t)d3);
      lcd.setCursor(e1,1);lcd.write((uint8_t)d4);lcd.setCursor(e2,1);lcd.write((uint8_t)d5);lcd.setCursor(e3,1);lcd.write((uint8_t)d6);}

      lcd.setCursor(0,0);lcd.print("BASS");
     // lcd.setCursor(0,1);;lcd.print("INPUT ");lcd.print(in+1);

   
   }

///////////////////// IN
/////////////////////////////////////////////////////////////////////////
    if(menu==3){
  if(ir.value==IR_5){in++;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;www=1;
   in_func();lcd.setCursor(0,0);lcd.print("    INPUT ");lcd.print(in+1);audio();delay(2000);}// КНОПКА ВЫБОРА ВХОДА IN
     
     if (newPosition != oldPosition) {
     oldPosition = newPosition;
in=in-newPosition;myEnc.write(0);newPosition=0;time=millis();cl();w=1;w2=1;in_func();audio();}

    lcd.setCursor(0,0);lcd.print("INPUT  ");lcd.print(in+1);}

////////////////////////////////////////// out
/////////////////////////////////////////////////
  if(menu==4){
if(digitalRead(11)==HIGH){out++;cl();time=millis();www=1;w=1;if(out>5){out=0;}audio();}
// перебор выходов кнопкой IN
if(ir.value==IR_5){out++;cl();time=millis();www=1;w=1;if(out>5){out=0;}audio();}
// перебор выходов кнопкой IN
        switch(out){
           case 0:vol_out=rf;break;
           case 1:vol_out=lf;break;
           case 2:vol_out=rt;break;
           case 3:vol_out=lt;break;
           case 4:vol_out=sab1;break;
           case 5:vol_out=sab2;break;
           }

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

       if (newPosition != oldPosition) {
       oldPosition = newPosition;
vol_out=vol_out-newPosition;myEnc.write(0);newPosition=0;time=millis();www=1;w=1;w2=1;vol_out_func();audio();}


    lcd.setCursor(0,0);lcd.print("Volume OUT");lcd.setCursor(0,1);
       switch(out){
    case 0:rf=vol_out;lcd.print("RF:  ");lcd.print(rf);break;
    case 1:lf=vol_out;lcd.print("LF:  ");lcd.print(lf);break;
    case 2:rt=vol_out;lcd.print("RT:  ");lcd.print(rt);break;
    case 3:lt=vol_out;lcd.print("LT:  ");lcd.print(lt);break;
    case 4:sab1=vol_out;lcd.print("SUBW_1: ");lcd.print(sab1);break;
    case 5:sr=vol_out;lcd.print("sr: ");lcd.print(sr);break;
    case 6:sl=vol_out;lcd.print("sl: ");lcd.print(sl);break;
    case 7:sab2=vol_out;lcd.print("SUBW_2: ");lcd.print(sab2);break;
    }
     if(www==1){audio();www=0;}
   lcd.print(" dB      ");}


    if(millis()-time>10000 && w==1){
EEPROM.update(0,vol);EEPROM.update(1,treb);EEPROM.update(2,bass);EEPROM.update(3,in);
EEPROM.update(10,rf);EEPROM.update(11,lf);EEPROM.update(12,rt);EEPROM.update(13,lt);EEPROM.update(14,sab1);EEPROM.update(24,sab2);
      menu=0;w=0;w2=1;cl();}
}

void cl1(){ir.value=0;delay(100);}
void vol_out_func(){if(vol_out>7){vol_out=7;}if(vol_out<0){vol_out=0;}}
void in_func(){if(in>3){in=0;}if(in<0){in=3;}}
void bass_func(){if(bass>14){bass=14;}if(bass<0){bass=0;}}
void treb_func(){if(treb>14){treb=14;}if(treb<0){treb=0;}}
void vol_func(){if(vol<0){vol=0;}if(vol>99){vol=99;}}
void cl(){ir.value=0;delay(300);lcd.clear();}
void to_Timer(){newPosition = myEnc.read()/4;}
void audio(){
   Slot1(0,0,0,0,5,5,0);
     // input selector  1...4 === int 0...3, in4 === multi in
     //REC-Output Gain Control int 0...6 dB === int 0...3
     //L/R Input 0 === IN1...3, 1 === IN4 MULTI
     //ADC Input ATT 0...-6 dB === int 0...3
     //bass int 0 === +14dB int 8 === 0dB int 15 === -14dB
     //treble int 0 === +14dB int 8 === 0dB int 15 === -14dB
     //Input Gain 0...14 dB === int 0...7
   Slot2(rf,vol,lf,vol); // gain0, volume0, gain1, volume1
   Slot3(rt,vol,lt,vol); // gain2, volume2, gain3, volume3
   Slot4(sab1,vol,sab2,vol); // gain4, volume4, gain5, volume5
   // gain 0...14 dB === int 0...7
   // volume 0...-99 dB === int 0...100
}

29

Re: Аудиопроцессор R2S15902FP

Ошибок компиляции нет?

Re: Аудиопроцессор R2S15902FP

NO THE SKETCH IS FINE WORKING BUT THE PROCESSOR SOUND IS NOT COMING AFTER DATA SENDING TO THE PROCESSOR HOW TO SOLVE SIR....?

31

Re: Аудиопроцессор R2S15902FP

Загрузите тестовый скетч:

#include <R2S15902FP.h>
      
void setup(){ Serial.begin(9600);
  pinMode(DATA, OUTPUT); // D2
  pinMode(CLK, OUTPUT);  // D3
  delay(100);
}

void loop(){
  audio();
  delay(1000);
}

void audio(){
  Slot1(0,0,0,0,5,5,0); 
   // input selector  1...4 === int 0...3, in4 === multi in
    //REC-Output Gain Control int 0...6 dB === int 0...3
    //ADC Input ATT 0...-6 dB === int 0...3
    //L/R Input 0 === IN1...3, 1 === IN4 MULTI
    //bass int 0 === +14dB int 8 === 0dB int 15 === -14dB
    //treble int 0 === +14dB int 8 === 0dB int 15 === -14dB
    //Input Gain 0...14 dB === int 0...7
  Slot2(3,10,3,10); // gain0, volume0, gain1, volume1
  Slot3(3,10,3,10); // gain2, volume2, gain3, volume3
  Slot4(3,10,3,10); // gain4, volume4, gain5, volume5
  // gain 0...14 dB === int 0...7
  // volume 0...-99 dB === int 0...99
}

Re: Аудиопроцессор R2S15902FP

could you send correct library

Re: Аудиопроцессор R2S15902FP

http://forum.rcl-radio.ru/uploads/images/2022/06/368f719a29c64f86fa322e5593d5228b.png -КАК РЕШИТЬ ЭТУ ПРОБЛЕМУ, Сэр....?

34

Re: Аудиопроцессор R2S15902FP

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

Re: Аудиопроцессор R2S15902FP

СЭР, У МЕНЯ ЕСТЬ СОМНЕНИЕ, ЧТО ТАКОЕ ДАННЫЕ CLK PINS IN SKETCH

36

Re: Аудиопроцессор R2S15902FP

CLK = pin arduino D3

Re: Аудиопроцессор R2S15902FP

КАКИЕ КОНТАКТЫ ДЛЯ ПОДКЛЮЧЕНИЯ ПРОЦЕСОРА R2S15902FP К ARDUINO

38

Re: Аудиопроцессор R2S15902FP

DATA = D2
CLK = D3

39

Re: Аудиопроцессор R2S15902FP

R2S15902FP pin 13 = arduino D2
R2S15902FP pin 14 = arduino D3

Re: Аудиопроцессор R2S15902FP

ПОЖАЛУЙСТА, МОЖЕТЕ ВЫ ЛУЧШИЙ ЖК-ЭСКИЗ R2S15902FP В ARDUINO ПОЛЬЗОВАТЕЛЬСКИЙ ЭСКИЗ ХАРАКТЕРА... ПОЖАЛУЙСТА, СЭР....

41

Re: Аудиопроцессор R2S15902FP

Тестовый скетч работает? R2S15902FP звук есть?

Re: Аудиопроцессор R2S15902FP

ДА, Сэр, РАБОТАЕТ....

43

Re: Аудиопроцессор R2S15902FP

Используйте http://forum.rcl-radio.ru/viewtopic.php?pid=6183#p6183

Re: Аудиопроцессор R2S15902FP

СЭР, МОЖЕТЕ ЛИ ВЫ НАПИСАТЬ ВАРИАНТ USB В ЭТОМ ЭСКИЗЕ, ПОТОМУ ЧТО Я ХОЧУ ЭТОГО, И ВХОДНОЙ АУДИО НЕ ДЕЛИТСЯ, КОГДА Я ИЗМЕНЯЮ ВАРИАНТ ВХОДА.... И ПОЖАЛУЙСТА, НАПИШИТЕ USB И ЛЕВЫЙ И ПРАВЫЙ ОПЦИИ AUIDO ЭСКИЗ ПОЖАЛУЙСТА, СЭР, ПРИМИТЕ МОЙ ЗАПРОС....

45

Re: Аудиопроцессор R2S15902FP

http://forum.rcl-radio.ru/viewtopic.php?pid=6183#p6183 - работает?

Я не понимаю смысл последнего сообщения, напишите по английски и попробую перевести.

Re: Аудиопроцессор R2S15902FP

Sir i want usb option in that and also the audio input not dividing when i am divide the audio..sir please rite usb option and input dividing and write 2channel i mean left and right input 1 and input 2 please accept my request sir...

47

Re: Аудиопроцессор R2S15902FP

Я не понимаю, что за опция usb? Посмотрите даташит, посмотрите возможности микросхемы.

Re: Аудиопроцессор R2S15902FP

ok sorry for that...can you audio input diving and left and right separete option can you write in that sketch......please write sir

49

Re: Аудиопроцессор R2S15902FP

Коммутация отдельно правого канала и левого не возможна, даташит это не предусматривает. Я могу программировать только пользуясь инструкциями из даташита.

Re: Аудиопроцессор R2S15902FP

ok sir...thank you