{"id":120767,"date":"2022-03-30T19:27:37","date_gmt":"2022-03-30T13:27:37","guid":{"rendered":"http:\/\/rcl-radio.ru\/?p=120767"},"modified":"2022-04-09T19:48:05","modified_gmt":"2022-04-09T13:48:05","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-2-arduino","status":"publish","type":"post","link":"http:\/\/rcl-radio.ru\/?p=120767","title":{"rendered":"ESP32 + PCM5102A \u2014 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0440\u0430\u0434\u0438\u043e (2) (Arduino)"},"content":{"rendered":"<p>\u0420\u0430\u043d\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"http:\/\/rcl-radio.ru\/?p=111051\">http:\/\/rcl-radio.ru\/?p=111051<\/a> \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0440\u0430\u0434\u0438\u043e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\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 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u0438\u0441\u043f\u043b\u0435\u044f LCD1602 + I2C, \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u043e \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u0438\u0441\u043f\u043b\u0435\u044f 0.96\u2032 I2C 128X64 OLED.<\/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>0.96\u2032 I2C 128X64 OLED<\/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 \u2014 2 \u0448\u0442<\/li>\n<\/ul>\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 50%;\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/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-2022-01-27-210731.png\" \/><\/td>\n<td style=\"width: 50%;\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/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-2022-01-27-210631.png\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u0412 OLED \u0434\u0438\u0441\u043f\u043b\u0435\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0438 \u0432\u0441\u0435\u0439 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 \u044d\u043a\u0440\u0430\u043d\u0430. \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0438\u043a\u0441\u0435\u043b, \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0438\u0441\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u0432\u0435\u0447\u0435\u043d\u0438\u0435. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u044f\u0440\u043a\u043e\u0439 \u0438 \u043a\u043e\u043d\u0442\u0440\u0430\u0441\u0442\u043d\u043e\u0439.<\/p>\n<div id=\"marketWidget\"><\/div>\n<p>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 OLED \u0434\u0438\u0441\u043f\u043b\u0435\u0435\u043c \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0448\u0438\u043d\u044b I2C.<\/p>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u0438\u0441\u043f\u043b\u0435\u044f SSD1306:<\/p>\n<ul>\n<li>\u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0434\u0438\u0441\u043f\u043b\u0435\u044f: OLED<\/li>\n<li>\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u0438\u0441\u043f\u043b\u0435\u044f: 128 \u043d\u0430 64 \u0442\u043e\u0447\u043a\u0438<\/li>\n<li>\u0414\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c \u0434\u0438\u0441\u043f\u043b\u0435\u044f: 0,96 \u0434\u044e\u0439\u043c\u0430<\/li>\n<li>\u0423\u0433\u043e\u043b \u043e\u0431\u0437\u043e\u0440\u0430: 160\u00b0<\/li>\n<li>\u041d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u044f: 2.8 \u0412 ~ 5.5 \u0412<\/li>\n<li>\u041c\u043e\u0449\u043d\u043e\u0441\u0442\u044c: 0,08 \u0412\u0442<\/li>\n<li>\u0413\u0430\u0431\u0430\u0440\u0438\u0442\u044b: 27.3 \u043c\u043c \u0445 27.8 \u043c\u043c \u0445 3.7 \u043c\u043c<\/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\/03\/\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-120768\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\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\/03\/\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\/03\/\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\/03\/\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\/03\/\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<p>\u041d\u0430 \u0434\u0438\u0441\u043f\u043b\u0435\u0439 0.96\u2032 I2C 128X64 OLED \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0432 \u0442\u0440\u0438 \u0441\u0442\u0440\u043e\u043a\u0438:<\/p>\n<ol>\n<li>\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 (\u0431\u0435\u0433\u0443\u0449\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430)<\/li>\n<li>\u041d\u043e\u043c\u0435\u0440 \u0441\u0442\u0430\u043d\u0446\u0438\u0438 \u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u043e\u0442\u043e\u043a\u0430<\/li>\n<li>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0440\u0430\u0434\u0438\u043e:\n<ul>\n<li>\u0413\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c (0&#8230;22 \u0443\u0440\u043e\u0432\u0435\u043d\u044c)<\/li>\n<li>\u0411\u0430\u043b\u0430\u043d\u0441 (\u00b116 \u0434\u0411)<\/li>\n<li>Bass (-40&#8230;+16 \u0434\u0411)<\/li>\n<li>Middle (-40&#8230;+16 \u0434\u0411)<\/li>\n<li>Treble (-40&#8230;+16 \u0434\u0411)<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-191642.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-120769\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-191642.png\" alt=\"\" width=\"279\" height=\"279\" 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-03-30-191642.png 279w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-191642-200x200.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-03-30-191642-45x45.png 45w\" sizes=\"auto, (max-width: 279px) 100vw, 279px\" \/><\/a><\/p>\n<\/div>\n<p>\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> \u00a0String ssid = \u00a0\u00a0\u00a0\u00a0\"Keenetic-9009\"; \u00a0\u00a0\u00a0\u00a0\/\/ ssid \u0441\u0435\u0442\u0438 WI-FI\r\n \u00a0String password = \"32481975\"; \u00a0\u00a0\u00a0\u00a0\/\/ \u043f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 \u0441\u0435\u0442\u0438 WI-FI\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\"https:\/\/rusradio.hostingradio.ru\/rusradio96.aacp\",\r\n \u00a0\"https:\/\/str.pcradio.ru\/funradio_sk_80s90s-hi\",\r\n \u00a0\"http:\/\/radio.promodj.com:8000\/186mph-192\",\r\n \u00a0\"http:\/\/live.novoeradio.by:8000\/narodnoe-radio-128k\",\r\n \u00a0\"http:\/\/listen1.myradio24.com:9000\/3355\",\r\n \u00a0\"http:\/\/101.ru\/api\/channel\/getServers\/192\/channel\/AAC\/128\/dataFormat\/mobile\",\r\n<\/pre>\n<p style=\"padding-left: 40px;\">\u043a\u043e\u043b-\u0432\u043e \u0441\u0442\u0430\u043d\u0446\u0438\u0439<\/p>\n<pre>#define CH \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a06 \u00a0\/\/ \u043a\u043e\u043b-\u0432\u043e \u0441\u0442\u0430\u043d\u0446\u0438\u0439\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\u00a0<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\u00a0<strong>1.0.5<\/strong><\/p>\n<p><a class=\"highslide-image\" href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/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-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\/%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-01-07-001353.png\" sizes=\"auto, (max-width: 1003px) 100vw, 1003px\" 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\" alt=\"\" width=\"1003\" height=\"211\" \/><\/a>\u041f\u043b\u0430\u0442\u0430\u00a0<strong>ESP32 Dev Module<\/strong><\/p>\n<p><a class=\"highslide-image\" href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/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-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\/%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-01-07-181330.png\" sizes=\"auto, (max-width: 666px) 100vw, 666px\" 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\" alt=\"\" width=\"666\" height=\"517\" \/><\/a><\/p>\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;SSD1306.h&gt;           \/\/ https:\/\/github.com\/LilyGO\/ESP32-OLED0.96-ssd1306.git<\/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           18  \/\/ CLK ENCODER<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define DT            19  \/\/ 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  SSD1306  display<span style=\"color: #66cc66;\">(<\/span>0x3c, <span style=\"color: #cc66cc;\">21<\/span>, <span style=\"color: #cc66cc;\">22<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  ESP32Encoder encoder;\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  <span style=\"color: #0066cc;\">String<\/span> <span style=\"color: #0066cc;\">url<\/span>;\r\n  unsigned long oldPosition  = -<span style=\"color: #cc66cc;\">999<\/span>,newPosition,times1,times_ch;\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  <span style=\"color: #0066cc;\">int<\/span> i_ch,t_ch,tic_ch;\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  Wire.<span style=\"color: #006600;\">begin<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;Wire.<span style=\"color: #006600;\">setClock<\/span><span style=\"color: #66cc66;\">(<\/span>400000L<span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">init<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">flipScreenVertically<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">setContrast<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">100<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #0066cc;\">clear<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">setFont<\/span><span style=\"color: #66cc66;\">(<\/span>ArialMT_Plain_10<span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">10<\/span>, <span style=\"color: #ff0000;\">\"ESP32  RADIO\"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">25<\/span>, <span style=\"color: #ff0000;\">\"PCM5102A\"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">display<\/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  <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  display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #ff0000;\">\"IP:\"<\/span> + WiFi.<span style=\"color: #006600;\">localIP<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>.<span style=\"color: #0066cc;\">toString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">display<\/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  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  display.<span style=\"color: #0066cc;\">clear<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">display<\/span><span style=\"color: #66cc66;\">(<\/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>bass,mid,treb<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\u00a0\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>;times_ch=millis<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>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>;display.<span style=\"color: #006600;\">setFont<\/span><span style=\"color: #66cc66;\">(<\/span>ArialMT_Plain_16<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>BLACK<span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">fillRect<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #cc66cc;\">128<\/span>, <span style=\"color: #cc66cc;\">19<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>WHITE<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #ff0000;\">\"Volume \"<\/span> + <span style=\"color: #0066cc;\">String<\/span><span style=\"color: #66cc66;\">(<\/span>vol<span style=\"color: #66cc66;\">)<\/span> + <span style=\"color: #ff0000;\">\" \"<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">display<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <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>;times_ch=millis<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>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>;display.<span style=\"color: #006600;\">setFont<\/span><span style=\"color: #66cc66;\">(<\/span>ArialMT_Plain_16<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>BLACK<span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">fillRect<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #cc66cc;\">128<\/span>, <span style=\"color: #cc66cc;\">19<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>WHITE<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #ff0000;\">\"Balance \"<\/span> + <span style=\"color: #0066cc;\">String<\/span><span style=\"color: #66cc66;\">(<\/span>ball<span style=\"color: #66cc66;\">)<\/span> + <span style=\"color: #ff0000;\">\" dB \"<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">display<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <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>;times_ch=millis<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>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>;display.<span style=\"color: #006600;\">setFont<\/span><span style=\"color: #66cc66;\">(<\/span>ArialMT_Plain_16<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>BLACK<span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">fillRect<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #cc66cc;\">128<\/span>, <span style=\"color: #cc66cc;\">19<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>WHITE<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #ff0000;\">\"Bass \"<\/span> + <span style=\"color: #0066cc;\">String<\/span><span style=\"color: #66cc66;\">(<\/span>bass<span style=\"color: #66cc66;\">)<\/span> + <span style=\"color: #ff0000;\">\" dB \"<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">display<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <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>;times_ch=millis<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>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>;display.<span style=\"color: #006600;\">setFont<\/span><span style=\"color: #66cc66;\">(<\/span>ArialMT_Plain_16<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>BLACK<span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">fillRect<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #cc66cc;\">128<\/span>, <span style=\"color: #cc66cc;\">19<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>WHITE<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #ff0000;\">\"Middle \"<\/span> + <span style=\"color: #0066cc;\">String<\/span><span style=\"color: #66cc66;\">(<\/span>mid<span style=\"color: #66cc66;\">)<\/span> + <span style=\"color: #ff0000;\">\" dB \"<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">display<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <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>;times_ch=millis<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>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>;display.<span style=\"color: #006600;\">setFont<\/span><span style=\"color: #66cc66;\">(<\/span>ArialMT_Plain_16<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>BLACK<span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">fillRect<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #cc66cc;\">128<\/span>, <span style=\"color: #cc66cc;\">19<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>WHITE<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #ff0000;\">\"Treble \"<\/span> + <span style=\"color: #0066cc;\">String<\/span><span style=\"color: #66cc66;\">(<\/span>treb<span style=\"color: #66cc66;\">)<\/span> + <span style=\"color: #ff0000;\">\" dB \"<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">display<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span><span style=\"color: #66cc66;\">}<\/span>   \r\n\u00a0\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>;\r\n delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">200<\/span><span style=\"color: #66cc66;\">)<\/span>;w=<span style=\"color: #cc66cc;\">1<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;times_ch=millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #0066cc;\">clear<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #0066cc;\">menu<\/span>=<span style=\"color: #cc66cc;\">0<\/span>;vol_1=<span style=\"color: #cc66cc;\">1<\/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\u00a0\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>;\r\n delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">200<\/span><span style=\"color: #66cc66;\">)<\/span>;w=<span style=\"color: #cc66cc;\">1<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;times_ch=millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #0066cc;\">clear<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #0066cc;\">menu<\/span>=<span style=\"color: #cc66cc;\">0<\/span>;vol_1=<span style=\"color: #cc66cc;\">1<\/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\u00a0\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>;w=<span style=\"color: #cc66cc;\">1<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;display.<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>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  w=<span style=\"color: #cc66cc;\">0<\/span>;\r\n  display.<span style=\"color: #006600;\">setFont<\/span><span style=\"color: #66cc66;\">(<\/span>ArialMT_Plain_16<span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">20<\/span>, <span style=\"color: #ff0000;\">\"CH\"<\/span> + <span style=\"color: #0066cc;\">String<\/span><span style=\"color: #66cc66;\">(<\/span>ct<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">40<\/span>,<span style=\"color: #cc66cc;\">20<\/span>, <span style=\"color: #0066cc;\">String<\/span><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: #ff0000;\">\"k\"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">display<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>-times_ch<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">500<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>BLACK<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">fillRect<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">128<\/span>, <span style=\"color: #cc66cc;\">19<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>WHITE<span style=\"color: #66cc66;\">)<\/span>;\r\n    times_ch=millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #0066cc;\">int<\/span> n_ch = ch.<span style=\"color: #0066cc;\">length<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #0066cc;\">String<\/span> s1 = ch.<span style=\"color: #0066cc;\">substring<\/span><span style=\"color: #66cc66;\">(<\/span>i_ch,n_ch<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">setFont<\/span><span style=\"color: #66cc66;\">(<\/span>ArialMT_Plain_16<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">0<\/span>, s1<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">display<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    tic_ch++;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>tic_ch<span style=\"color: #66cc66;\">&gt;<\/span>n_ch+<span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>tic_ch=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>tic_ch<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i_ch++;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>i_ch<span style=\"color: #66cc66;\">&gt;<\/span>n_ch<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i_ch=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <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>;<span style=\"color: #0066cc;\">url<\/span>=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_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<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 33.3333%;\"><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192530.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-120775\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192530.png\" alt=\"\" width=\"329\" height=\"269\" 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-03-30-192530.png 329w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192530-200x164.png 200w\" sizes=\"auto, (max-width: 329px) 100vw, 329px\" \/><\/a><\/td>\n<td style=\"width: 33.3333%;\"><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192541.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-120774\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192541.png\" alt=\"\" width=\"283\" height=\"241\" 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-03-30-192541.png 283w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192541-200x170.png 200w\" sizes=\"auto, (max-width: 283px) 100vw, 283px\" \/><\/a><\/td>\n<td style=\"width: 33.3333%;\"><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192547.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-120773\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192547.png\" alt=\"\" width=\"298\" height=\"256\" 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-03-30-192547.png 298w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192547-200x172.png 200w\" sizes=\"auto, (max-width: 298px) 100vw, 298px\" \/><\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%;\"><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192552.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-120772\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192552.png\" alt=\"\" width=\"294\" height=\"256\" 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-03-30-192552.png 294w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192552-200x174.png 200w\" sizes=\"auto, (max-width: 294px) 100vw, 294px\" \/><\/a><\/td>\n<td style=\"width: 33.3333%;\"><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192558.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-120771\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192558.png\" alt=\"\" width=\"295\" height=\"258\" 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-03-30-192558.png 295w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192558-200x175.png 200w\" sizes=\"auto, (max-width: 295px) 100vw, 295px\" \/><\/a><\/td>\n<td style=\"width: 33.3333%;\"><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192603.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-120770\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192603.png\" alt=\"\" width=\"313\" height=\"239\" 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-03-30-192603.png 313w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2022\/03\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-03-30-192603-200x153.png 200w\" sizes=\"auto, (max-width: 313px) 100vw, 313px\" \/><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\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 &#8212; <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 href=\"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\" 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\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2022-04-02-175454.png\" alt=\"\" width=\"704\" height=\"572\" 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\" sizes=\"auto, (max-width: 704px) 100vw, 704px\" \/><\/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 &#171;\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c&#187;, \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 &#171;\u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c&#187;.<\/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>\n<p style=\"text-align: center;\"><strong>const String endpoint = &#171;http:\/\/forum.rcl-radio.ru\/internet_radio_esp32\/data.html&#187;;<\/strong><\/p>\n<\/blockquote>\n<p><strong>data<\/strong> &#8212; \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 \"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;SSD1306.h&gt;           \/\/ https:\/\/github.com\/LilyGO\/ESP32-OLED0.96-ssd1306.git<\/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\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           18  \/\/ CLK ENCODER<\/span>\r\n<span style=\"color: #808080; font-style: italic;\">#define DT            19  \/\/ 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\u00a0\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;\">\"http:\/\/forum.rcl-radio.ru\/internet_radio_esp32\/<strong>data<\/strong>.html\"<\/span>;\r\n\u00a0\r\n\u00a0\r\n  Audio audio;\r\n  SSD1306  display<span style=\"color: #66cc66;\">(<\/span>0x3c, <span style=\"color: #cc66cc;\">21<\/span>, <span style=\"color: #cc66cc;\">22<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  ESP32Encoder encoder;\r\n  <span style=\"color: #0066cc;\">String<\/span> ssid =     <span style=\"color: #ff0000;\">\"Redmi Note 3\"<\/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\u00a0\r\n  <span style=\"color: #0066cc;\">String<\/span> payload;\r\n\u00a0\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  <span style=\"color: #0066cc;\">String<\/span> <span style=\"color: #0066cc;\">url<\/span>;\r\n  unsigned long oldPosition  = -<span style=\"color: #cc66cc;\">999<\/span>,newPosition,times1,times_ch;\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  <span style=\"color: #0066cc;\">int<\/span> i_ch,t_ch,tic_ch;\r\n  const char <span style=\"color: #66cc66;\">*<\/span>listch<span style=\"color: #66cc66;\">[<\/span>CH<span style=\"color: #66cc66;\">]<\/span>;\r\n  <span style=\"color: #0066cc;\">String<\/span> xval<span style=\"color: #66cc66;\">[<\/span>CH<span style=\"color: #66cc66;\">]<\/span>;\r\n\u00a0\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  Wire.<span style=\"color: #006600;\">begin<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;Wire.<span style=\"color: #006600;\">setClock<\/span><span style=\"color: #66cc66;\">(<\/span>400000L<span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">init<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">flipScreenVertically<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">setContrast<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">100<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #0066cc;\">clear<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">setFont<\/span><span style=\"color: #66cc66;\">(<\/span>ArialMT_Plain_10<span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">10<\/span>, <span style=\"color: #ff0000;\">\"ESP32  RADIO\"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">25<\/span>, <span style=\"color: #ff0000;\">\"PCM5102A\"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">display<\/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  <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  display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #ff0000;\">\"IP:\"<\/span> + WiFi.<span style=\"color: #006600;\">localIP<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>.<span style=\"color: #0066cc;\">toString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">display<\/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  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  display.<span style=\"color: #0066cc;\">clear<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">display<\/span><span style=\"color: #66cc66;\">(<\/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=\"font-style: italic;\">bass,mid,treb<\/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\u00a0\r\n  HTTPClient http;\r\n  http.<span style=\"color: #006600;\">begin<\/span><span style=\"color: #66cc66;\">(<\/span>endpoint<span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #0066cc;\">int<\/span> httpCode = http.<span style=\"color: #0066cc;\">GET<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>httpCode <span style=\"color: #66cc66;\">&gt;<\/span> <span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>payload = http.<span style=\"color: #006600;\">getString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  http.<span style=\"color: #0066cc;\">end<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;  \r\n\u00a0\r\n  <span style=\"color: #b1b100;\">for<\/span><span style=\"color: #66cc66;\">(<\/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;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  xval<span style=\"color: #66cc66;\">[<\/span>kol_i<span style=\"color: #66cc66;\">]<\/span> = getValue<span style=\"color: #66cc66;\">(<\/span>payload, <span style=\"color: #ff0000;\">','<\/span>, kol_i<span style=\"color: #66cc66;\">)<\/span>;\r\n  Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">(<\/span>xval<span style=\"color: #66cc66;\">[<\/span>kol_i<span style=\"color: #66cc66;\">]<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span>\r\n  Serial.<span style=\"color: #006600;\">println<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #b1b100;\">for<\/span><span style=\"color: #66cc66;\">(<\/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;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n  listch<span style=\"color: #66cc66;\">[<\/span>kol_i<span style=\"color: #66cc66;\">]<\/span> = xval<span style=\"color: #66cc66;\">[<\/span>kol_i<span style=\"color: #66cc66;\">]<\/span>.<span style=\"color: #006600;\">c_str<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span>\r\n<span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n<span style=\"color: #0066cc;\">String<\/span> getValue<span style=\"color: #66cc66;\">(<\/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;\">)<\/span><span style=\"color: #66cc66;\">{<\/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;\">[<\/span><span style=\"color: #66cc66;\">]<\/span> = <span style=\"color: #66cc66;\">{<\/span> <span style=\"color: #cc66cc;\">0<\/span>, -<span style=\"color: #cc66cc;\">1<\/span> <span style=\"color: #66cc66;\">}<\/span>;\r\n    <span style=\"color: #0066cc;\">int<\/span> maxIndex = data1.<span style=\"color: #0066cc;\">length<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span> - <span style=\"color: #cc66cc;\">1<\/span>;\r\n    <span style=\"color: #b1b100;\">for<\/span> <span style=\"color: #66cc66;\">(<\/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;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n        <span style=\"color: #b1b100;\">if<\/span> <span style=\"color: #66cc66;\">(<\/span>data1.<span style=\"color: #0066cc;\">charAt<\/span><span style=\"color: #66cc66;\">(<\/span>i<span style=\"color: #66cc66;\">)<\/span> == separator <span style=\"color: #66cc66;\">||<\/span> i == maxIndex<span style=\"color: #66cc66;\">)<\/span> <span style=\"color: #66cc66;\">{<\/span>\r\n            found++;\r\n            strIndex<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">]<\/span> = strIndex<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">]<\/span> + <span style=\"color: #cc66cc;\">1<\/span>;\r\n            strIndex<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">]<\/span> = <span style=\"color: #66cc66;\">(<\/span>i == maxIndex<span style=\"color: #66cc66;\">)<\/span> ? i+<span style=\"color: #cc66cc;\">1<\/span> : i;\r\n        <span style=\"color: #66cc66;\">}<\/span><span style=\"color: #66cc66;\">}<\/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;\">(<\/span>strIndex<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">0<\/span><span style=\"color: #66cc66;\">]<\/span>, strIndex<span style=\"color: #66cc66;\">[<\/span><span style=\"color: #cc66cc;\">1<\/span><span style=\"color: #66cc66;\">]<\/span><span style=\"color: #66cc66;\">)<\/span> : <span style=\"color: #ff0000;\">\"\"<\/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\u00a0\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>;times_ch=millis<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>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>;display.<span style=\"color: #006600;\">setFont<\/span><span style=\"color: #66cc66;\">(<\/span>ArialMT_Plain_16<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>BLACK<span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">fillRect<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #cc66cc;\">128<\/span>, <span style=\"color: #cc66cc;\">19<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>WHITE<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #ff0000;\">\"Volume \"<\/span> + <span style=\"color: #0066cc;\">String<\/span><span style=\"color: #66cc66;\">(<\/span>vol<span style=\"color: #66cc66;\">)<\/span> + <span style=\"color: #ff0000;\">\" \"<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">display<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <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>;times_ch=millis<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>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>;display.<span style=\"color: #006600;\">setFont<\/span><span style=\"color: #66cc66;\">(<\/span>ArialMT_Plain_16<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>BLACK<span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">fillRect<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #cc66cc;\">128<\/span>, <span style=\"color: #cc66cc;\">19<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>WHITE<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #ff0000;\">\"Balance \"<\/span> + <span style=\"color: #0066cc;\">String<\/span><span style=\"color: #66cc66;\">(<\/span>ball<span style=\"color: #66cc66;\">)<\/span> + <span style=\"color: #ff0000;\">\" dB \"<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">display<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <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>;times_ch=millis<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>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>;display.<span style=\"color: #006600;\">setFont<\/span><span style=\"color: #66cc66;\">(<\/span>ArialMT_Plain_16<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>BLACK<span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">fillRect<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #cc66cc;\">128<\/span>, <span style=\"color: #cc66cc;\">19<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>WHITE<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #ff0000;\">\"Bass \"<\/span> + <span style=\"color: #0066cc;\">String<\/span><span style=\"color: #66cc66;\">(<\/span>bass<span style=\"color: #66cc66;\">)<\/span> + <span style=\"color: #ff0000;\">\" dB \"<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">display<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <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>;times_ch=millis<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>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>;display.<span style=\"color: #006600;\">setFont<\/span><span style=\"color: #66cc66;\">(<\/span>ArialMT_Plain_16<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>BLACK<span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">fillRect<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #cc66cc;\">128<\/span>, <span style=\"color: #cc66cc;\">19<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>WHITE<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #ff0000;\">\"Middle \"<\/span> + <span style=\"color: #0066cc;\">String<\/span><span style=\"color: #66cc66;\">(<\/span>mid<span style=\"color: #66cc66;\">)<\/span> + <span style=\"color: #ff0000;\">\" dB \"<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">display<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <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>;times_ch=millis<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>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>;display.<span style=\"color: #006600;\">setFont<\/span><span style=\"color: #66cc66;\">(<\/span>ArialMT_Plain_16<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>BLACK<span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">fillRect<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #cc66cc;\">128<\/span>, <span style=\"color: #cc66cc;\">19<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>WHITE<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">40<\/span>, <span style=\"color: #ff0000;\">\"Treble \"<\/span> + <span style=\"color: #0066cc;\">String<\/span><span style=\"color: #66cc66;\">(<\/span>treb<span style=\"color: #66cc66;\">)<\/span> + <span style=\"color: #ff0000;\">\" dB \"<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #006600;\">display<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #66cc66;\">}<\/span><span style=\"color: #66cc66;\">}<\/span>   \r\n\u00a0\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>;\r\n delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">300<\/span><span style=\"color: #66cc66;\">)<\/span>;w=<span style=\"color: #cc66cc;\">1<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;times_ch=millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #0066cc;\">clear<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #0066cc;\">menu<\/span>=<span style=\"color: #cc66cc;\">0<\/span>;vol_1=<span style=\"color: #cc66cc;\">1<\/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\u00a0\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>;\r\n delay<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">300<\/span><span style=\"color: #66cc66;\">)<\/span>;w=<span style=\"color: #cc66cc;\">1<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;times_ch=millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;display.<span style=\"color: #0066cc;\">clear<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;<span style=\"color: #0066cc;\">menu<\/span>=<span style=\"color: #cc66cc;\">0<\/span>;vol_1=<span style=\"color: #cc66cc;\">1<\/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\u00a0\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>;w=<span style=\"color: #cc66cc;\">1<\/span>;w1=<span style=\"color: #cc66cc;\">1<\/span>;display.<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>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  w=<span style=\"color: #cc66cc;\">0<\/span>;\r\n  display.<span style=\"color: #006600;\">setFont<\/span><span style=\"color: #66cc66;\">(<\/span>ArialMT_Plain_16<span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">20<\/span>, <span style=\"color: #ff0000;\">\"CH\"<\/span> + <span style=\"color: #0066cc;\">String<\/span><span style=\"color: #66cc66;\">(<\/span>ct<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">40<\/span>,<span style=\"color: #cc66cc;\">20<\/span>, <span style=\"color: #0066cc;\">String<\/span><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: #ff0000;\">\"k\"<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  display.<span style=\"color: #006600;\">display<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n  <span style=\"color: #66cc66;\">}<\/span>\r\n\u00a0\r\n  <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>-times_ch<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">500<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>\r\n    display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>BLACK<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">fillRect<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">128<\/span>, <span style=\"color: #cc66cc;\">19<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">setColor<\/span><span style=\"color: #66cc66;\">(<\/span>WHITE<span style=\"color: #66cc66;\">)<\/span>;\r\n    times_ch=millis<span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #0066cc;\">int<\/span> n_ch = ch.<span style=\"color: #0066cc;\">length<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    <span style=\"color: #0066cc;\">String<\/span> s1 = ch.<span style=\"color: #0066cc;\">substring<\/span><span style=\"color: #66cc66;\">(<\/span>i_ch,n_ch<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">setFont<\/span><span style=\"color: #66cc66;\">(<\/span>ArialMT_Plain_16<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">drawString<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #cc66cc;\">0<\/span>, <span style=\"color: #cc66cc;\">0<\/span>, s1<span style=\"color: #66cc66;\">)<\/span>;\r\n    display.<span style=\"color: #006600;\">display<\/span><span style=\"color: #66cc66;\">(<\/span><span style=\"color: #66cc66;\">)<\/span>;\r\n    tic_ch++;<span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>tic_ch<span style=\"color: #66cc66;\">&gt;<\/span>n_ch+<span style=\"color: #cc66cc;\">5<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>tic_ch=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n    <span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>tic_ch<span style=\"color: #66cc66;\">&gt;<\/span><span style=\"color: #cc66cc;\">4<\/span><span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i_ch++;<span style=\"color: #66cc66;\">}<\/span><span style=\"color: #b1b100;\">if<\/span><span style=\"color: #66cc66;\">(<\/span>i_ch<span style=\"color: #66cc66;\">&gt;<\/span>n_ch<span style=\"color: #66cc66;\">)<\/span><span style=\"color: #66cc66;\">{<\/span>i_ch=<span style=\"color: #cc66cc;\">0<\/span>;<span style=\"color: #66cc66;\">}<\/span>\r\n  <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>;<span style=\"color: #0066cc;\">url<\/span>=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_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?id=435\">http:\/\/forum.rcl-radio.ru\/viewtopic.php?id=435<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0420\u0430\u043d\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 http:\/\/rcl-radio.ru\/?p=111051 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0441\u044f \u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0440\u0430\u0434\u0438\u043e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\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 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u0438\u0441\u043f\u043b\u0435\u044f LCD1602 + I2C, \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u043e \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u0438\u0441\u043f\u043b\u0435\u044f 0.96\u2032 I2C 128X64 OLED. \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 0.96\u2032 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":120769,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[239,5,12],"tags":[],"class_list":["post-120767","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-5","category-12"],"views":15330,"_links":{"self":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/120767","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=120767"}],"version-history":[{"count":11,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/120767\/revisions"}],"predecessor-version":[{"id":120851,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/120767\/revisions\/120851"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/media\/120769"}],"wp:attachment":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=120767"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=120767"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=120767"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}