файлы и код к видео
плата в формате .lay
код из видео
#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('-'); } } }