Стерео аудиопроцессор TDA8424, TDA8425, код и плата из видео

файлы и код к видео


плата в формате .lay

tda8424

код из видео


#include <Wire.h>
 
 
byte VOLL    =  0b11111011; ///  уровни при включении, вообще это в еепром нужно хранить
byte VOLR    =  0b11111011;
byte BASS    =  0b11110110;
byte TREBLE  =  0b11110110;
byte SWITCH  =  0b11001111;

#define ADDRESS   0x41   

#define MAD_VOLL      0x00
#define MAD_VOLR      0x01
#define MAD_BASS      0x02
#define MAD_TREBLE    0x03
#define MAD_SWITCH    0x08


 //// FM
float f = 104.7;

void setFrequency(float frequency){
   unsigned int frequencyB = 4 * (frequency * 1000000 + 225000) / 32768; 
 byte frequencyH = frequencyB >> 8;
 byte frequencyL = frequencyB & 0XFF;
 Wire.beginTransmission(0x60); 
 Wire.write(frequencyH);
 Wire.write(frequencyL);
 Wire.write(0xB0);
 Wire.write(0x10);
 Wire.write(0x00);
 Wire.endTransmission();
}
//////////

void volPlus(){
  if (VOLL < 0b11111011)  VOLL++;
  if (VOLR < 0b11111011)  VOLR++;  
Serial.print(VOLL, BIN);
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_VOLL);
   Wire.write (VOLL); 
   Wire.endTransmission();
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_VOLR);
   Wire.write (VOLR); 
   Wire.endTransmission();
}

void volMinus(){
  if (VOLL > 0b11011011) VOLL--;
  if (VOLR > 0b11011011) VOLR--;
Serial.print(VOLL, BIN);
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_VOLL);
   Wire.write (VOLL); 
   Wire.endTransmission();
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_VOLR);
   Wire.write (VOLR); 
   Wire.endTransmission();
}

void balansPlusL(){
  if (VOLL < 0b11111011)  VOLL++;
  if (VOLR > 0b11011011)  VOLR--;  
Serial.print(VOLL, BIN);
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_VOLL);
   Wire.write (VOLL); 
   Wire.endTransmission();
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_VOLR);
   Wire.write (VOLR); 
   Wire.endTransmission();
}

void balansPlusR(){
  if (VOLL > 0b11011011)  VOLL--;
  if (VOLR < 0b11111011)  VOLR++;  
Serial.print(VOLL, BIN);
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_VOLL);
   Wire.write (VOLL); 
   Wire.endTransmission();
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_VOLR);
   Wire.write (VOLR); 
   Wire.endTransmission();
}

void bassPlus(){
   if (BASS < 0b11111011) BASS++; 
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_BASS);
   Wire.write (BASS);
   Wire.endTransmission(); 
} 

void bassMinus(){
   if (BASS > 0b11110010) BASS--; 
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_BASS);
   Wire.write (BASS);
   Wire.endTransmission(); 
}
 
void treblePlus(){
   if (TREBLE < 0b11111011) TREBLE++; 
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_TREBLE);
   Wire.write (TREBLE);
   Wire.endTransmission(); 
}

void trebleMinus(){
 
  if (TREBLE > 0b11110010) TREBLE--; 
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_TREBLE);
   Wire.write (TREBLE);
   Wire.endTransmission(); 
}


void setup() {
  Serial.begin(9600);
   Wire.begin();
   setFrequency(f);  
  
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_VOLL);
   Wire.write (VOLL); 
   Wire.endTransmission();
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_VOLR);
   Wire.write (VOLR);
   Wire.endTransmission();
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_BASS);
   Wire.write (BASS);
   Wire.endTransmission();
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_TREBLE);
   Wire.write (TREBLE);
   Wire.endTransmission();
   Wire.beginTransmission(ADDRESS);
   Wire.write (MAD_SWITCH);
   Wire.write (SWITCH);
   Wire.endTransmission();

}

void loop() {
   if (Serial.available()) {
    int val = Serial.read();
    if (val == '1'){
    volPlus();
    Serial.println('+');
  }
  else if (val == '2') bassPlus();
  else if (val == '3') bassMinus();
  else if (val == '4') treblePlus();
  else if (val == '5') trebleMinus();
  else if (val == '6') balansPlusL();
  else if (val == '7') balansPlusR();
  else{ 
    volMinus();
  Serial.println('-');
  }

  }
}