esp8266控制山水小功放-Arduino中文社区 - Powered by Discuz! Archiver

zong0001 发表于 2022-4-24 15:27

esp8266控制山水小功放

本帖最后由 zong0001 于 2022-4-24 15:29 编辑

网上掏了个山水小功放,卖家说不出声就便宜出。到手后发现只有功放主机,需要控制程序才行。

音量音调控制芯片是PT2314,找了一片ESP8266,实际测了一下30针的引脚定义。

主要用到12v SCL SDA GND另外两路音源输入。

写了两天的程序,终于可以用了,用1602液晶显示信息,用一个旋转编码器调整音量等参数,把所有能用的功能都用上了。无线连接就是用了NTP的自动对时。

旋转编码器短按选择各个参数,长按待机。
static const String lcdInfo = {"Volume","Bass","Treble","Left","Right","Channel","Gain","Loudness","Serial"};
这个是主要函数。
void to_2314() {
uint8_t Volume = my_power;
switch (keyCount) {
    case 0://音量
      audioswitch.volume(64 - Volume); //音量*
      if (Volume == 0)    lcd1 += "Min";
      else if (Volume >= 63)lcd1 += "Max";
      else lcd1 += "-" + String((64 - Volume) * 1.25) + "dB";
      break;
    case 1:
      audioswitch.bass(my_power);//低音0~15
      lcd1 +=bassInfo] + "dB";
      break;
    case 2:
      audioswitch.treble(my_power);//高音0~15
      lcd1 +=bassInfo] + "dB";
      break;
    case 3:
      //audioswitch.attenuation(L_R], L_R]);
      audioswitch.attLR(0, 31 - my_power);
      lcd1 +=LRdb(31 - my_power);
      break;
    case 4:
       audioswitch.attLR(1, 31 - my_power);
      lcd1 +=LRdb(31 - my_power);
      break;
    case 5:
      // audioswitch.channel(my_power);   // switch to channel 1... 0-3 => channel 1-4
      lcd1 +=inputInfo];
      my_power = channelInfo];
      my_power = channelInfo];
      //      audioswitch.gain(my_power);      break;
   audioswitch.channelInfo(my_power, my_power, my_power);
      break;
    case 6:
       lcd1 +=gainStr(my_power);
      channelInfo] = my_power;
      audioswitch.channelInfo(my_power, my_power, my_power);
      break;
    case 7:
      if (my_power) {
      // audioswitch.loudnessOff();   //
      lcd1 +="On";
      } else {
      //audioswitch.loudnessOn();   //
      lcd1 +="Off";
      }
      channelInfo] = my_power;
      audioswitch.channelInfo(my_power, my_power, my_power);
      break;
    case 8:
      if (my_power) {
      lcd1 +="On";
      } else {
      lcd1 +="Off";
      }
      break;
}
lcd1 += "          ";
}


库文件

imhm 发表于 2022-4-24 20:11

本帖最后由 imhm 于 2022-4-24 20:18 编辑

厉害啊。。我这里正好有套带CD头,但是坏了的小山水印象。。。下面功放应该就是你这种。
PT2314 库不用设置I2C的管脚? 小白不懂啊。


zong0001 发表于 2022-4-24 20:26

imhm 发表于 2022-4-24 20:11
厉害啊。。我这里正好有套带CD头,但是坏了的小山水印象。。。下面功放应该就是你这种。
PT2314 库不用设置 ...

单片机的默认IIC引脚,328P是A4,A5,8266是D1,D2。我上面那个表里标注了

imhm 发表于 2022-4-25 09:33

zong0001 发表于 2022-4-24 20:26
单片机的默认IIC引脚,328P是A4,A5,8266是D1,D2。我上面那个表里标注了

主控可以换ESP32,然后把蓝牙音频也做进去,这里有个用esp32+解码模块做蓝牙音频的帖子。

q秦时明月 发表于 2022-6-6 14:10

厉害啊,大神牛牛牛
页: [1]
查看完整版本: esp8266控制山水小功放