{"id":111051,"date":"2022-01-07T18:18:50","date_gmt":"2022-01-07T12:18:50","guid":{"rendered":"http:\/\/rcl-radio.ru\/?p=111051"},"modified":"2022-04-03T10:05:49","modified_gmt":"2022-04-03T04:05:49","slug":"esp32-pcm5102a-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%bd%d0%b5%d1%82-%d1%80%d0%b0%d0%b4%d0%b8%d0%be-arduino","status":"publish","type":"post","link":"http:\/\/rcl-radio.ru\/?p=111051","title":{"rendered":"ESP32 + PCM5102A &#8212; \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e (Arduino)"},"content":{"rendered":"<p>\u041d\u0430 \u0431\u0430\u0437\u0435 ESP32 (<a href=\"http:\/\/rcl-radio.ru\/?p=92558\">ESP32 DevKit v1 Wi-Fi Bluetooth ESP32-WROOM-32<\/a>) \u0438 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0433\u043e \u0426\u0410\u041f PMC5102A \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e \u0434\u043b\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0433\u043e \u0440\u0430\u0434\u0438\u043e (\u0434\u043e 320Kbit\/s16-bit 96kHz).<\/p>\n<p>\u0412 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b:<\/p>\n<ul>\n<li>ESP32 DevKit v1 Wi-Fi Bluetooth ESP32-WROOM-32<\/li>\n<li>DAC PCM5102A<\/li>\n<li>LCD1602 \u0441 \u043c\u043e\u0434\u0443\u043b\u0435\u043c I2C<\/li>\n<li>\u042d\u043d\u043a\u043e\u0434\u0435\u0440 KY-040 (\u043c\u043e\u0434\u0443\u043b\u044c)<\/li>\n<li>\u0422\u0430\u043a\u0442\u043e\u0432\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430\u00a0 &#8212; 2 \u0448\u0442<\/li>\n<\/ul>\n<p><strong>ESP32<\/strong><\/p>\n<div class=\"entry-content\">\n<p><b><a class=\"highslide-image\" href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/01\/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-%D0%BE%D1%82-2021-01-24-151344.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-92565\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/01\/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-%D0%BE%D1%82-2021-01-24-151344.png\" sizes=\"auto, (max-width: 307px) 100vw, 307px\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-01-24-151344.png 307w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2021\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2021-01-24-151344-200x116.png 200w\" alt=\"\" width=\"307\" height=\"178\" \/><\/a>ESP32<\/b>\u00a0\u2014 \u0441\u0435\u0440\u0438\u044f \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u0438\u0445\u00a0\u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432\u00a0\u0441 \u043d\u0438\u0437\u043a\u0438\u043c \u044d\u043d\u0435\u0440\u0433\u043e\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435\u043c. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439\u00a0\u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043d\u0430 \u043a\u0440\u0438\u0441\u0442\u0430\u043b\u043b\u0435\u00a0\u0441 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u00a0Wi-Fi\u00a0\u0438\u00a0Bluetooth\u00a0\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 \u0438 \u0430\u043d\u0442\u0435\u043d\u043d\u0430\u043c\u0438. \u0412 \u0441\u0435\u0440\u0438\u0438 ESP32 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043d\u043e\u0435 \u044f\u0434\u0440\u043e\u00a0Tensilica\u00a0Xtensa\u00a0LX6 \u0432 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430\u0445 \u0441 \u0434\u0432\u0443\u043c\u044f \u0438 \u043e\u0434\u043d\u0438\u043c \u044f\u0434\u0440\u043e\u043c. \u0412 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0440\u0430\u0434\u0438\u043e\u0447\u0430\u0441\u0442\u043e\u0442\u043d\u044b\u0439 \u0442\u0440\u0430\u043a\u0442:\u00a0\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0440, \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0430\u043d\u0442\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u043c\u0443\u0442\u0430\u0442\u043e\u0440\u044b, \u0440\u0430\u0434\u0438\u043e\u0447\u0430\u0441\u0442\u043e\u0442\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b,\u00a0\u043c\u0430\u043b\u043e\u0448\u0443\u043c\u044f\u0449\u0438\u0439 \u0443\u0441\u0438\u043b\u0438\u0442\u0435\u043b\u044c, \u0443\u0441\u0438\u043b\u0438\u0442\u0435\u043b\u044c \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0438, \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u0438 \u043c\u043e\u0434\u0443\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u0435\u043c. ESP32 \u0441\u043e\u0437\u0434\u0430\u043d \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0435\u0439\u00a0Espressif Systems, \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0435\u0439, \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0432\u00a0\u0428\u0430\u043d\u0445\u0430\u0435, \u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0435\u0439\u00a0TSMC\u00a0\u043f\u043e \u0442\u0435\u0445\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443 40 \u043d\u043c. \u0421\u0435\u0440\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0435\u043c\u043d\u0438\u043a\u043e\u043c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432\u00a0ESP8266.<\/p>\n<p>\u0425\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 ESP32 DevKit v1:<\/p>\n<ul>\n<li>\u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440: ESP32-WROOM-32<\/li>\n<li>\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440: 2-\u044f\u0434\u0435\u0440\u043d\u044b\u0439 Xtensa Dual-Core 32-bit LX6<\/li>\n<li>\u0442\u0430\u043a\u0442\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430: 80, 160 \u0438\u043b\u0438 240 \u041c\u0413\u0446<\/li>\n<li>\u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c: 520 \u041a\u0431\u0430\u0439\u0442;<\/li>\n<li>\u0444\u043b\u044d\u0448-\u043f\u0430\u043c\u044f\u0442\u044c: 448 \u041a\u0431\u0430\u0439\u0442;<\/li>\n<li>\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c USB \u2013 UART<\/li>\n<li>\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u044b\u0432\u043e\u0434\u043e\u0432 \u043f\u043b\u0430\u0442\u044b: 30;<\/li>\n<li>Bluetooth: \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 4.2 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438\u00a0 BR\/EDR \u0438 Low Energy<\/li>\n<li>WiFi: \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 IEEE 802.11b\/g\/n\/e\/i \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c WFA, WPA\/WPA2 \u0438 WAPI \u043d\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 2,4 \u0413\u0413\u0446 \u0441\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e \u0434\u043e 150 \u041c\u0431\u0438\u0442\/\u0441, \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0441\u0442\u0435\u043a TCP\/IP<\/li>\n<li>\u0430\u043d\u0442\u0435\u043d\u043d\u0430: PCB<\/li>\n<li>\u0440\u0435\u0436\u0438\u043c\u044b \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438: STA\/AP\/STA+AP<\/li>\n<li>\u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0440\u0438\u0435\u043c\u0430\/\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445: 400 \u043c;<\/li>\n<li>\u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u044f: \u0410\u0426\u041f 12 \u0431\u0438\u0442 \u0434\u043e 18 \u043a\u0430\u043d\u0430\u043b\u043e\u0432, \u0426\u0410\u041f 8 \u0431\u0438\u0442 2 \u043a\u0430\u043d\u0430\u043b\u0430, \u0434\u0430\u0442\u0447\u0438\u043a \u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b, 4x SPI, 2x I2S, 2x I2C, 3x UART, Ethernet \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440, CAN 2.0, \u0432\u0435\u0434\u0443\u0449\u0438\u0439 SD\/eMMC\/SDIO, \u0432\u0435\u0434\u043e\u043c\u044b\u0439 SDIO\/SPI, \u0438\u043d\u0444\u0440\u0430\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043f\u0440\u0438\u0435\u043c\u043e\u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a, \u0428\u0418\u041c \u0434\u043e 16 \u043a\u0430\u043d\u0430\u043b\u043e\u0432, \u0434\u0430\u0442\u0447\u0438\u043a \u0425\u043e\u043b\u043b\u0430, \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0439 \u043f\u0440\u0435\u0434\u0443\u0441\u0438\u043b\u0438\u0442\u0435\u043b\u044c, \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043b\u044c\u0449\u0438\u043a\u0438, \u0445\u0435\u0448\u0435\u0440\u044b, \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b<\/li>\n<li>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0441\u0440\u0435\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438: Arduino IDE, PlatformIO, Espressif IDF (IoT Development Framework), Micropython, JavaScript, LUA<\/li>\n<\/ul>\n<p><strong>PCM5102A<\/strong><\/p>\n<ul>\n<li>\u041d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u043f\u043e\u043b\u044f\u0440\u043d\u043e\u0435 \u2026 3,3 \u0412<\/li>\n<li>\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\/\u0448\u0443\u043c \u2026 112 \u0434\u0411<\/li>\n<li>\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u2026 112 \u0434\u0411<\/li>\n<li>\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0435\u043b\u0438\u043d\u0435\u0439\u043d\u044b\u0445 \u0438\u0441\u043a\u0430\u0436\u0435\u043d\u0438\u0439 (THD+N) \u2026 -93 \u0434\u0411<\/li>\n<li>\u0412\u044b\u0445\u043e\u0434\u043d\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u2026 2.1 Vrms<\/li>\n<li>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0442 8 \u043a\u0413\u0446 \u0434\u043e 384 \u043a\u0413\u0446<\/li>\n<li>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u2026 I2S, Left-Justified \/ 16, 24 \u0438 32 \u0431\u0438\u0442<\/li>\n<\/ul>\n<p style=\"text-align: center;\"><strong>\u0421\u0445\u0435\u043c\u0430 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e<\/strong><\/p>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-09-090503.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-111279\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-09-090503.png\" alt=\"\" width=\"1008\" height=\"502\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-09-090503.png 1008w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-09-090503-200x100.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-09-090503-500x249.png 500w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-09-090503-768x382.png 768w\" sizes=\"auto, (max-width: 1008px) 100vw, 1008px\" \/><\/a><\/p>\n<\/div>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 LCD1602, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0430 \u043d\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u043c\u0435\u043d\u044e:<\/p>\n<ul>\n<li>\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e<\/li>\n<\/ul>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123742.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-111053\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123742.png\" alt=\"\" width=\"672\" height=\"217\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123742.png 672w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123742-200x65.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123742-500x161.png 500w\" sizes=\"auto, (max-width: 672px) 100vw, 672px\" \/><\/a><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ol>\n<li>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0446\u0438\u0438<\/li>\n<li>\u041d\u043e\u043c\u0435\u0440 \u0441\u0442\u0430\u043d\u0446\u0438\u0438<\/li>\n<li>\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u043e\u0442\u043e\u043a\u0430<\/li>\n<li>\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u0438 (0..21)<\/li>\n<\/ol>\n<\/li>\n<li>\u0411\u0430\u043b\u0430\u043d\u0441 (\u00b116 \u0434\u0411)<\/li>\n<\/ul>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123714.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-111054 size-thumbnail\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123714-200x60.png\" alt=\"\" width=\"200\" height=\"60\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123714-200x60.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123714-500x149.png 500w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123714.png 597w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a><\/p>\n<ul>\n<li>\u0420\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0430 \u0442\u0435\u043c\u0431\u0440\u0430 BASS (-40&#8230;+16 \u0434\u0411)<\/li>\n<\/ul>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123719.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-111055 size-thumbnail\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123719-200x61.png\" alt=\"\" width=\"200\" height=\"61\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123719-200x61.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123719-500x153.png 500w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123719.png 635w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a><\/p>\n<ul>\n<li>\u0420\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0430 \u0442\u0435\u043c\u0431\u0440\u0430 MIDDLE (-40&#8230;+16 \u0434\u0411)<\/li>\n<\/ul>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123724.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-111056 size-thumbnail\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123724-200x63.png\" alt=\"\" width=\"200\" height=\"63\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123724-200x63.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123724-500x157.png 500w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123724.png 665w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a><\/p>\n<ul>\n<li>\u0420\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0430 \u0442\u0435\u043c\u0431\u0440\u0430 TREBLE (-40&#8230;+16 \u0434\u0411)<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-111058 size-thumbnail\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123731-200x59.png\" alt=\"\" width=\"200\" height=\"59\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123731-200x59.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123731-500x147.png 500w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-123731.png 665w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/>\u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 WEB \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, \u0432\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 url \u0430\u0434\u0440\u0435\u0441\u0430 \u0441\u0442\u0430\u043d\u0446\u0438\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043d\u043e\u0441\u0438\u0442\u044c \u0432 \u0441\u043a\u0435\u0442\u0447:<\/p>\n<p style=\"padding-left: 40px;\">\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u0441\u0435\u0442\u0438<\/p>\n<pre> \u00a0<span style=\"color: #00979c;\">String<\/span> <span style=\"color: #000000;\">ssid<\/span> <span style=\"color: #434f54;\">=<\/span> \u00a0\u00a0\u00a0\u00a0<span style=\"color: #005c5f;\">\"Keenetic-9009\"<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ ssid \u0441\u0435\u0442\u0438 WI-FI<\/span>\r\n \u00a0<span style=\"color: #00979c;\">String<\/span> <span style=\"color: #000000;\">password<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #005c5f;\">\"32481975\"<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 \u0441\u0435\u0442\u0438 WI-FI<\/span>\r\n<\/pre>\n<p style=\"padding-left: 40px;\">\u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u0430\u043d\u0446\u0438\u0439<\/p>\n<pre> \u00a0<span style=\"color: #005c5f;\">\"https:\/\/rusradio.hostingradio.ru\/rusradio96.aacp\"<\/span><span style=\"color: #434f54;\">,<\/span>\r\n \u00a0<span style=\"color: #005c5f;\">\"https:\/\/str.pcradio.ru\/funradio_sk_80s90s-hi\"<\/span><span style=\"color: #434f54;\">,<\/span>\r\n \u00a0<span style=\"color: #005c5f;\">\"http:\/\/radio.promodj.com:8000\/186mph-192\"<\/span><span style=\"color: #434f54;\">,<\/span>\r\n \u00a0<span style=\"color: #005c5f;\">\"http:\/\/live.novoeradio.by:8000\/narodnoe-radio-128k\"<\/span><span style=\"color: #434f54;\">,<\/span>\r\n \u00a0<span style=\"color: #005c5f;\">\"http:\/\/listen1.myradio24.com:9000\/3355\"<\/span><span style=\"color: #434f54;\">,<\/span>\r\n \u00a0<span style=\"color: #005c5f;\">\"http:\/\/101.ru\/api\/channel\/getServers\/192\/channel\/AAC\/128\/dataFormat\/mobile\"<\/span><span style=\"color: #434f54;\">,<\/span>\r\n<\/pre>\n<p style=\"padding-left: 40px;\">\u043a\u043e\u043b-\u0432\u043e \u0441\u0442\u0430\u043d\u0446\u0438\u0439<\/p>\n<pre><span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">CH<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">6<\/span> \u00a0<span style=\"color: #434f54;\">\/\/ \u043a\u043e\u043b-\u0432\u043e \u0441\u0442\u0430\u043d\u0446\u0438\u0439<\/span>\r\n<\/pre>\n<p>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430 \u0438 \u0434\u0432\u0443\u0445 \u043a\u043d\u043e\u043f\u043e\u043a. \u041a\u043d\u043e\u043f\u043a\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043a\u0430\u043d\u0430\u043b\u044b \u0441\u0442\u0430\u043d\u0446\u0438\u0439, \u0430 \u044d\u043d\u043a\u043e\u0434\u0435\u0440 \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u0438, \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u0438 \u0442\u0435\u043c\u0431\u0440\u0430. \u041a\u043d\u043e\u043f\u043a\u0430 \u044d\u043d\u043a\u043e\u0434\u0435\u0440\u0430 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043f\u043e \u043f\u0443\u043d\u043a\u0442\u0430\u043c \u043c\u0435\u043d\u044e.<\/p>\n<p>\u041a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c ESP32 \u0432 \u0441\u0440\u0435\u0434\u0443 Ardiuno IDE \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 <a href=\"http:\/\/rcl-radio.ru\/?p=92558\">http:\/\/rcl-radio.ru\/?p=92558<\/a><\/p>\n<p>\u0412\u0435\u0440\u0441\u0438\u044f \u043f\u043b\u0430\u0442\u044b \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043d\u0435 \u043d\u0438\u0436\u0435 <strong>1.0.5<\/strong><\/p>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-001353.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-111059\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-001353.png\" alt=\"\" width=\"1003\" height=\"211\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-001353.png 1003w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-001353-200x42.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-001353-500x105.png 500w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-001353-768x162.png 768w\" sizes=\"auto, (max-width: 1003px) 100vw, 1003px\" \/><\/a>\u041f\u043b\u0430\u0442\u0430 <strong>ESP32 Dev Module<\/strong><\/p>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-181330.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-111060\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-181330.png\" alt=\"\" width=\"666\" height=\"517\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-181330.png 666w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-181330-200x155.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/01\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-01-07-181330-500x388.png 500w\" sizes=\"auto, (max-width: 666px) 100vw, 666px\" \/><\/a><\/p>\n<div id=\"marketWidget\"><\/div>\n<pre class=\"actionscript\" style=\"font-family: monospace; font-size: 10px;\"><span style=\"color: #808080; font-style: italic;\">#include \"Arduino.h\"<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#include \"WiFi.h\"<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#include \"Audio.h\"             \/\/ https:\/\/github.com\/schreibfaul1\/ESP32-audioI2S.git<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#include &lt;Wire.h&gt; <\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#include &lt;LiquidCrystal_I2C.h&gt; \/\/ http:\/\/forum.rcl-radio.ru\/misc.php?action=pan_download&amp;item=45&amp;download=1<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#include &lt;ESP32Encoder.h&gt;      \/\/ https:\/\/github.com\/madhephaestus\/ESP32Encoder.git<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#include &lt;EEPROM.h&gt;<\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">#define I2S_DOUT      25  \/\/ DIN connection<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define I2S_BCLK      27  \/\/ Bit clock<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define I2S_LRC       26  \/\/ Left Right Clock<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define CLK           19  \/\/ CLK ENCODER<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define DT            18  \/\/ DT ENCODER<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define SW             5  \/\/ SW ENCODER  <\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define CH_UP         13  \/\/ CH_UP BUTTON <\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define CH_DOWN       12  \/\/ CH_DOWN BUTTON    <\/span>\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">#define CH             6  \/\/ \u043a\u043e\u043b-\u0432\u043e \u0441\u0442\u0430\u043d\u0446\u0438\u0439<\/span>\r\n\u00a0\r\n  Audio audio;\r\n  LiquidCrystal_I2C lcd<span style=\"color: #66cc66;\">(<\/span>0x27,<span style=\"color: #cc66cc;\">16<\/span>,<span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span>;  <span style=\"color: #808080; font-style: italic;\">\/\/ \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u0438\u0441\u043f\u043b\u0435\u0439<\/span>\r\n  ESP32Encoder encoder;\r\n\u00a0\r\n  <span style=\"color: #0066cc;\">String<\/span> ssid =     <span style=\"color: #ff0000;\">\"Keenetic-9009\"<\/span>;     <span style=\"color: #808080; font-style: italic;\">\/\/ ssid \u0441\u0435\u0442\u0438 WI-FI<\/span>\r\n  <span style=\"color: #0066cc;\">String<\/span> <span style=\"color: #0066cc;\">password<\/span> = <span style=\"color: #ff0000;\">\"32481975\"<\/span>;     <span style=\"color: #808080; font-style: italic;\">\/\/ \u043f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 \u0441\u0435\u0442\u0438 WI-FI<\/span>\r\n  <span style=\"color: #0066cc;\">String<\/span> ch = <span style=\"color: #ff0000;\">\"connection      \"<\/span>;\r\n  <span style=\"color: #0066cc;\">String<\/span> bitr;\r\n  unsigned long oldPosition  = -<span style=\"color: #cc66cc;\">999<\/span>,newPosition,times1;\r\n  bool w=<span style=\"color: #cc66cc;\">1<\/span>,w1,ball_1,bass_1,mid_1,treb_1,vol_1;\r\n  <span style=\"color: #0066cc;\">int<\/span> ct,old_ct = <span style=\"color: #cc66cc;\">1<\/span>,<span style=\"color: #0066cc;\">menu<\/span>,ball,bass,mid,treb,vol=<span style=\"color: #cc66cc;\">15<\/span>;\r\n  bool e_vol,e_ball,e_bass,e_mid,e_treb,e_ct;\r\n\u00a0\r\n  const char <span style=\"color: #66cc66;\">*<\/span>listch<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #66cc66;\">]<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  <span style=\"color: #ff0000;\">\"https:\/\/rusradio.hostingradio.ru\/rusradio96.aacp\"<\/span>,\r\n  <span style=\"color: #ff0000;\">\"https:\/\/str.pcradio.ru\/funradio_sk_80s90s-hi\"<\/span>,\r\n  <span style=\"color: #ff0000;\">\"http:\/\/radio.promodj.com:8000\/186mph-192\"<\/span>,\r\n  <span style=\"color: #ff0000;\">\"http:\/\/live.novoeradio.by:8000\/narodnoe-radio-128k\"<\/span>,\r\n  <span style=\"color: #ff0000;\">\"http:\/\/listen1.myradio24.com:9000\/3355\"<\/span>,\r\n  <span style=\"color: #ff0000;\">\"http:\/\/101.ru\/api\/channel\/getServers\/192\/channel\/AAC\/128\/dataFormat\/mobile\"<\/span>,\r\n  <span style=\"color: #66cc66;\">}<\/span>;\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> setup<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n  ESP32Encoder::useInternalWeakPullResistors=<span style=\"color: #0066cc;\">UP<\/span>;\r\n  encoder.<span style=\"color: #006600;\">attachHalfQuad<\/span><span style=\"color: #66cc66;\">(<\/span>DT, CLK<span style=\"color: #66cc66;\">)<\/span>;\r\n  encoder.<span style=\"color: #006600;\">setCount<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  Serial.<span style=\"color: #006600;\">begin<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">9600<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  WiFi.<span style=\"color: #006600;\">disconnect<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  WiFi.<span style=\"color: #006600;\">mode<\/span><span style=\"color: #66cc66;\">(<\/span>WIFI_STA<span style=\"color: #66cc66;\">)<\/span>;\r\n  WiFi.<span style=\"color: #006600;\">begin<\/span><span style=\"color: #66cc66;\">(<\/span>ssid.<span style=\"color: #006600;\">c_str<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>, <span style=\"color: #0066cc;\">password<\/span>.<span style=\"color: #006600;\">c_str<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  lcd.<span style=\"color: #006600;\">init<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #006600;\">backlight<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"  ESP32  RADIO   \"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"    PCM5102A     \"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">2000<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #b1b100;\">while<\/span> <span style=\"color: #66cc66;\">(<\/span>WiFi.<span style=\"color: #0066cc;\">status<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">!<\/span>= WL_CONNECTED<span style=\"color: #66cc66;\">)<\/span> delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">100<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  lcd.<span style=\"color: #0066cc;\">clear<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"IP:\"<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span>WiFi.<span style=\"color: #006600;\">localIP<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">2000<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  lcd.<span style=\"color: #0066cc;\">clear<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  EEPROM.<span style=\"color: #006600;\">begin<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  vol = EEPROM.<span style=\"color: #006600;\">read<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  ball = EEPROM.<span style=\"color: #006600;\">read<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>-<span style=\"color: #cc66cc;\">16<\/span>;\r\n  bass = EEPROM.<span style=\"color: #006600;\">read<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span>-<span style=\"color: #cc66cc;\">40<\/span>;\r\n  mid = EEPROM.<span style=\"color: #006600;\">read<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">)<\/span>-<span style=\"color: #cc66cc;\">40<\/span>;\r\n  treb = EEPROM.<span style=\"color: #006600;\">read<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span>-<span style=\"color: #cc66cc;\">40<\/span>;\r\n  ct = EEPROM.<span style=\"color: #006600;\">read<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>vol<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">21<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>vol=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>ball<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>ball=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>bass<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>bass=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>mid<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>mid=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>treb<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>treb=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>ct<span style=\"color: #66cc66;\">&gt;<\/span>CH-<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>ct=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  audio.<span style=\"color: #006600;\">setPinout<\/span><span style=\"color: #66cc66;\">(<\/span>I2S_BCLK, I2S_LRC, I2S_DOUT<span style=\"color: #66cc66;\">)<\/span>;\r\n  delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">2000<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  audio.<span style=\"color: #006600;\">setBalance<\/span><span style=\"color: #66cc66;\">(<\/span>ball<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #808080; font-style: italic;\">\/\/+-16<\/span>\r\n  audio.<span style=\"color: #0066cc;\">setVolume<\/span><span style=\"color: #66cc66;\">(<\/span>vol<span style=\"color: #66cc66;\">)<\/span>; <span style=\"color: #808080; font-style: italic;\">\/\/ 0...21<\/span>\r\n  audio.<span style=\"color: #006600;\">setTone<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #808080; font-style: italic;\">\/\/-40+16<\/span>\r\n  pinMode<span style=\"color: #66cc66;\">(<\/span>CH_UP, INPUT_PULLUP<span style=\"color: #66cc66;\">)<\/span>;\r\n  pinMode<span style=\"color: #66cc66;\">(<\/span>CH_DOWN, INPUT_PULLUP<span style=\"color: #66cc66;\">)<\/span>;\r\n  pinMode<span style=\"color: #66cc66;\">(<\/span>SW,INPUT<span style=\"color: #66cc66;\">)<\/span>;          <span style=\"color: #808080; font-style: italic;\">\/\/ ENCODER SW <\/span>\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> loop<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>   \r\n   newPosition = encoder.<span style=\"color: #0066cc;\">getCount<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">2<\/span>;\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/ ENCODER VOLUME \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ <\/span>\r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">menu<\/span>==<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span> \r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>newPosition <span style=\"color: #66cc66;\">!<\/span>= oldPosition<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>oldPosition = newPosition;vol=vol-newPosition;encoder.<span style=\"color: #006600;\">setCount<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    newPosition=<span style=\"color: #cc66cc;\">0<\/span>;times1=millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>vol<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">21<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>vol=<span style=\"color: #cc66cc;\">21<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>vol<span style=\"color: #66cc66;\">&lt;<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>vol=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span>audio.<span style=\"color: #0066cc;\">setVolume<\/span><span style=\"color: #66cc66;\">(<\/span>vol<span style=\"color: #66cc66;\">)<\/span>;vol_1=<span style=\"color: #cc66cc;\">1<\/span>;e_vol=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>vol_1==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>vol_1=<span style=\"color: #cc66cc;\">0<\/span>;lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">9<\/span>,<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"VOL \"<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span>vol<span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\" \"<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/ ENCODER BALANCE \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">menu<\/span>==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span> \r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>newPosition <span style=\"color: #66cc66;\">!<\/span>= oldPosition<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>oldPosition = newPosition;ball=ball-newPosition;encoder.<span style=\"color: #006600;\">setCount<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    newPosition=<span style=\"color: #cc66cc;\">0<\/span>;times1=millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>ball<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>ball=<span style=\"color: #cc66cc;\">16<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>ball<span style=\"color: #66cc66;\">&lt;<\/span>-<span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>ball=-<span style=\"color: #cc66cc;\">16<\/span>;<span style=\"color: #66cc66;\">}<\/span>audio.<span style=\"color: #006600;\">setBalance<\/span><span style=\"color: #66cc66;\">(<\/span>ball<span style=\"color: #66cc66;\">)<\/span>;ball_1=<span style=\"color: #cc66cc;\">1<\/span>;e_ball=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>ball_1==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>ball_1=<span style=\"color: #cc66cc;\">0<\/span>;lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"BALANCE \"<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span>ball<span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\" dB  \"<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #66cc66;\">}<\/span> \r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/ ENCODER BASS \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">menu<\/span>==<span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span> \r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>newPosition <span style=\"color: #66cc66;\">!<\/span>= oldPosition<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>oldPosition = newPosition;bass=bass-newPosition;encoder.<span style=\"color: #006600;\">setCount<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    newPosition=<span style=\"color: #cc66cc;\">0<\/span>;times1=millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>bass<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>bass=<span style=\"color: #cc66cc;\">16<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>bass<span style=\"color: #66cc66;\">&lt;<\/span>-<span style=\"color: #cc66cc;\">40<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>bass=-<span style=\"color: #cc66cc;\">40<\/span>;<span style=\"color: #66cc66;\">}<\/span>audio.<span style=\"color: #006600;\">setTone<\/span><span style=\"color: #66cc66;\">(<\/span>bass,mid,treb<span style=\"color: #66cc66;\">)<\/span>;bass_1=<span style=\"color: #cc66cc;\">1<\/span>;e_bass=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>bass_1==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>bass_1=<span style=\"color: #cc66cc;\">0<\/span>;lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"BASS \"<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span>bass<span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\" dB  \"<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/ ENCODER MIDDLE \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">menu<\/span>==<span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span> \r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>newPosition <span style=\"color: #66cc66;\">!<\/span>= oldPosition<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>oldPosition = newPosition;mid=mid-newPosition;encoder.<span style=\"color: #006600;\">setCount<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    newPosition=<span style=\"color: #cc66cc;\">0<\/span>;times1=millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>mid<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>mid=<span style=\"color: #cc66cc;\">16<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>mid<span style=\"color: #66cc66;\">&lt;<\/span>-<span style=\"color: #cc66cc;\">40<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>mid=-<span style=\"color: #cc66cc;\">40<\/span>;<span style=\"color: #66cc66;\">}<\/span>audio.<span style=\"color: #006600;\">setTone<\/span><span style=\"color: #66cc66;\">(<\/span>bass,mid,treb<span style=\"color: #66cc66;\">)<\/span>;mid_1=<span style=\"color: #cc66cc;\">1<\/span>;e_mid=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>mid_1==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>mid_1=<span style=\"color: #cc66cc;\">0<\/span>;lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"MIDDLE \"<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span>mid<span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\" dB  \"<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #66cc66;\">}<\/span> \r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/ ENCODER TREBLE \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">menu<\/span>==<span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span> \r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>newPosition <span style=\"color: #66cc66;\">!<\/span>= oldPosition<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>oldPosition = newPosition;treb=treb-newPosition;encoder.<span style=\"color: #006600;\">setCount<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    newPosition=<span style=\"color: #cc66cc;\">0<\/span>;times1=millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>treb<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>treb=<span style=\"color: #cc66cc;\">16<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>treb<span style=\"color: #66cc66;\">&lt;<\/span>-<span style=\"color: #cc66cc;\">40<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>treb=-<span style=\"color: #cc66cc;\">40<\/span>;<span style=\"color: #66cc66;\">}<\/span>audio.<span style=\"color: #006600;\">setTone<\/span><span style=\"color: #66cc66;\">(<\/span>bass,mid,treb<span style=\"color: #66cc66;\">)<\/span>;treb_1=<span style=\"color: #cc66cc;\">1<\/span>;e_treb=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>treb_1==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>treb_1=<span style=\"color: #cc66cc;\">0<\/span>;lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"TREBLE \"<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span>treb<span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\" dB  \"<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #66cc66;\">}<\/span>                 \r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/ BUTTON \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/   <\/span>\r\n <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>digitalRead<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">13<\/span><span style=\"color: #66cc66;\">)<\/span>==LOW<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>ct++;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>ct<span style=\"color: #66cc66;\">&gt;<\/span>CH-<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>ct=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span>w=<span style=\"color: #cc66cc;\">1<\/span>;times1=millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;ch=<span style=\"color: #ff0000;\">\"connection      \"<\/span>;lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span>ch<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #0066cc;\">menu<\/span>=<span style=\"color: #cc66cc;\">0<\/span>;e_ct=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>digitalRead<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">12<\/span><span style=\"color: #66cc66;\">)<\/span>==LOW<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>ct--;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>ct<span style=\"color: #66cc66;\">&lt;<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>ct=CH-<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">}<\/span>w=<span style=\"color: #cc66cc;\">1<\/span>;times1=millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;ch=<span style=\"color: #ff0000;\">\"connection      \"<\/span>;lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span>ch<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #0066cc;\">menu<\/span>=<span style=\"color: #cc66cc;\">0<\/span>;e_ct=<span style=\"color: #cc66cc;\">1<\/span>;Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">(<\/span>ct<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>digitalRead<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span>==LOW<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span><span style=\"color: #0066cc;\">menu<\/span>++;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>menu<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span><span style=\"color: #0066cc;\">menu<\/span>=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span>times1=millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;lcd.<span style=\"color: #0066cc;\">clear<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;vol_1=<span style=\"color: #cc66cc;\">1<\/span>;ball_1=<span style=\"color: #cc66cc;\">1<\/span>;bass_1=<span style=\"color: #cc66cc;\">1<\/span>;mid_1=<span style=\"color: #cc66cc;\">1<\/span>;treb_1=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">menu<\/span>==<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>w=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">}<\/span>delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">300<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ <\/span>\r\n <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>ct <span style=\"color: #66cc66;\">!<\/span>= old_ct<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>ch<span style=\"color: #66cc66;\">!<\/span>=<span style=\"color: #ff0000;\">\"connection      \"<\/span>;audio.<span style=\"color: #006600;\">connecttohost<\/span><span style=\"color: #66cc66;\">(<\/span>listch<span style=\"color: #66cc66;\">[<\/span>ct<span style=\"color: #66cc66;\">]<\/span><span style=\"color: #66cc66;\">)<\/span>;Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">(<\/span>ct<span style=\"color: #66cc66;\">)<\/span>;old_ct = ct;w=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">menu<\/span>==<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>w==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&amp;&amp;<\/span>ch<span style=\"color: #66cc66;\">!<\/span>=<span style=\"color: #ff0000;\">\"connection      \"<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  lcd.<span style=\"color: #0066cc;\">clear<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;w=<span style=\"color: #cc66cc;\">0<\/span>;\r\n  lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span>ch<span style=\"color: #66cc66;\">)<\/span>;\r\n  lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"CH\"<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span>ct<span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\" \"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span>float<span style=\"color: #66cc66;\">(<\/span>bitr.<span style=\"color: #006600;\">toInt<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">1000<\/span><span style=\"color: #66cc66;\">)<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"k \"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">9<\/span>,<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"VOL \"<\/span><span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span>vol<span style=\"color: #66cc66;\">)<\/span>;lcd.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\" \"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span><span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n  audio.<span style=\"color: #006600;\">loop<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n\u00a0\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/ EEPROM \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>-times1<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">5000<\/span><span style=\"color: #66cc66;\">&amp;&amp;<\/span>w1==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>e_vol==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>e_vol=<span style=\"color: #cc66cc;\">0<\/span>;EEPROM.<span style=\"color: #006600;\">write<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>,vol<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>e_ball==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>e_ball=<span style=\"color: #cc66cc;\">0<\/span>;EEPROM.<span style=\"color: #006600;\">write<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">1<\/span>,ball+<span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>e_bass==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>e_bass=<span style=\"color: #cc66cc;\">0<\/span>;EEPROM.<span style=\"color: #006600;\">write<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">2<\/span>,bass+<span style=\"color: #cc66cc;\">40<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>e_mid==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>e_mid=<span style=\"color: #cc66cc;\">0<\/span>;EEPROM.<span style=\"color: #006600;\">write<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">3<\/span>,mid+<span style=\"color: #cc66cc;\">40<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>e_treb==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>e_treb=<span style=\"color: #cc66cc;\">0<\/span>;EEPROM.<span style=\"color: #006600;\">write<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">4<\/span>,treb+<span style=\"color: #cc66cc;\">40<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>e_ct==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>e_ct=<span style=\"color: #cc66cc;\">0<\/span>;EEPROM.<span style=\"color: #006600;\">write<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">5<\/span>,ct<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  EEPROM.<span style=\"color: #006600;\">commit<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>-times1<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">10000<\/span><span style=\"color: #66cc66;\">&amp;&amp;<\/span>w1==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  w1=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #0066cc;\">menu<\/span><span style=\"color: #66cc66;\">!<\/span>=<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>w=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #0066cc;\">menu<\/span>=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #66cc66;\">}<\/span> <span style=\"color: #808080; font-style: italic;\">\/\/ loop<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">void<\/span> audio_showstation<span style=\"color: #66cc66;\">(<\/span>const char <span style=\"color: #66cc66;\">*<\/span>info<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>Serial.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"station     \"<\/span><span style=\"color: #66cc66;\">)<\/span>; ch=info; Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">(<\/span>info<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> audio_showstreamtitle<span style=\"color: #66cc66;\">(<\/span>const char <span style=\"color: #66cc66;\">*<\/span>info<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>Serial.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"streamtitle \"<\/span><span style=\"color: #66cc66;\">)<\/span>; Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">(<\/span>info<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> audio_bitrate<span style=\"color: #66cc66;\">(<\/span>const char <span style=\"color: #66cc66;\">*<\/span>info<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>Serial.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"bitrate     \"<\/span><span style=\"color: #66cc66;\">)<\/span>;bitr = info; Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">(<\/span>info<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> audio_icyurl<span style=\"color: #66cc66;\">(<\/span>const char <span style=\"color: #66cc66;\">*<\/span>info<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>Serial.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"icyurl      \"<\/span><span style=\"color: #66cc66;\">)<\/span>; Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">(<\/span>info<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #0066cc;\">void<\/span> audio_lasthost<span style=\"color: #66cc66;\">(<\/span>const char <span style=\"color: #66cc66;\">*<\/span>info<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>Serial.<span style=\"color: #0066cc;\">print<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #ff0000;\">\"lasthost    \"<\/span><span style=\"color: #66cc66;\">)<\/span>; Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">(<\/span>info<span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span><\/pre>\n<p>\u0424\u043e\u0440\u0443\u043c &#8212; <a href=\"http:\/\/forum.rcl-radio.ru\/viewtopic.php?pid=5075#p5075\">http:\/\/forum.rcl-radio.ru\/viewtopic.php?pid=5075#p5075<\/a><\/p>\n<hr \/>\n<h3 style=\"text-align: center;\">\u0414\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/h3>\n<p style=\"text-align: center;\"><strong>\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u0442\u0430\u043d\u0446\u0438\u0439 (\u0430\u0434\u0440\u0435\u0441\u043e\u0432) \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.\u00a0<\/strong><\/p>\n<p>\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e \u0431\u044b\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043e\u043d\u043b\u0430\u0439\u043d \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b (html) \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0441\u0442\u0430\u043d\u0446\u0438\u0439. \u0424\u0430\u0439\u043b \u0441 \u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c. \u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e ESP32 \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u0412\u0430\u0448\u0435\u043c\u0443 \u0444\u0430\u0439\u043b\u0443 \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0441\u0442\u0430\u043d\u0446\u0438\u0439 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442 \u0435\u0433\u043e \u0432 \u043f\u0430\u043c\u044f\u0442\u044c.<\/p>\n<p>\u041e\u043d\u043b\u0430\u0439\u043d \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u2014\u00a0<a href=\"http:\/\/forum.rcl-radio.ru\/internet_radio_esp32.php\">http:\/\/forum.rcl-radio.ru\/internet_radio_esp32.php<\/a><\/p>\n<p><a class=\"highslide-image\" href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-%D0%BE%D1%82-2022-04-02-175454.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-120817\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-%D0%BE%D1%82-2022-04-02-175454.png\" sizes=\"auto, (max-width: 704px) 100vw, 704px\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-04-02-175454.png 704w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-04-02-175454-200x163.png 200w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-04-02-175454-500x406.png 500w\" alt=\"\" width=\"704\" height=\"572\" \/><\/a><\/p>\n<p>\u041f\u0440\u0438\u0434\u0443\u043c\u0430\u0439\u0442\u0435 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0412\u0430\u0448\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430, \u0434\u0430\u043b\u0435\u0435 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437 10 \u0441\u0442\u0430\u043d\u0446\u0438\u0439, \u0430\u0434\u0440\u0435\u0441\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u044b \u0437\u0430\u043f\u044f\u0442\u044b\u043c\u0438. \u0414\u0430\u043b\u0435\u0435 \u0437\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0444\u0430\u0439\u043b, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0447\u0442\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430.<\/p>\n<p>\u0414\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u0442\u0430\u043d\u0446\u0438\u0439 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430, \u043d\u0430\u0436\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u00ab\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c\u00bb, \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u0442\u0430\u043d\u0446\u0438\u0439 \u0432 \u043d\u0438\u0436\u043d\u0435\u043c \u043f\u043e\u043b\u0435, \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0438 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u0435 \u043f\u043e\u043b\u0435, \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0442\u0430\u043d\u0446\u0438\u0439 \u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u00ab\u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c\u00bb.<\/p>\n<p>\u0412 \u0441\u043a\u0435\u0442\u0447\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0441\u0442\u0440\u043e\u043a\u0443:<\/p>\n<blockquote><p><strong>const String endpoint = \u00abhttp:\/\/forum.rcl-radio.ru\/internet_radio_esp32\/data.html\u00bb;<\/strong><\/p><\/blockquote>\n<p><strong>data<\/strong>\u00a0\u2014 \u044d\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 (\u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u0412\u0430\u0448\u0435\u0439 \u0441\u0435\u0442\u0438, \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043e \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0441\u0442\u0430\u043d\u0446\u0438\u0439) \u0441\u043a\u0435\u0442\u0447 \u0434\u043b\u044f 10 \u0441\u0442\u0430\u043d\u0446\u0438\u0439:<\/p>\n<pre class=\"actionscript\" style=\"font-family:monospace;font-size:10px;\"><span style=\"color: #808080; font-style: italic;\">#include &quot;Arduino.h&quot;<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#include &quot;WiFi.h&quot;<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#include &quot;Audio.h&quot;             \/\/ https:\/\/github.com\/schreibfaul1\/ESP32-audioI2S.git<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#include &lt;Wire.h&gt; <\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#include &lt;LiquidCrystal_I2C.h&gt; \/\/ http:\/\/forum.rcl-radio.ru\/misc.php?action=pan_download&amp;item=45&amp;download=1<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#include &lt;ESP32Encoder.h&gt;      \/\/ https:\/\/github.com\/madhephaestus\/ESP32Encoder.git<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#include &lt;EEPROM.h&gt;<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#include &lt;HTTPClient.h&gt;<\/span>\r\n&nbsp;\r\n<span style=\"color: #808080; font-style: italic;\">#define I2S_DOUT      25  \/\/ DIN connection<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define I2S_BCLK      27  \/\/ Bit clock<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define I2S_LRC       26  \/\/ Left Right Clock<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define CLK           19  \/\/ CLK ENCODER<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define DT            18  \/\/ DT ENCODER<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define SW             5  \/\/ SW ENCODER  <\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define CH_UP         13  \/\/ CH_UP BUTTON <\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define CH_DOWN       12  \/\/ CH_DOWN BUTTON    <\/span>\r\n&nbsp;\r\n<span style=\"color: #808080; font-style: italic;\">#define CH            10  \/\/ \u043a\u043e\u043b-\u0432\u043e \u0441\u0442\u0430\u043d\u0446\u0438\u0439<\/span>\r\nconst <span style=\"color: #0066CC;\">String<\/span> endpoint = <span style=\"color: #ff0000;\">&quot;http:\/\/forum.rcl-radio.ru\/internet_radio_esp32\/data.html&quot;<\/span>;\r\n&nbsp;\r\n  Audio audio;\r\n  LiquidCrystal_I2C lcd<span style=\"color: #66cc66;\">&#40;<\/span>0x27,<span style=\"color: #cc66cc;\">16<\/span>,<span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;  <span style=\"color: #808080; font-style: italic;\">\/\/ \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0434\u0438\u0441\u043f\u043b\u0435\u0439<\/span>\r\n  ESP32Encoder encoder;\r\n&nbsp;\r\n  <span style=\"color: #0066CC;\">String<\/span> ssid =     <span style=\"color: #ff0000;\">&quot;Redmi Note 3&quot;<\/span>;     <span style=\"color: #808080; font-style: italic;\">\/\/ ssid \u0441\u0435\u0442\u0438 WI-FI<\/span>\r\n  <span style=\"color: #0066CC;\">String<\/span> <span style=\"color: #0066CC;\">password<\/span> = <span style=\"color: #ff0000;\">&quot;32481975&quot;<\/span>;     <span style=\"color: #808080; font-style: italic;\">\/\/ \u043f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 \u0441\u0435\u0442\u0438 WI-FI<\/span>\r\n  <span style=\"color: #0066CC;\">String<\/span> payload;\r\n  <span style=\"color: #0066CC;\">String<\/span> ch = <span style=\"color: #ff0000;\">&quot;connection      &quot;<\/span>;\r\n  <span style=\"color: #0066CC;\">String<\/span> bitr;\r\n  unsigned long oldPosition  = -<span style=\"color: #cc66cc;\">999<\/span>,newPosition,times1;\r\n  bool w=<span style=\"color: #cc66cc;\">1<\/span>,w1,ball_1,bass_1,mid_1,treb_1,vol_1;\r\n  <span style=\"color: #0066CC;\">int<\/span> ct,old_ct = <span style=\"color: #cc66cc;\">1<\/span>,<span style=\"color: #0066CC;\">menu<\/span>,ball,bass,mid,treb,vol=<span style=\"color: #cc66cc;\">15<\/span>;\r\n  bool e_vol,e_ball,e_bass,e_mid,e_treb,e_ct;\r\n  const char <span style=\"color: #66cc66;\">*<\/span>listch<span style=\"color: #66cc66;\">&#91;<\/span>CH<span style=\"color: #66cc66;\">&#93;<\/span>;\r\n  <span style=\"color: #0066CC;\">String<\/span> xval<span style=\"color: #66cc66;\">&#91;<\/span>CH<span style=\"color: #66cc66;\">&#93;<\/span>;\r\n&nbsp;\r\n<span style=\"color: #0066CC;\">void<\/span> setup<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span> <span style=\"color: #66cc66;\">&#123;<\/span>\r\n  ESP32Encoder::useInternalWeakPullResistors=<span style=\"color: #0066CC;\">UP<\/span>;\r\n  encoder.<span style=\"color: #006600;\">attachHalfQuad<\/span><span style=\"color: #66cc66;\">&#40;<\/span>DT, CLK<span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  encoder.<span style=\"color: #006600;\">setCount<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  Serial.<span style=\"color: #006600;\">begin<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">9600<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  WiFi.<span style=\"color: #006600;\">disconnect<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  WiFi.<span style=\"color: #006600;\">mode<\/span><span style=\"color: #66cc66;\">&#40;<\/span>WIFI_STA<span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  WiFi.<span style=\"color: #006600;\">begin<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ssid.<span style=\"color: #006600;\">c_str<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>, <span style=\"color: #0066CC;\">password<\/span>.<span style=\"color: #006600;\">c_str<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  Wire.<span style=\"color: #006600;\">begin<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;Wire.<span style=\"color: #006600;\">setClock<\/span><span style=\"color: #66cc66;\">&#40;<\/span>400000L<span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  lcd.<span style=\"color: #006600;\">init<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #006600;\">backlight<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot;  ESP32  RADIO   &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot;    PCM5102A     &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  delay<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">2000<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  <span style=\"color: #b1b100;\">while<\/span> <span style=\"color: #66cc66;\">&#40;<\/span>WiFi.<span style=\"color: #0066CC;\">status<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span> <span style=\"color: #66cc66;\">!<\/span>= WL_CONNECTED<span style=\"color: #66cc66;\">&#41;<\/span> delay<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">100<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  lcd.<span style=\"color: #0066CC;\">clear<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot;IP:&quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span>WiFi.<span style=\"color: #006600;\">localIP<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  delay<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">2000<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  lcd.<span style=\"color: #0066CC;\">clear<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  EEPROM.<span style=\"color: #006600;\">begin<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">10<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  vol = EEPROM.<span style=\"color: #006600;\">read<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  ball = EEPROM.<span style=\"color: #006600;\">read<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span>-<span style=\"color: #cc66cc;\">16<\/span>;\r\n  bass = EEPROM.<span style=\"color: #006600;\">read<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">&#41;<\/span>-<span style=\"color: #cc66cc;\">40<\/span>;\r\n  mid = EEPROM.<span style=\"color: #006600;\">read<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">&#41;<\/span>-<span style=\"color: #cc66cc;\">40<\/span>;\r\n  treb = EEPROM.<span style=\"color: #006600;\">read<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">&#41;<\/span>-<span style=\"color: #cc66cc;\">40<\/span>;\r\n  ct = EEPROM.<span style=\"color: #006600;\">read<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>vol<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">21<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>vol=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ball<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>ball=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>bass<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>bass=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>mid<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>mid=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>treb<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>treb=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ct<span style=\"color: #66cc66;\">&gt;<\/span>CH-<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>ct=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n  audio.<span style=\"color: #006600;\">setPinout<\/span><span style=\"color: #66cc66;\">&#40;<\/span>I2S_BCLK, I2S_LRC, I2S_DOUT<span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  delay<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">2000<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  audio.<span style=\"color: #006600;\">setBalance<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ball<span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #808080; font-style: italic;\">\/\/+-16<\/span>\r\n  audio.<span style=\"color: #0066CC;\">setVolume<\/span><span style=\"color: #66cc66;\">&#40;<\/span>vol<span style=\"color: #66cc66;\">&#41;<\/span>; <span style=\"color: #808080; font-style: italic;\">\/\/ 0...21<\/span>\r\n  audio.<span style=\"color: #006600;\">setTone<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #808080; font-style: italic;\">\/\/-40+16<\/span>\r\n  pinMode<span style=\"color: #66cc66;\">&#40;<\/span>CH_UP, INPUT_PULLUP<span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  pinMode<span style=\"color: #66cc66;\">&#40;<\/span>CH_DOWN, INPUT_PULLUP<span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  pinMode<span style=\"color: #66cc66;\">&#40;<\/span>SW,INPUT<span style=\"color: #66cc66;\">&#41;<\/span>;          <span style=\"color: #808080; font-style: italic;\">\/\/ ENCODER SW <\/span>\r\n&nbsp;\r\n  HTTPClient http;\r\n  http.<span style=\"color: #006600;\">begin<\/span><span style=\"color: #66cc66;\">&#40;<\/span>endpoint<span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  <span style=\"color: #0066CC;\">int<\/span> httpCode = http.<span style=\"color: #0066CC;\">GET<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">&#40;<\/span>httpCode <span style=\"color: #66cc66;\">&gt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span> <span style=\"color: #66cc66;\">&#123;<\/span>payload = http.<span style=\"color: #006600;\">getString<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n  http.<span style=\"color: #0066CC;\">end<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;  \r\n&nbsp;\r\n  <span style=\"color: #b1b100;\">for<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #0066CC;\">int<\/span> kol_i=<span style=\"color: #cc66cc;\">0<\/span>;kol_i<span style=\"color: #66cc66;\">&lt;<\/span>CH;kol_i++<span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>\r\n  xval<span style=\"color: #66cc66;\">&#91;<\/span>kol_i<span style=\"color: #66cc66;\">&#93;<\/span> = getValue<span style=\"color: #66cc66;\">&#40;<\/span>payload, <span style=\"color: #ff0000;\">','<\/span>, kol_i<span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">&#40;<\/span>xval<span style=\"color: #66cc66;\">&#91;<\/span>kol_i<span style=\"color: #66cc66;\">&#93;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  <span style=\"color: #66cc66;\">&#125;<\/span>\r\n  Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  <span style=\"color: #b1b100;\">for<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #0066CC;\">int<\/span> kol_i=<span style=\"color: #cc66cc;\">0<\/span>;kol_i<span style=\"color: #66cc66;\">&lt;<\/span>CH;kol_i++<span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>\r\n  listch<span style=\"color: #66cc66;\">&#91;<\/span>kol_i<span style=\"color: #66cc66;\">&#93;<\/span> = xval<span style=\"color: #66cc66;\">&#91;<\/span>kol_i<span style=\"color: #66cc66;\">&#93;<\/span>.<span style=\"color: #006600;\">c_str<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  <span style=\"color: #66cc66;\">&#125;<\/span>\r\n<span style=\"color: #66cc66;\">&#125;<\/span>\r\n&nbsp;\r\n<span style=\"color: #0066CC;\">String<\/span> getValue<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #0066CC;\">String<\/span> data1, char separator, <span style=\"color: #0066CC;\">int<\/span> <span style=\"color: #0066CC;\">index<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>\r\n    <span style=\"color: #0066CC;\">int<\/span> found = <span style=\"color: #cc66cc;\">0<\/span>;\r\n    <span style=\"color: #0066CC;\">int<\/span> strIndex<span style=\"color: #66cc66;\">&#91;<\/span><span style=\"color: #66cc66;\">&#93;<\/span> = <span style=\"color: #66cc66;\">&#123;<\/span> <span style=\"color: #cc66cc;\">0<\/span>, -<span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">&#125;<\/span>;\r\n    <span style=\"color: #0066CC;\">int<\/span> maxIndex = data1.<span style=\"color: #0066CC;\">length<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span> - <span style=\"color: #cc66cc;\">1<\/span>;\r\n    <span style=\"color: #b1b100;\">for<\/span> <span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #0066CC;\">int<\/span> i = <span style=\"color: #cc66cc;\">0<\/span>; i <span style=\"color: #66cc66;\">&lt;<\/span>= maxIndex <span style=\"color: #66cc66;\">&amp;&amp;<\/span> found <span style=\"color: #66cc66;\">&lt;<\/span>= <span style=\"color: #0066CC;\">index<\/span>; i++<span style=\"color: #66cc66;\">&#41;<\/span> <span style=\"color: #66cc66;\">&#123;<\/span>\r\n        <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">&#40;<\/span>data1.<span style=\"color: #0066CC;\">charAt<\/span><span style=\"color: #66cc66;\">&#40;<\/span>i<span style=\"color: #66cc66;\">&#41;<\/span> == separator <span style=\"color: #66cc66;\">||<\/span> i == maxIndex<span style=\"color: #66cc66;\">&#41;<\/span> <span style=\"color: #66cc66;\">&#123;<\/span>\r\n            found++;\r\n            strIndex<span style=\"color: #66cc66;\">&#91;<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#93;<\/span> = strIndex<span style=\"color: #66cc66;\">&#91;<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#93;<\/span> + <span style=\"color: #cc66cc;\">1<\/span>;\r\n            strIndex<span style=\"color: #66cc66;\">&#91;<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#93;<\/span> = <span style=\"color: #66cc66;\">&#40;<\/span>i == maxIndex<span style=\"color: #66cc66;\">&#41;<\/span> ? i+<span style=\"color: #cc66cc;\">1<\/span> : i;\r\n        <span style=\"color: #66cc66;\">&#125;<\/span><span style=\"color: #66cc66;\">&#125;<\/span>\r\n    <span style=\"color: #b1b100;\">return<\/span> found <span style=\"color: #66cc66;\">&gt;<\/span> <span style=\"color: #0066CC;\">index<\/span> ? data1.<span style=\"color: #0066CC;\">substring<\/span><span style=\"color: #66cc66;\">&#40;<\/span>strIndex<span style=\"color: #66cc66;\">&#91;<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#93;<\/span>, strIndex<span style=\"color: #66cc66;\">&#91;<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#93;<\/span><span style=\"color: #66cc66;\">&#41;<\/span> : <span style=\"color: #ff0000;\">&quot;&quot;<\/span>;\r\n<span style=\"color: #66cc66;\">&#125;<\/span>\r\n&nbsp;\r\n<span style=\"color: #0066CC;\">void<\/span> loop<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>   \r\n   newPosition = encoder.<span style=\"color: #0066CC;\">getCount<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">2<\/span>;\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/ ENCODER VOLUME \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ <\/span>\r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #0066CC;\">menu<\/span>==<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span> \r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>newPosition <span style=\"color: #66cc66;\">!<\/span>= oldPosition<span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>oldPosition = newPosition;vol=vol-newPosition;encoder.<span style=\"color: #006600;\">setCount<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n    newPosition=<span style=\"color: #cc66cc;\">0<\/span>;times1=millis<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>vol<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">21<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>vol=<span style=\"color: #cc66cc;\">21<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span><span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>vol<span style=\"color: #66cc66;\">&lt;<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>vol=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>audio.<span style=\"color: #0066CC;\">setVolume<\/span><span style=\"color: #66cc66;\">&#40;<\/span>vol<span style=\"color: #66cc66;\">&#41;<\/span>;vol_1=<span style=\"color: #cc66cc;\">1<\/span>;e_vol=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>vol_1==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>vol_1=<span style=\"color: #cc66cc;\">0<\/span>;lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">9<\/span>,<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot;VOL &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span>vol<span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot; &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span><span style=\"color: #66cc66;\">&#125;<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/ ENCODER BALANCE \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #0066CC;\">menu<\/span>==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span> \r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>newPosition <span style=\"color: #66cc66;\">!<\/span>= oldPosition<span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>oldPosition = newPosition;ball=ball-newPosition;encoder.<span style=\"color: #006600;\">setCount<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n    newPosition=<span style=\"color: #cc66cc;\">0<\/span>;times1=millis<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ball<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>ball=<span style=\"color: #cc66cc;\">16<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span><span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ball<span style=\"color: #66cc66;\">&lt;<\/span>-<span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>ball=-<span style=\"color: #cc66cc;\">16<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>audio.<span style=\"color: #006600;\">setBalance<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ball<span style=\"color: #66cc66;\">&#41;<\/span>;ball_1=<span style=\"color: #cc66cc;\">1<\/span>;e_ball=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ball_1==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>ball_1=<span style=\"color: #cc66cc;\">0<\/span>;lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot;BALANCE &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ball<span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot; dB  &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span><span style=\"color: #66cc66;\">&#125;<\/span> \r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/ ENCODER BASS \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #0066CC;\">menu<\/span>==<span style=\"color: #cc66cc;\">2<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span> \r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>newPosition <span style=\"color: #66cc66;\">!<\/span>= oldPosition<span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>oldPosition = newPosition;bass=bass-newPosition;encoder.<span style=\"color: #006600;\">setCount<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n    newPosition=<span style=\"color: #cc66cc;\">0<\/span>;times1=millis<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>bass<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>bass=<span style=\"color: #cc66cc;\">16<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span><span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>bass<span style=\"color: #66cc66;\">&lt;<\/span>-<span style=\"color: #cc66cc;\">40<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>bass=-<span style=\"color: #cc66cc;\">40<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>audio.<span style=\"color: #006600;\">setTone<\/span><span style=\"color: #66cc66;\">&#40;<\/span>bass,mid,treb<span style=\"color: #66cc66;\">&#41;<\/span>;bass_1=<span style=\"color: #cc66cc;\">1<\/span>;e_bass=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>bass_1==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>bass_1=<span style=\"color: #cc66cc;\">0<\/span>;lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot;BASS &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span>bass<span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot; dB  &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span><span style=\"color: #66cc66;\">&#125;<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/ ENCODER MIDDLE \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #0066CC;\">menu<\/span>==<span style=\"color: #cc66cc;\">3<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span> \r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>newPosition <span style=\"color: #66cc66;\">!<\/span>= oldPosition<span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>oldPosition = newPosition;mid=mid-newPosition;encoder.<span style=\"color: #006600;\">setCount<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n    newPosition=<span style=\"color: #cc66cc;\">0<\/span>;times1=millis<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>mid<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>mid=<span style=\"color: #cc66cc;\">16<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span><span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>mid<span style=\"color: #66cc66;\">&lt;<\/span>-<span style=\"color: #cc66cc;\">40<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>mid=-<span style=\"color: #cc66cc;\">40<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>audio.<span style=\"color: #006600;\">setTone<\/span><span style=\"color: #66cc66;\">&#40;<\/span>bass,mid,treb<span style=\"color: #66cc66;\">&#41;<\/span>;mid_1=<span style=\"color: #cc66cc;\">1<\/span>;e_mid=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>mid_1==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>mid_1=<span style=\"color: #cc66cc;\">0<\/span>;lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot;MIDDLE &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span>mid<span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot; dB  &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span><span style=\"color: #66cc66;\">&#125;<\/span> \r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/ ENCODER TREBLE \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #0066CC;\">menu<\/span>==<span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span> \r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>newPosition <span style=\"color: #66cc66;\">!<\/span>= oldPosition<span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>oldPosition = newPosition;treb=treb-newPosition;encoder.<span style=\"color: #006600;\">setCount<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n    newPosition=<span style=\"color: #cc66cc;\">0<\/span>;times1=millis<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>treb<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>treb=<span style=\"color: #cc66cc;\">16<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span><span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>treb<span style=\"color: #66cc66;\">&lt;<\/span>-<span style=\"color: #cc66cc;\">40<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>treb=-<span style=\"color: #cc66cc;\">40<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>audio.<span style=\"color: #006600;\">setTone<\/span><span style=\"color: #66cc66;\">&#40;<\/span>bass,mid,treb<span style=\"color: #66cc66;\">&#41;<\/span>;treb_1=<span style=\"color: #cc66cc;\">1<\/span>;e_treb=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>treb_1==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>treb_1=<span style=\"color: #cc66cc;\">0<\/span>;lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot;TREBLE &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span>treb<span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot; dB  &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span><span style=\"color: #66cc66;\">&#125;<\/span>                 \r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/ BUTTON \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/   <\/span>\r\n <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">&#40;<\/span>digitalRead<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">13<\/span><span style=\"color: #66cc66;\">&#41;<\/span>==LOW<span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>ct++;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ct<span style=\"color: #66cc66;\">&gt;<\/span>CH-<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>ct=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>w=<span style=\"color: #cc66cc;\">1<\/span>;times1=millis<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;ch=<span style=\"color: #ff0000;\">&quot;connection      &quot;<\/span>;lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ch<span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #0066CC;\">menu<\/span>=<span style=\"color: #cc66cc;\">0<\/span>;e_ct=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">&#40;<\/span>digitalRead<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">12<\/span><span style=\"color: #66cc66;\">&#41;<\/span>==LOW<span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>ct--;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ct<span style=\"color: #66cc66;\">&lt;<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>ct=CH-<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>w=<span style=\"color: #cc66cc;\">1<\/span>;times1=millis<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;ch=<span style=\"color: #ff0000;\">&quot;connection      &quot;<\/span>;lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ch<span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #0066CC;\">menu<\/span>=<span style=\"color: #cc66cc;\">0<\/span>;e_ct=<span style=\"color: #cc66cc;\">1<\/span>;Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ct<span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">&#40;<\/span>digitalRead<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">&#41;<\/span>==LOW<span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span><span style=\"color: #0066CC;\">menu<\/span>++;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>menu<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span><span style=\"color: #0066CC;\">menu<\/span>=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>times1=millis<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;lcd.<span style=\"color: #0066CC;\">clear<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;vol_1=<span style=\"color: #cc66cc;\">1<\/span>;ball_1=<span style=\"color: #cc66cc;\">1<\/span>;bass_1=<span style=\"color: #cc66cc;\">1<\/span>;mid_1=<span style=\"color: #cc66cc;\">1<\/span>;treb_1=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #0066CC;\">menu<\/span>==<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>w=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>delay<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">300<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ <\/span>\r\n <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">&#40;<\/span>ct <span style=\"color: #66cc66;\">!<\/span>= old_ct<span style=\"color: #66cc66;\">&#41;<\/span> <span style=\"color: #66cc66;\">&#123;<\/span>ch<span style=\"color: #66cc66;\">!<\/span>=<span style=\"color: #ff0000;\">&quot;connection      &quot;<\/span>;audio.<span style=\"color: #006600;\">connecttohost<\/span><span style=\"color: #66cc66;\">&#40;<\/span>listch<span style=\"color: #66cc66;\">&#91;<\/span>ct<span style=\"color: #66cc66;\">&#93;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ct<span style=\"color: #66cc66;\">&#41;<\/span>;old_ct = ct;w=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n&nbsp;\r\n <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #0066CC;\">menu<\/span>==<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>w==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&amp;&amp;<\/span>ch<span style=\"color: #66cc66;\">!<\/span>=<span style=\"color: #ff0000;\">&quot;connection      &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>\r\n  lcd.<span style=\"color: #0066CC;\">clear<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;w=<span style=\"color: #cc66cc;\">0<\/span>;\r\n  lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ch<span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span>,<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot;CH&quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span>ct<span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot; &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span>float<span style=\"color: #66cc66;\">&#40;<\/span>bitr.<span style=\"color: #006600;\">toInt<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">\/<\/span><span style=\"color: #cc66cc;\">1000<\/span><span style=\"color: #66cc66;\">&#41;<\/span>,<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot;k &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  lcd.<span style=\"color: #006600;\">setCursor<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">9<\/span>,<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot;VOL &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span>vol<span style=\"color: #66cc66;\">&#41;<\/span>;lcd.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot; &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n  <span style=\"color: #66cc66;\">&#125;<\/span><span style=\"color: #66cc66;\">&#125;<\/span>\r\n&nbsp;\r\n  audio.<span style=\"color: #006600;\">loop<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;\r\n&nbsp;\r\n<span style=\"color: #808080; font-style: italic;\">\/\/\/\/ EEPROM \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>millis<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>-times1<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">5000<\/span><span style=\"color: #66cc66;\">&amp;&amp;<\/span>w1==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>e_vol==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>e_vol=<span style=\"color: #cc66cc;\">0<\/span>;EEPROM.<span style=\"color: #006600;\">write<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">0<\/span>,vol<span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>e_ball==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>e_ball=<span style=\"color: #cc66cc;\">0<\/span>;EEPROM.<span style=\"color: #006600;\">write<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">1<\/span>,ball+<span style=\"color: #cc66cc;\">16<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>e_bass==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>e_bass=<span style=\"color: #cc66cc;\">0<\/span>;EEPROM.<span style=\"color: #006600;\">write<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">2<\/span>,bass+<span style=\"color: #cc66cc;\">40<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>e_mid==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>e_mid=<span style=\"color: #cc66cc;\">0<\/span>;EEPROM.<span style=\"color: #006600;\">write<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">3<\/span>,mid+<span style=\"color: #cc66cc;\">40<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>e_treb==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>e_treb=<span style=\"color: #cc66cc;\">0<\/span>;EEPROM.<span style=\"color: #006600;\">write<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">4<\/span>,treb+<span style=\"color: #cc66cc;\">40<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>e_ct==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>e_ct=<span style=\"color: #cc66cc;\">0<\/span>;EEPROM.<span style=\"color: #006600;\">write<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #cc66cc;\">5<\/span>,ct<span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n  EEPROM.<span style=\"color: #006600;\">commit<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span>millis<span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>-times1<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">10000<\/span><span style=\"color: #66cc66;\">&amp;&amp;<\/span>w1==<span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>\r\n  w1=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #0066CC;\">menu<\/span><span style=\"color: #66cc66;\">!<\/span>=<span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">&#41;<\/span><span style=\"color: #66cc66;\">&#123;<\/span>w=<span style=\"color: #cc66cc;\">1<\/span>;<span style=\"color: #0066CC;\">menu<\/span>=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span><span style=\"color: #66cc66;\">&#125;<\/span>\r\n&nbsp;\r\n<span style=\"color: #66cc66;\">&#125;<\/span> <span style=\"color: #808080; font-style: italic;\">\/\/ loop<\/span>\r\n&nbsp;\r\n<span style=\"color: #0066CC;\">void<\/span> audio_showstation<span style=\"color: #66cc66;\">&#40;<\/span>const char <span style=\"color: #66cc66;\">*<\/span>info<span style=\"color: #66cc66;\">&#41;<\/span> <span style=\"color: #66cc66;\">&#123;<\/span>Serial.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot;station     &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>; ch=info; Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">&#40;<\/span>info<span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n<span style=\"color: #0066CC;\">void<\/span> audio_showstreamtitle<span style=\"color: #66cc66;\">&#40;<\/span>const char <span style=\"color: #66cc66;\">*<\/span>info<span style=\"color: #66cc66;\">&#41;<\/span> <span style=\"color: #66cc66;\">&#123;<\/span>Serial.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot;streamtitle &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>; Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">&#40;<\/span>info<span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n<span style=\"color: #0066CC;\">void<\/span> audio_bitrate<span style=\"color: #66cc66;\">&#40;<\/span>const char <span style=\"color: #66cc66;\">*<\/span>info<span style=\"color: #66cc66;\">&#41;<\/span> <span style=\"color: #66cc66;\">&#123;<\/span>Serial.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot;bitrate     &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>;bitr = info; Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">&#40;<\/span>info<span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n<span style=\"color: #0066CC;\">void<\/span> audio_icyurl<span style=\"color: #66cc66;\">&#40;<\/span>const char <span style=\"color: #66cc66;\">*<\/span>info<span style=\"color: #66cc66;\">&#41;<\/span> <span style=\"color: #66cc66;\">&#123;<\/span>Serial.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot;icyurl      &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>; Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">&#40;<\/span>info<span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span>\r\n<span style=\"color: #0066CC;\">void<\/span> audio_lasthost<span style=\"color: #66cc66;\">&#40;<\/span>const char <span style=\"color: #66cc66;\">*<\/span>info<span style=\"color: #66cc66;\">&#41;<\/span> <span style=\"color: #66cc66;\">&#123;<\/span>Serial.<span style=\"color: #0066CC;\">print<\/span><span style=\"color: #66cc66;\">&#40;<\/span><span style=\"color: #ff0000;\">&quot;lasthost    &quot;<\/span><span style=\"color: #66cc66;\">&#41;<\/span>; Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">&#40;<\/span>info<span style=\"color: #66cc66;\">&#41;<\/span>;<span style=\"color: #66cc66;\">&#125;<\/span><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u041d\u0430 \u0431\u0430\u0437\u0435 ESP32 (ESP32 DevKit v1 Wi-Fi Bluetooth ESP32-WROOM-32) \u0438 \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0433\u043e \u0426\u0410\u041f PMC5102A \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e \u0434\u043b\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0433\u043e \u0440\u0430\u0434\u0438\u043e (\u0434\u043e 320Kbit\/s16-bit 96kHz). \u0412 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b: ESP32 DevKit v1 Wi-Fi Bluetooth ESP32-WROOM-32 DAC PCM5102A LCD1602 \u0441 \u043c\u043e\u0434\u0443\u043b\u0435\u043c I2C \u042d\u043d\u043a\u043e\u0434\u0435\u0440 KY-040 (\u043c\u043e\u0434\u0443\u043b\u044c) \u0422\u0430\u043a\u0442\u043e\u0432\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430\u00a0 &#8212; 2 \u0448\u0442 ESP32 ESP32\u00a0\u2014 \u0441\u0435\u0440\u0438\u044f [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":111052,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[239,17,18],"tags":[],"class_list":["post-111051","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-17","category-18"],"views":21114,"_links":{"self":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/111051","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=111051"}],"version-history":[{"count":16,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/111051\/revisions"}],"predecessor-version":[{"id":120821,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/111051\/revisions\/120821"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/media\/111052"}],"wp:attachment":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=111051"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=111051"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=111051"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}