26

Re: Аудиопроцессор TDA7419 + LCD TFT 2,4 (SPFD5408)

Такой будет работать?

Да, будет.

27

Re: Аудиопроцессор TDA7419 + LCD TFT 2,4 (SPFD5408)

У вас есть скетч от anton7558?

28

Re: Аудиопроцессор TDA7419 + LCD TFT 2,4 (SPFD5408)

нет

29

Re: Аудиопроцессор TDA7419 + LCD TFT 2,4 (SPFD5408)

От 7.27 это ваш последний скетч? Тестировался? В ближайшее время попробую протэстить

30 (2021-11-18 11:34:48 отредактировано sanj76a)

Re: Аудиопроцессор TDA7419 + LCD TFT 2,4 (SPFD5408)

Не понял, статья под TDA7419, а откуда взялся
в скетче PT2314

31

Re: Аудиопроцессор TDA7419 + LCD TFT 2,4 (SPFD5408)

Скетч переделан по просьбе пользователя на другой аудиопроцессор, пользователь удалил свои сообщения

32 (2021-11-18 12:03:28 отредактировано sanj76a)

Re: Аудиопроцессор TDA7419 + LCD TFT 2,4 (SPFD5408)

sanj76a пишет:

От  07.27 это ваш последний скетч? Тестировался? В ближайшее время попробую протэстить

Тестировался или нет?

33

Re: Аудиопроцессор TDA7419 + LCD TFT 2,4 (SPFD5408)

Результат теста я не помню, пользователь удалил переписку

34

Re: Аудиопроцессор TDA7419 + LCD TFT 2,4 (SPFD5408)

Я вносил только небольшие правки в проект, скетч дописывал и тестировал anton7558

35

Re: Аудиопроцессор TDA7419 + LCD TFT 2,4 (SPFD5408)

Ясно, значит тема затухла и продолжения не будет? Я хотел развить. Было б интересно с таким LCD сделать УНЧ, а то все время LCD1602, уже приелся и надоел

36

Re: Аудиопроцессор TDA7419 + LCD TFT 2,4 (SPFD5408)

Сам проект описан в первом посте, все протестировано. anton7558 адаптировал проект под свои нужды, Вы можете написать ему личное сообщение, возможно он Вам вышлет последнюю версия своего скетча.

37 (2021-12-01 11:30:54 отредактировано sanj76a)

Re: Аудиопроцессор TDA7419 + LCD TFT 2,4 (SPFD5408)

sanj76a пишет:

http://forum.rcl-radio.ru/uploads/images/2021/11/1c7e3e6868b4b8f186a7b60439ed2df6.jpg

Могли бы вы адаптировать скетч под этот LCD и под PT2313 или TDA7318 или TDA7313 на ваш выбор.

От anton7558 никакого толку

38 (2022-02-05 08:50:54 отредактировано sanj76a)

Re: Аудиопроцессор TDA7419 + LCD TFT 2,4 (SPFD5408)

http://forum.rcl-radio.ru/uploads/images/2022/02/633039682fe0f76d1d1c66f2b68e2b46.jpg

как уменьшить по горизонтали
http://wiki.amperka.ru/продукты:tft-lcd-240x320

39

Re: Аудиопроцессор TDA7419 + LCD TFT 2,4 (SPFD5408)

#define VOL_PLUSE 0x807F0AF5 // укажите свой код кнопки
#define VOL_MINUS 0x807F8A75
#define TREB_PLUSE 0x0000
#define TREB_MINUS 0x0000
#define BASS_PLUSE 0x0000
#define BASS_MINUS 0x0000
#define MENU 0x0000
#define MUTE 0x0000
#define IN_PLUSE 0x0000
#define IN_MINUS 0x0000



#include <Wire.h>
#include <SPI.h>
#include <EEPROM.h>
#include <PT2314.h>
#include <Adafruit_GFX.h>
#include <ILI9488.h>
#include "SPI.h"
#include "Adafruit_GFX.h"
//#include <Adafruit_ILI9341.h>
#include <Encoder.h>
#include <boarddefs.h>
#include <IRremote.h>          // http://rcl-radio.ru/wp-content/uploads/ … remote.zip
#include <Fonts/FreeMonoBoldOblique9pt7b.h>
PT2314 pt;                 //Выход ИМС SDA и SCL подключаются к аналоговым входам платы Arduino А4 и А5
IRrecv irrecv(6); // указываем вывод модуля IR приемника
decode_results ir;
#define TFT_DC 9
#define TFT_CS 10
//Encoder myEnc(6, 7);// DT, CLK
ILI9488 tft = ILI9488(TFT_CS, TFT_DC);// Подключения дисплея RESET-8 DC-9 CS-10 CDI(MOSI)-11 SDO(MISO)-12 SCLK-13
//ILI9341 tft = ILI9341(TFT_CS, TFT_DC);// Подключения дисплея RESET-8 DC-9 CS-10 CDI(MOSI)-11 SDO(MISO)-12 SCLK-13
//Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
int menu, pluse, minus, mute = 1;
int i, i2, vol = 50, set, treb, bass, in, gain, gain1, gain2, gain3, gain4, lf, rf, att_loun;
byte eeprom;
int  w = 1, w1 = 1, w2 = 1, w3 = 1, w4 = 1, w5 = 1, w6 = 1;//w-vol w1-tre w2-bas w3-in w4-lf w5-rf w6-loun
unsigned long time, times, t;
byte gr1, gr2;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(8, OUTPUT);
  digitalWrite(8, HIGH);
  tft.begin(); Serial.begin(9600);
  tft.setRotation(1); tft.setTextSize(1); tft.fillScreen(0x39E9); tft.setTextColor(ILI9488_WHITE); tft.setFont(&FreeMonoBoldOblique9pt7b);
//tft.setRotation(1); tft.setTextSize(1); tft.fillScreen(0x39E9); tft.setTextColor(ILI9341_WHITE); tft.setFont(&FreeMonoBoldOblique9pt7b);
  pinMode(2, INPUT); /// set
  pinMode(3, INPUT); /// menu
  pinMode(4, INPUT); /// +
  pinMode(5, INPUT); /// -
  // pinMode(A0, INPUT); // МЕНЮ КНОПКА SW энкодера
  vol = EEPROM.read(0); treb = EEPROM.read(1) - 15; bass = EEPROM.read(2) - 15; in = EEPROM.read(3);
  gain1 = EEPROM.read(4); gain2 = EEPROM.read(5); gain3 = EEPROM.read(6); gain4 = EEPROM.read(7); gain = EEPROM.read(8);
  lf = EEPROM.read(9); rf = EEPROM.read(10);
  att_loun = EEPROM.read(11);
  audio();
}

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

  times = millis();
  tft.setTextColor(ILI9488_WHITE);
//tft.setTextColor(ILI9341_WHITE);
  pluse = digitalRead(4); minus = digitalRead(5);
  tft.setTextColor(0xcdcd);
  tft.setCursor(170, 15); tft.print("Audio Sistem");              // название системы
  ////////////////////////////////////////////////////////////////////////////////////////////
  if (menu == 0) {
    tft.setTextColor(0xFFFF);
  } else {
    tft.setTextColor(0xcdcd);
  } tft.setCursor(5, 42); tft.print("VOLUME");
  if (menu == 1) {
    tft.setTextColor(0xFFFF);
  } else {
    tft.setTextColor(0xcdcd);
  } tft.setCursor(5, 67); tft.print("TREBLE");

  if (menu == 2) {
    tft.setTextColor(0xFFFF);
  } else {
    tft.setTextColor(0xcdcd);
  } tft.setCursor(5, 92); tft.print("BASS");

  // разделительные линии
  tft.drawFastHLine(5, 105, 470, 0xcdcd); tft.drawFastHLine(5, 163, 470, 0xcdcd); tft.drawFastHLine(5, 192, 470, 0xcdcd); //tft.drawFastHLine(5, 140, 470, 0xcdcd);




  if (digitalRead(3) == HIGH||ir.value == MENU) {
    menu++;
    cl1();
    eeprom = 1;
    time = millis();
    if (menu > 2) {
      menu = 0;
      set = 0;
    }
  }
  if (digitalRead(2) == HIGH) {
    set++;
    eeprom = 1;
    time = millis();
    menu = 100;
    if (set > 5) {
      set = 0;
      menu = 0;
    }
  }

  if ((pluse == HIGH && minus == HIGH)||ir.value == MUTE) {
    mute++;
    cl1();
    w = 1;
    if (mute > 1) {
      mute = 0;
    }
  }

  if (ir.value == VOL_PLUSE) {
    vol++;  // кнопка >
    gr1 = 1;
    gr2 = 0;
    cl1();
    time = millis();
    w = 1;
    if (vol > 55) {
      vol = 55;
    }
  }
  if (ir.value == 0xFFFFFFFF and gr1 == 1) {
    vol++;  // кнопка >>>>>>
    gr2 = 0;
    cl1();
    time = millis();
    w = 1;
    if (vol > 55) {
      vol = 55;
    }
  }
  if (ir.value == VOL_MINUS) {
    vol--;  // кнопка >
    gr1 = 0;
    gr2 = 1;
    cl1();
    time = millis();
    w = 1;
    if (vol < 0) {
      vol = 0;
    }
  }
  if (ir.value == 0xFFFFFFFF and gr2 == 1) {
    vol--;  // кнопка >>>>>>
    gr1 = 0;
    cl1();
    time = millis();
    w = 1;
    if (vol < 0) {
      vol = 0;
    }
  }




  if (pluse == HIGH && menu == 0) {
    vol++;
    eeprom = 1;
    time = millis();
    if (vol > 55) {
      vol = 55;
    } w = 1;
  }
  if (minus == HIGH && menu == 0) {

    vol--;
    eeprom = 1;
    time = millis();
    if (vol < 0) {
      vol = 0;
    } w = 1;
  }

  if (ir.value == TREB_PLUSE) {
    treb++;  // кнопка >
    gr1 = 1;
    gr2 = 0;
    cl1();
    time = millis();
    w1 = 1;
    if (treb > 7) {
      treb = 7;
    }
  }
  if (ir.value == 0xFFFFFFFF and gr1 == 1) {
    treb++;  // кнопка >>>>>>
    gr2 = 0;
    cl1();
    time = millis();
    w1 = 1;
    if (treb > 7) {
      treb = 7;
    }
  }
  if (ir.value == TREB_MINUS) {
    treb--;  // кнопка >
    gr1 = 0;
    gr2 = 1;
    cl1();
    time = millis();
    w1 = 1;
    if (treb < -7) {
      treb = -7;
    }
  }
  if (ir.value == 0xFFFFFFFF and gr2 == 1) {
    treb--;  // кнопка >>>>>>
    gr1 = 0;
    cl1();
    time = millis();
    w1 = 1;
    if (treb < -7) {
      treb = -7;
    }
  }


  if (pluse == HIGH && menu == 1) {
    treb++;
    if (treb > 7) {
      treb = 7;
    } w1 = 1;
  }
  if (minus == HIGH && menu == 1) {
    treb--;
    if (treb < -7) {
      treb = -7;
    } w1 = 1;
  }


  if (ir.value == BASS_PLUSE) {
    bass++;  // кнопка >
    gr1 = 1;
    gr2 = 0;
    cl1();
    time = millis();
    w2 = 1;
    if (bass > 7) {
      bass = 7;
    }
  }
  if (ir.value == 0xFFFFFFFF and gr1 == 1) {
    bass++;  // кнопка >>>>>>
    gr2 = 0;
    cl1();
    time = millis();
    w2 = 1;
    if (bass > 7) {
      bass = 7;
    }
  }
  if (ir.value == BASS_MINUS) {
    bass--;  // кнопка >
    gr1 = 0;
    gr2 = 1;
    cl1();
    time = millis();
    w2 = 1;
    if (bass < -7) {
      bass = -7;
    }
  }
  if (ir.value == 0xFFFFFFFF and gr2 == 1) {
    bass--;  // кнопка >>>>>>
    gr1 = 0;
    cl1();
    time = millis();
    w2 = 1;
    if (bass < -7) {
      bass = -7;
    }
  }
 
  if (pluse == HIGH && menu == 2) {
    bass++;
    if (bass > 7) {
      bass = 7;
    } w2 = 1;
  }
  if (minus == HIGH && menu == 2) {
    bass--;
    if (bass < -7) {
      bass = -7;
    } w2 = 1;
  }

  if (w == 1) {
    audio();
    for (i = 0, i2 = 0; i <= 58; i++, i2++) {
      if (i2 < vol) {} else {
        i2 = vol;
      }
      if (mute == 1) {
        tft.drawFastHLine(i2 * 5.5 + 78, 31, 10, 0x000F);
      } else {
        tft.drawFastHLine(i2 * 5.5 + 78, 31, 10, 0x0f800);
      } tft.drawFastHLine(i * 5.5 + 80, 31, 10, 0xcdcd);
      if (mute == 1) {
        tft.drawFastHLine(i2 * 5.5 + 78, 33, 10, 0x000F);
      } else {
        tft.drawFastHLine(i2 * 5.5 + 78, 33, 10, 0x0f800);
      } tft.drawFastHLine(i * 5.5 + 80, 33, 10, 0xcdcd);
      if (mute == 1) {
        tft.drawFastHLine(i2 * 5.5 + 78, 35, 10, 0x000F);
      } else {
        tft.drawFastHLine(i2 * 5.5 + 78, 35, 10, 0x0f800);
      } tft.drawFastHLine(i * 5.5 + 80, 35, 10, 0xcdcd);
      if (mute == 1) {
        tft.drawFastHLine(i2 * 5.5 + 78, 37, 10, 0x000F);
      } else {
        tft.drawFastHLine(i2 * 5.5 + 78, 37, 10, 0x0f800);
      } tft.drawFastHLine(i * 5.5 + 80, 37, 10, 0xcdcd);
      if (mute == 1) {
        tft.drawFastHLine(i2 * 5.5 + 78, 39, 10, 0x000F);
      } else {
        tft.drawFastHLine(i2 * 5.5 + 78, 39, 10, 0x0f800);
      } tft.drawFastHLine(i * 5.5 + 80, 39, 10, 0xcdcd);
      if (mute == 1) {
        tft.drawFastHLine(i2 * 5.5 + 78, 41, 10, 0x000F);
      } else {
        tft.drawFastHLine(i2 * 5.5 + 78, 41, 10, 0x0f800);
      } tft.drawFastHLine(i * 5.5 + 80, 41, 10, 0xcdcd);
      if (mute == 1) {
        tft.drawFastHLine(i2 * 5.5 + 78, 43, 10, 0x000F);
      } else {
        tft.drawFastHLine(i2 * 5.5 + 78, 43, 10, 0x0f800);
      } tft.drawFastHLine(i * 5.5 + 80, 43, 10, 0xcdcd);
    } w = 0; tft.setTextColor(0x07FF); tft.fillRect(413, 30, 42, 15, 0x39E9); tft.setCursor(413, 42); tft.print(-55 + vol); tft.setCursor(442, 42); tft.print(" dB");

    if ( menu == 0 && w == 0 ) {
      tft.setTextSize(2); tft.fillRect(250, 245, 180, 30, 0x39E9); tft.setCursor(250, 270); tft.setTextColor(0x1D74); tft.print("Vol:"); tft.setCursor(360, 270); tft.print(-55 + vol); tft.setCursor(410, 270); tft.print(" dB");
    }
  }

  if (w1 == 1) {
    audio();
    for (i = 0, i2 = 0; i <= 80; i++, i2++) {
      i2 = treb * 5 + 40;
      tft.drawFastHLine(i * 4 + 80, 56, 10, 0xcdcd); tft.drawFastHLine(i2 * 4 + 80, 56, 10, 0x000F); tft.drawFastHLine(i * 4 + 80, 56, 10, 0xcdcd);
      tft.drawFastHLine(i * 4 + 80, 58, 10, 0xcdcd); tft.drawFastHLine(i2 * 4 + 80, 58, 10, 0x000F); tft.drawFastHLine(i * 4 + 80, 58, 10, 0xcdcd);
      tft.drawFastHLine(i * 4 + 80, 60, 10, 0xcdcd); tft.drawFastHLine(i2 * 4 + 80, 60, 10, 0x000F); tft.drawFastHLine(i * 4 + 80, 60, 10, 0xcdcd);
      tft.drawFastHLine(i * 4 + 80, 62, 10, 0xcdcd); tft.drawFastHLine(i2 * 4 + 80, 62, 10, 0x000F); tft.drawFastHLine(i * 4 + 80, 62, 10, 0xcdcd);
      tft.drawFastHLine(i * 4 + 80, 64, 10, 0xcdcd); tft.drawFastHLine(i2 * 4 + 80, 64, 10, 0x000F); tft.drawFastHLine(i * 4 + 80, 64, 10, 0xcdcd);
      tft.drawFastHLine(i * 4 + 80, 66, 10, 0xcdcd); tft.drawFastHLine(i2 * 4 + 80, 66, 10, 0x000F); tft.drawFastHLine(i * 4 + 80, 66, 10, 0xcdcd);
      tft.drawFastHLine(i * 4 + 80, 68, 10, 0xcdcd); tft.drawFastHLine(i2 * 4 + 80, 68, 10, 0x000F); tft.drawFastHLine(i * 4 + 80, 68, 10, 0xcdcd);
    } w1 = 0; tft.setTextSize(1); tft.setTextColor(0x07FF); tft.fillRect(413, 55, 40, 15, 0x39E9); tft.setCursor(413, 67); tft.print(treb); tft.setCursor(442, 67); tft.print(" dB"); w1 = 0;

    if ( menu == 1 && w1 == 0 ) {
      tft.setTextSize(2); tft.fillRect(250, 245, 180, 30, 0x39E9); tft.setTextColor(0x1D74); tft.setCursor(250, 270); tft.print("Tre:");tft.setCursor(360, 270); tft.print(treb);
    }
  }

  if (w2 == 1) {
    audio();
    for (i = 0, i2 = 0; i <= 80; i++, i2++) {
      i2 = bass * 5 + 40;
      tft.drawFastHLine(i * 4 + 80, 81, 10, 0xcdcd); tft.drawFastHLine(i2 * 4 + 80, 81, 10, 0x000F); tft.drawFastHLine(i * 4 + 80, 81, 10, 0xcdcd);
      tft.drawFastHLine(i * 4 + 80, 83, 10, 0xcdcd); tft.drawFastHLine(i2 * 4 + 80, 83, 10, 0x000F); tft.drawFastHLine(i * 4 + 80, 83, 10, 0xcdcd);
      tft.drawFastHLine(i * 4 + 80, 85, 10, 0xcdcd); tft.drawFastHLine(i2 * 4 + 80, 85, 10, 0x000F); tft.drawFastHLine(i * 4 + 80, 85, 10, 0xcdcd);
      tft.drawFastHLine(i * 4 + 80, 87, 10, 0xcdcd); tft.drawFastHLine(i2 * 4 + 80, 87, 10, 0x000F); tft.drawFastHLine(i * 4 + 80, 87, 10, 0xcdcd);
      tft.drawFastHLine(i * 4 + 80, 89, 10, 0xcdcd); tft.drawFastHLine(i2 * 4 + 80, 89, 10, 0x000F); tft.drawFastHLine(i * 4 + 80, 89, 10, 0xcdcd);
      tft.drawFastHLine(i * 4 + 80, 91, 10, 0xcdcd); tft.drawFastHLine(i2 * 4 + 80, 91, 10, 0x000F); tft.drawFastHLine(i * 4 + 80, 91, 10, 0xcdcd);
      tft.drawFastHLine(i * 4 + 80, 93, 10, 0xcdcd); tft.drawFastHLine(i2 * 4 + 80, 93, 10, 0x000F); tft.drawFastHLine(i * 4 + 80, 93, 10, 0xcdcd);
    } w2 = 0; tft.setTextSize(1); tft.setTextColor(0x07FF); tft.fillRect(413, 80, 40, 15, 0x39E9); tft.setCursor(413, 92); tft.print(bass); tft.setCursor(442, 92); tft.print(" dB"); w2 = 0;

    if ( menu == 2 && w2 == 0 ) {
      tft.setTextSize(2); tft.fillRect(250, 245, 180, 30, 0x39E9); tft.setCursor(250, 270);tft.setTextColor(0x1D74); tft.print("Bas:"); tft.setCursor(360, 270); tft.print(bass);
    }



  }
  ///////////////////////////////////////////////////////////input + gain//////////////////////////////////////////////////////////////////////////////////////////
  tft.setTextSize(1);

   if (ir.value == IN_PLUSE) {
    in++;  // кнопка >
    gr1 = 1;
    gr2 = 0;
    cl1();
    time = millis();
    w3 = 1;
    if (in > 4) {
      in = 4;
    }
  }
  if (ir.value == IN_MINUS) {
    in--;  // кнопка >
    gr1 = 0;
    gr2 = 1;
    cl1();
    time = millis();
    w3 = 1;
    if (in < 1) {
      in = 1;
    }
  }
 
  if (pluse == HIGH && set == 1) {
    in++;
    if (in > 4) {
      in = 4;
    } audio();
    w3 = 1;
  }
  if (minus == HIGH && set == 1) {
    in--;
    if (in < 1) {
      in = 1;
    } audio();
    w3 = 1;
  }
  tft.setCursor(5, 127); if (set == 1) {
    tft.setTextColor(0xFFFF);
  } else {
    tft.setTextColor(0xcdcd);
  } tft.print("INPUT: ");
  tft.setCursor(110, 127); if (in == 1 && set == 1) {
    tft.setTextColor(0xFFFF);
  } else if (in == 1 && set != 1) {
    tft.setTextColor(0x07FF);
  } else {
    tft.setTextColor(0xcdcd);
  } tft.print("IN 1");
  tft.setCursor(210, 127); if (in == 2 && set == 1) {
    tft.setTextColor(0xFFFF);
  } else if (in == 2 && set != 1) {
    tft.setTextColor(0x07FF);
  } else {
    tft.setTextColor(0xcdcd);
  } tft.print("IN 2");
  tft.setCursor(310, 127); if (in == 3 && set == 1) {
    tft.setTextColor(0xFFFF);
  } else if (in == 3 && set != 1) {
    tft.setTextColor(0x07FF);
  } else {
    tft.setTextColor(0xcdcd);
  } tft.print("IN 3");
  tft.setCursor(410, 127); if (in == 4 && set == 1) {
    tft.setTextColor(0xFFFF);
  } else if (in == 4 && set != 1) {
    tft.setTextColor(0x07FF);
  } else {
    tft.setTextColor(0xcdcd);
  } tft.print("IN 4");
  tft.setCursor(5, 152);
  if (set == 2) {
    tft.setTextColor(0xFFFF);
  } else {
    tft.setTextColor(0xcdcd);
  }
  if (in == 1) {
    gain = gain1;
    tft.print("GAIN IN 1");                                        //Чуствительность входа
  }
  if (in == 2) {
    gain = gain2;
    tft.print("GAIN IN 2");
  }
  if (in == 3) {
    gain = gain3;
    tft.print("GAIN IN 3");
  }
  if (in == 4) {
    gain = gain4;
    tft.print("GAIN IN 4");
  }
  if (pluse == HIGH && set == 2) {
    gain++;
    if (gain > 15) {
      gain = 15;
    } audio();
    w3 = 1;
  }
  if (minus == HIGH && set == 2) {
    gain--;
    if (gain < 0) {
      gain = 0;
    } audio();
    w3 = 1;
  }
  if (in == 1) {
    gain1 = gain;
  } if (in == 2) {
    gain2 = gain;
  } if (in == 3) {
    gain3 = gain;
  }
  if (in == 4) {
    gain4 = gain;
  }
  if (w3 == 1) {
    audio();
    for (i = 0, i2 = 0; i <= 15; i++, i2++) {
      if (i2 < gain) {} else {
        i2 = gain;
      }
      tft.drawFastHLine(i2 * 4 + 120, 141, 10, 0x000F); tft.drawFastHLine(i * 4 + 122, 141, 10, 0xcdcd);
      tft.drawFastHLine(i2 * 4 + 120, 143, 10, 0x000F); tft.drawFastHLine(i * 4 + 122, 143, 10, 0xcdcd);
      tft.drawFastHLine(i2 * 4 + 120, 145, 10, 0x000F); tft.drawFastHLine(i * 4 + 122, 145, 10, 0xcdcd);
      tft.drawFastHLine(i2 * 4 + 120, 147, 10, 0x000F); tft.drawFastHLine(i * 4 + 122, 147, 10, 0xcdcd);
      tft.drawFastHLine(i2 * 4 + 120, 149, 10, 0x000F); tft.drawFastHLine(i * 4 + 122, 149, 10, 0xcdcd);
      tft.drawFastHLine(i2 * 4 + 120, 151, 10, 0x000F); tft.drawFastHLine(i * 4 + 122, 151, 10, 0xcdcd);
      tft.drawFastHLine(i2 * 4 + 120, 153, 10, 0x000F); tft.drawFastHLine(i * 4 + 122, 153, 10, 0xcdcd);
    } w3 = 0; tft.fillRect(93, 140, 15, 15, 0x39E9);
  }
  /////////////////////////////баланс////////////////////////////////////////////////////////////
  tft.setCursor(210, 152); if (set == 3) {
    tft.setTextColor(0xFFFF);
  } else {
    tft.setTextColor(0xcdcd);
  } tft.print("LF ");
  tft.setCursor(310, 152); if (set == 4) {
    tft.setTextColor(0xFFFF);
  } else {
    tft.setTextColor(0xcdcd);
  } tft.print("RF ");

  if (pluse == HIGH && set == 3) {
    lf++;
    if (lf > 30) {
      lf = 30;
    } audio();
    w4 = 1;
  }
  if (minus == HIGH && set == 3) {
    lf--;
    if (lf < 0) {
      lf = 0;
    } audio();
    w4 = 1;
  }
  if (w4 == 1) {
    audio();
    for (i = 0, i2 = 0; i <= 30; i++, i2++) {
      if (i2 < lf) {} else {
        i2 = lf;
      }
      tft.drawFastHLine(i2 + 245, 141, 1, 0x000F); tft.drawFastHLine(i + 246, 141, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 245, 143, 1, 0x000F); tft.drawFastHLine(i + 246, 143, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 245, 145, 1, 0x000F); tft.drawFastHLine(i + 246, 145, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 245, 147, 1, 0x000F); tft.drawFastHLine(i + 246, 147, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 245, 149, 1, 0x000F); tft.drawFastHLine(i + 246, 149, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 245, 151, 1, 0x000F); tft.drawFastHLine(i + 246, 151, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 245, 153, 1, 0x000F); tft.drawFastHLine(i + 246, 153, 1, 0xcdcd);
    } w4 = 0;
  }

  if (pluse == HIGH && set == 4) {
    rf++;
    if (rf > 30) {
      rf = 30;
    } audio();
    w5 = 1;
  }
  if (minus == HIGH && set == 4) {
    rf--;
    if (rf < 0) {
      rf = 0;
    } audio();
    w5 = 1;
  }
  if (w5 == 1) {
    audio();
    for (i = 0, i2 = 0; i <= 30; i++, i2++) {
      if (i2 < rf) {} else {
        i2 = rf;
      }
      tft.drawFastHLine(i2 + 345, 141, 1, 0x000F); tft.drawFastHLine(i + 346, 141, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 345, 143, 1, 0x000F); tft.drawFastHLine(i + 346, 143, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 345, 145, 1, 0x000F); tft.drawFastHLine(i + 346, 145, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 345, 147, 1, 0x000F); tft.drawFastHLine(i + 346, 147, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 345, 149, 1, 0x000F); tft.drawFastHLine(i + 346, 149, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 345, 151, 1, 0x000F); tft.drawFastHLine(i + 346, 151, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 345, 153, 1, 0x000F); tft.drawFastHLine(i + 346, 153, 1, 0xcdcd);
    } w5 = 0;
  }
  ///////////////////////////////////////тонокомпенсация//////////////////////////////////////////////////////////////////
  tft.setCursor(5, 182); if (set == 5) {
    tft.setTextColor(0xFFFF);
  } else {
    tft.setTextColor(0xcdcd);
  } tft.print("LOUDNESS: ");

  if (pluse == HIGH && set == 5) {
    att_loun++;
    if (att_loun > 14) {
      att_loun = 14;
    } audio();
    w6 = 1;
  }
  if (minus == HIGH && set == 5) {
    att_loun--;
    if (att_loun < 0) {
      att_loun = 0;
    } audio();
    w6 = 1;
  }
  if (w6 == 1) {
    for (i = 0, i2 = 0; i <= 14; i++, i2++) {
      if (i2 < att_loun) {} else {
        i2 = att_loun;
      }
      tft.drawFastHLine(i2 + 115, 170, 1, 0xf800); tft.drawFastHLine(i + 116, 170, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 115, 172, 1, 0xf800); tft.drawFastHLine(i + 116, 172, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 115, 174, 1, 0xf800); tft.drawFastHLine(i + 116, 174, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 115, 176, 1, 0xf800); tft.drawFastHLine(i + 116, 176, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 115, 178, 1, 0xf800); tft.drawFastHLine(i + 116, 178, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 115, 180, 1, 0xf800); tft.drawFastHLine(i + 116, 180, 1, 0xcdcd);
      tft.drawFastHLine(i2 + 115, 182, 1, 0xf800); tft.drawFastHLine(i + 116, 182, 1, 0xcdcd);
    } w6 = 0;
  }
  if (millis() - time > 1000 && eeprom == 1) {
    EEPROM.update(0, vol); EEPROM.update(1, treb + 15); EEPROM.update(2, bass + 15); EEPROM.update(3, in);
    EEPROM.update(4, gain1); EEPROM.update(5, gain2); EEPROM.update(6, gain3); EEPROM.update(7, gain4);
    EEPROM.update(8, gain); EEPROM.update(9, lf); EEPROM.update(10, rf); EEPROM.update(11, att_loun);

    eeprom = 0;
  }
  times = millis() - times;
  Serial.println(times);
}                              //loop
void audio() {
  pt.setVolume(vol); // int 0...55 === -70...0 dB step 1.25 dB (Уровень громкости Лк+Пк)
  pt.setAttL(lf); // int 0...23 === 0...-30 db step 1.25 dB > int 31 === mute on (регулировка баланса по Лк практически до 0)
  pt.setAttR(rf); // int 0...23 === 0...-30 dB step 1.25 dB > int 31 === mute on (регулировка баланса по Пк практически до 0)
  pt.setSwitch(in, att_loun, gain);
  // input      int 0..2 === IN 1...3 (выбор стереовхода 4)
  // loudness   int 0...1 === 1-on 0-off (тонокомпесация)
  // input gain int 0...3 === 0...11.25dB step 3.75 dB(регулировка предусиления по входам)
  pt.setBass(bass);   // int -7...+7 === -14...+14 dB step 2 dB (регулировка низких частот)
  pt.setTreble(treb); // int -7...+7 === -14...+14 dB step 2 dB (регулировка верхних частот)
}

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