{"id":130528,"date":"2023-05-01T22:14:27","date_gmt":"2023-05-01T16:14:27","guid":{"rendered":"http:\/\/rcl-radio.ru\/?p=130528"},"modified":"2026-01-07T14:47:05","modified_gmt":"2026-01-07T08:47:05","slug":"%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7%d0%b0%d1%82%d0%be%d1%80-%d1%81%d0%bf%d0%b5%d0%ba%d1%82%d1%80%d0%b0-%d0%bd%d0%b0-sh1106-oled-1-3-arduino","status":"publish","type":"post","link":"http:\/\/rcl-radio.ru\/?p=130528","title":{"rendered":"\u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u043d\u0430 SH1106 OLED 1.3&#8243; (Arduino)"},"content":{"rendered":"<p>SH1106 OLED 1.3&#8243; &#8212; OLED-\u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c SH1106. \u042d\u0442\u043e\u0442 \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 128&#215;64 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0438 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u0443\u044e \u0433\u0440\u0430\u0444\u0438\u043a\u0443 \u0438 \u0442\u0435\u043a\u0441\u0442. \u041e\u043d \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0433\u0434\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u043c \u0438 \u044d\u043d\u0435\u0440\u0433\u043e\u0441\u0431\u0435\u0440\u0435\u0433\u0430\u044e\u0449\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c. \u0414\u0438\u0441\u043f\u043b\u0435\u0439 \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043a \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c \u0438 \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u043c, \u0442\u0430\u043a\u0438\u043c \u043a\u0430\u043a Arduino \u0438\u043b\u0438 Raspberry Pi, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 SPI \u0438\u043b\u0438 I2C.<\/p>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-05-01-22-11-47.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-130531\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-05-01-22-11-47.png\" alt=\"\" width=\"723\" height=\"331\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-05-01-22-11-47.png 723w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-05-01-22-11-47-500x229.png 500w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-05-01-22-11-47-200x92.png 200w\" sizes=\"auto, (max-width: 723px) 100vw, 723px\" \/><\/a><\/p>\n<p>\u041d\u0430 OLED \u0434\u0438\u0441\u043f\u043b\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0430\u0443\u0434\u0438\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430.<\/p>\n<p><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/04\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-04-29-16-31-33.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-130523\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/04\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-04-29-16-31-33.png\" alt=\"\" width=\"480\" height=\"285\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/04\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-04-29-16-31-33.png 480w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/04\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-04-29-16-31-33-200x119.png 200w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/a><\/p>\n<p>\u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043d\u0430 \u0431\u0430\u0437\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 LGT8F328P. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043b\u0430\u0442\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 LGT8F328P-LQFP32 MiniEVB.<\/p>\n<p style=\"text-align: center;\"><strong>\u041f\u043b\u0430\u0442\u0430\u00a0LGT8F328P-LQFP32 MiniEVB\u00a0<\/strong><\/p>\n<p><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/04\/%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-2023-04-29-00-17-17.png\" \/><\/p>\n<p>LGT8F328P-LQFP32 MiniEVB &#8212; \u044d\u0442\u043e \u043c\u0438\u043d\u0438\u0430\u0442\u044e\u0440\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c LGT8F328P \u0432 \u043a\u043e\u0440\u043f\u0443\u0441\u0435 LQFP32. \u042d\u0442\u043e\u0442 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c \u0441 ATmega328P, \u0438\u043c\u0435\u0435\u0442 \u0442\u0430\u043a\u0442\u043e\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0434\u043e 32 \u041c\u0413\u0446 \u0438 32 \u041a\u0431 \u0444\u043b\u044d\u0448-\u043f\u0430\u043c\u044f\u0442\u0438. MiniEVB \u043e\u0441\u043d\u0430\u0449\u0435\u043d\u0430 USB-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0433\u043e \u043a \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 \u0435\u0441\u0442\u044c \u0440\u0430\u0437\u044a\u0435\u043c\u044b \u0434\u043b\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f, \u043c\u043e\u043d\u0442\u0430\u0436\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0438\u0444\u0435\u0440\u0438\u0439\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043f\u0438\u043d\u0430\u043c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. \u042d\u0442\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 LED-\u043c\u0438\u0433\u0430\u043b\u043e\u043a \u0434\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 \u0431\u0430\u0437\u0435 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430.<\/p>\n<div id=\"marketWidget\"><\/div>\n<p>\u041a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443\u00a0<strong>LGT8F328P (\u043f\u043b\u0430\u0442\u0430)\u00a0<\/strong>\u0432 Arduino IDE \u0438 \u043f\u0440\u043e\u0448\u0438\u0442\u044c \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432\u00a0<a href=\"http:\/\/rcl-radio.ru\/?p=129966\">LGT8F328P-LQFP32 MiniEVB \u0432 Arduino IDE<\/a>.<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 50%;\"><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-05-01-22-10-22.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-130529\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-05-01-22-10-22.png\" alt=\"\" width=\"316\" height=\"272\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-05-01-22-10-22.png 316w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-05-01-22-10-22-200x172.png 200w\" sizes=\"auto, (max-width: 316px) 100vw, 316px\" \/><\/a><\/td>\n<td style=\"width: 50%;\"><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-05-01-22-10-32.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-130530\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-05-01-22-10-32.png\" alt=\"\" width=\"316\" height=\"272\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-05-01-22-10-32.png 316w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2023-05-01-22-10-32-200x172.png 200w\" sizes=\"auto, (max-width: 316px) 100vw, 316px\" \/><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<pre><span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">AUTO_GAIN<\/span> <span style=\"color: #000000;\">1<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0430\u0432\u0442\u043e\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u043e \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u0438 (\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f)<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">VOL_THR<\/span> <span style=\"color: #000000;\">25<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0440\u043e\u0433 \u0442\u0438\u0448\u0438\u043d\u044b (\u043d\u0438\u0436\u0435 \u043d\u0435\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442)<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">LOW_PASS<\/span> <span style=\"color: #000000;\">20<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043d\u0438\u0436\u043d\u0438\u0439 \u043f\u043e\u0440\u043e\u0433 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0448\u0443\u043c\u043e\u0432 (\u043d\u0435\u0442 \u0441\u043a\u0430\u0447\u043a\u043e\u0432 \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0437\u0432\u0443\u043a\u0430)<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">DEF_GAIN<\/span> <span style=\"color: #000000;\">80<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u043e\u0433 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u043f\u0440\u0438 GAIN_CONTROL \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f)<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #00979c;\">FHT_N<\/span> <span style=\"color: #000000;\">256<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0448\u0438\u0440\u0438\u043d\u0430 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u04452<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #00979c;\">LOG_OUT<\/span> <span style=\"color: #000000;\">1<\/span>\r\n\r\n<span style=\"color: #434f54;\">\/\/ \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0437\u0430\u0431\u0438\u0442\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0442\u043e\u043d\u043e\u0432, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043b\u0430\u0432\u043d\u043e, \u043f\u043e\u0442\u043e\u043c \u043a\u0440\u0443\u0447\u0435<\/span>\r\n<span style=\"color: #00979c;\">byte<\/span> <span style=\"color: #000000;\">posOffset<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">16<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">{<\/span><span style=\"color: #000000;\">1<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">2<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">3<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">4<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">5<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">6<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">7<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">8<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">9<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">10<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">11<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">12<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">13<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">14<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">15<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">16<\/span><span style=\"color: #000000;\">}<\/span><span style=\"color: #000000;\">;<\/span><span style=\"color: #434f54;\">\/\/1500 Hz<\/span>\r\n<span style=\"color: #434f54;\">\/\/byte posOffset[16] = {1, 2, 3, 4, 6, 8, 10, 13, 16, 20, 25, 30, 35, 40, 45, 50};\/\/4000 Hz<\/span>\r\n\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">cbi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">sfr<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #d35400;\">bit<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">_SFR_BYTE<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">sfr<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">&amp;=<\/span> <span style=\"color: #434f54;\">~<\/span><span style=\"color: #000000;\">_BV<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">bit<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">sbi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">sfr<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #d35400;\">bit<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">_SFR_BYTE<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">sfr<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">|=<\/span> <span style=\"color: #000000;\">_BV<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">bit<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span>\r\n\r\n<span style=\"color: #5e6d03;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><span style=\"color: #d35400;\">Wire<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span>\r\n<span style=\"color: #5e6d03;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><span style=\"color: #000000;\">U8glib<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span> \u00a0<span style=\"color: #434f54;\">\/\/ <\/span><u><span style=\"color: #434f54;\">http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/04\/U8glib.zip<\/span><\/u>\r\n<span style=\"color: #5e6d03;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><b><span style=\"color: #d35400;\">FHT<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span> \u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ <\/span><u><span style=\"color: #434f54;\">http:\/\/forum.rcl-radio.ru\/misc.php?action=pan_download&amp;item=297&amp;download=1<\/span><\/u>\r\n\r\n<span style=\"color: #000000;\">U8GLIB_SH1106_128X64<\/span> <span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">U8G_I2C_OPT_DEV_0<\/span><span style=\"color: #434f54;\">|<\/span><span style=\"color: #000000;\">U8G_I2C_OPT_FAST<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0<span style=\"color: #434f54;\">\/\/ Dev 0, Fast I2C \/ TWI<\/span>\r\n \r\n \u00a0<span style=\"color: #00979c;\">byte<\/span> <span style=\"color: #000000;\">gain<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">DEF_GAIN<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\r\n \u00a0<span style=\"color: #00979c;\">unsigned<\/span> <span style=\"color: #00979c;\">long<\/span> <span style=\"color: #000000;\">gainTimer<\/span><span style=\"color: #434f54;\">,<\/span><span style=\"color: #000000;\">times<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #00979c;\">byte<\/span> <span style=\"color: #000000;\">maxValue<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">maxValue_f<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #00979c;\">float<\/span> <span style=\"color: #000000;\">k<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0.1<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #00979c;\">byte<\/span> <span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">16<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #434f54;\">,<\/span><span style=\"color: #000000;\">urr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">16<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #5e6d03;\">setup<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0<span style=\"color: #d35400;\">delay<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">100<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \r\n \u00a0<span style=\"color: #000000;\">sbi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ADCSRA<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">ADPS2<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">cbi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ADCSRA<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">ADPS1<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">sbi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ADCSRA<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">ADPS0<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">9600<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #d35400;\">Wire<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span><span style=\"color: #d35400;\">Wire<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">setClock<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">800000L<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n <span style=\"color: #434f54;\">\/\/ myOLED.setRot180();<\/span>\r\n \u00a0<span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">setFont<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">u8g_font_profont11r<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #d35400;\">analogReadResolution<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">10<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span><span style=\"color: #434f54;\">\/\/ \u0410\u0426\u041f 10 \u0411\u0418\u0422<\/span>\r\n \u00a0<span style=\"color: #d35400;\">analogReference<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">INTERNAL1V024<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #d35400;\">pinMode<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">A0<\/span><span style=\"color: #434f54;\">,<\/span><span style=\"color: #00979c;\">INPUT<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ INPUT AUDIO<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n \r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #5e6d03;\">loop<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n <span style=\"color: #000000;\">analyzeAudio<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n<span style=\"color: #434f54;\">\/\/\/\/\/\/\/ PRINT OLED \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n <span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">firstPage<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0<span style=\"color: #5e6d03;\">do<\/span> <span style=\"color: #000000;\">{<\/span>\r\n <span style=\"color: #5e6d03;\">for<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">pos<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">pos<\/span> <span style=\"color: #434f54;\">&lt;<\/span> <span style=\"color: #000000;\">128<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">pos<\/span><span style=\"color: #434f54;\">+=<\/span><span style=\"color: #000000;\">8<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n <span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">posLevel<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">map<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">fht_log_out<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">posOffset<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #434f54;\">\/<\/span><span style=\"color: #000000;\">8<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">LOW_PASS<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">gain<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">60<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0<span style=\"color: #000000;\">posLevel<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">constrain<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">posLevel<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">60<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">millis<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #434f54;\">-<\/span><span style=\"color: #000000;\">times<\/span><span style=\"color: #434f54;\">&lt;<\/span><span style=\"color: #000000;\">2000<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">{<\/span><span style=\"color: #000000;\">posLevel<\/span><span style=\"color: #434f54;\">=<\/span><span style=\"color: #000000;\">60<\/span><span style=\"color: #000000;\">;<\/span><span style=\"color: #000000;\">}<\/span> \u00a0\u00a0\u00a0\u00a0\r\n \u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">urr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">posLevel<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">urr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #434f54;\">&lt;<\/span><span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">{<\/span><span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #434f54;\">=<\/span><span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #434f54;\">-<\/span><span style=\"color: #000000;\">1<\/span><span style=\"color: #000000;\">;<\/span><span style=\"color: #000000;\">}<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">else<\/span><span style=\"color: #000000;\">{<\/span><span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">posLevel<\/span><span style=\"color: #000000;\">;<\/span><span style=\"color: #000000;\">}<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #d35400;\">delayMicroseconds<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">200<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \r\n <span style=\"color: #5e6d03;\">for<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">v_pos<\/span><span style=\"color: #434f54;\">=<\/span><span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">v_pos<\/span><span style=\"color: #434f54;\">&lt;<\/span><span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #434f54;\">+<\/span><span style=\"color: #000000;\">4<\/span><span style=\"color: #000000;\">;<\/span><span style=\"color: #000000;\">v_pos<\/span><span style=\"color: #434f54;\">+=<\/span><span style=\"color: #000000;\">4<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">{<\/span><span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">drawBox<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">61<\/span><span style=\"color: #434f54;\">-<\/span><span style=\"color: #000000;\">v_pos<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">6<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">2<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span><span style=\"color: #000000;\">}<\/span><span style=\"color: #000000;\">}<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span> <span style=\"color: #5e6d03;\">while<\/span><span style=\"color: #000000;\">(<\/span> <span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">nextPage<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n<span style=\"color: #434f54;\">\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/span>\r\n <span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">AUTO_GAIN<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">maxValue_f<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">maxValue<\/span> <span style=\"color: #434f54;\">*<\/span> <span style=\"color: #000000;\">k<\/span> <span style=\"color: #434f54;\">+<\/span> <span style=\"color: #000000;\">maxValue_f<\/span> <span style=\"color: #434f54;\">*<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">1<\/span> <span style=\"color: #434f54;\">-<\/span> <span style=\"color: #000000;\">k<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">millis<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">-<\/span> <span style=\"color: #000000;\">gainTimer<\/span> <span style=\"color: #434f54;\">&gt;<\/span> <span style=\"color: #000000;\">1500<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043a\u0430\u0436\u0434\u044b\u0435 1500 \u043c\u0441<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0435\u0441\u043b\u0438 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0440\u043e\u0433\u0430, \u0432\u0437\u044f\u0442\u044c \u0435\u0433\u043e \u043a\u0430\u043a \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">maxValue_f<\/span> <span style=\"color: #434f54;\">&gt;<\/span> <span style=\"color: #000000;\">VOL_THR<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">gain<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">maxValue_f<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0435\u0441\u043b\u0438 \u043d\u0435\u0442, \u0442\u043e \u0432\u0437\u044f\u0442\u044c \u043f\u043e\u0440\u043e\u0433 \u043f\u043e\u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0442\u043e\u0431\u044b \u0448\u0443\u043c\u044b \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b\u0438<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">else<\/span> <span style=\"color: #000000;\">gain<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">100<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">gainTimer<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">millis<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n<span style=\"color: #000000;\">}<\/span><span style=\"color: #434f54;\">\/\/ end loop<\/span>\r\n \r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #000000;\">analyzeAudio<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0<span style=\"color: #5e6d03;\">for<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">i<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0<\/span> <span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">i<\/span> <span style=\"color: #434f54;\">&lt;<\/span> <span style=\"color: #00979c;\">FHT_N<\/span> <span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">i<\/span><span style=\"color: #434f54;\">++<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">sample<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">analogRead<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">A0<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">fht_input<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">i<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">sample<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ put real data into bins<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0<span style=\"color: #d35400;\">fht_window<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0<span style=\"color: #434f54;\">\/\/ window the data for better frequency response<\/span>\r\n \u00a0<span style=\"color: #d35400;\">fht_reorder<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ reorder the data before doing the fht<\/span>\r\n \u00a0<span style=\"color: #d35400;\">fht_run<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ process the data in the fht<\/span>\r\n \u00a0<span style=\"color: #d35400;\">fht_mag_log<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ take the output of the fht<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n\r\n<\/pre>\n<hr \/>\n<p style=\"text-align: left;\">\u0414\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u043a\u0435\u0442\u0447\u0430<\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043f\u0438\u043a\u043e\u0432\u044b\u0435 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u044b<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr>\n<td style=\"width: 50%;\"><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2026-01-07-14-25-09.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-134479\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2026-01-07-14-25-09.png\" alt=\"\" width=\"345\" height=\"220\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2026-01-07-14-25-09.png 345w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2026-01-07-14-25-09-200x128.png 200w\" sizes=\"auto, (max-width: 345px) 100vw, 345px\" \/><\/a><\/td>\n<td style=\"width: 50%;\"><a href=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2026-01-07-14-25-33.png\" class=\"highslide-image\" onclick=\"return hs.expand(this);\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-134478\" src=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2026-01-07-14-25-33.png\" alt=\"\" width=\"345\" height=\"220\" srcset=\"http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2026-01-07-14-25-33.png 345w, http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/05\/\u0421\u043d\u0438\u043c\u043e\u043a-\u044d\u043a\u0440\u0430\u043d\u0430-\u043e\u0442-2026-01-07-14-25-33-200x128.png 200w\" sizes=\"auto, (max-width: 345px) 100vw, 345px\" \/><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<pre><span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">AUTO_GAIN<\/span> <span style=\"color: #000000;\">1<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0430\u0432\u0442\u043e\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u043e \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u0438 (\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f)<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">VOL_THR<\/span> <span style=\"color: #000000;\">25<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0440\u043e\u0433 \u0442\u0438\u0448\u0438\u043d\u044b (\u043d\u0438\u0436\u0435 \u043d\u0435\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442)<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">LOW_PASS<\/span> <span style=\"color: #000000;\">20<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043d\u0438\u0436\u043d\u0438\u0439 \u043f\u043e\u0440\u043e\u0433 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0448\u0443\u043c\u043e\u0432 (\u043d\u0435\u0442 \u0441\u043a\u0430\u0447\u043a\u043e\u0432 \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0437\u0432\u0443\u043a\u0430)<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">DEF_GAIN<\/span> <span style=\"color: #000000;\">80<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u043e\u0433 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u043f\u0440\u0438 GAIN_CONTROL \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f)<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #00979c;\">FHT_N<\/span> <span style=\"color: #000000;\">256<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0448\u0438\u0440\u0438\u043d\u0430 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u04452<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #00979c;\">LOG_OUT<\/span> <span style=\"color: #000000;\">1<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">PIK_DELAY<\/span> <span style=\"color: #000000;\">200<\/span> \u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0432\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0438\u043a\u0430<\/span>\r\n\r\n<span style=\"color: #434f54;\">\/\/ \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0437\u0430\u0431\u0438\u0442\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0442\u043e\u043d\u043e\u0432, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043b\u0430\u0432\u043d\u043e, \u043f\u043e\u0442\u043e\u043c \u043a\u0440\u0443\u0447\u0435<\/span>\r\n<span style=\"color: #00979c;\">byte<\/span> <span style=\"color: #000000;\">posOffset<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">16<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">{<\/span><span style=\"color: #000000;\">1<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">2<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">3<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">4<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">5<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">6<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">7<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">8<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">9<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">10<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">11<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">12<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">13<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">14<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">15<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">16<\/span><span style=\"color: #000000;\">}<\/span><span style=\"color: #000000;\">;<\/span><span style=\"color: #434f54;\">\/\/1500 Hz<\/span>\r\n<span style=\"color: #434f54;\">\/\/byte posOffset[16] = {1, 2, 3, 4, 6, 8, 10, 13, 16, 20, 25, 30, 35, 40, 45, 50};\/\/4000 Hz<\/span>\r\n\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">cbi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">sfr<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #d35400;\">bit<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">_SFR_BYTE<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">sfr<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">&amp;=<\/span> <span style=\"color: #434f54;\">~<\/span><span style=\"color: #000000;\">_BV<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">bit<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">sbi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">sfr<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #d35400;\">bit<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">_SFR_BYTE<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">sfr<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">|=<\/span> <span style=\"color: #000000;\">_BV<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">bit<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span>\r\n\r\n<span style=\"color: #5e6d03;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><b><span style=\"color: #d35400;\">Wire<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span>\r\n<span style=\"color: #5e6d03;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><span style=\"color: #000000;\">U8glib<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span> \u00a0<span style=\"color: #434f54;\">\/\/ <\/span><u><span style=\"color: #434f54;\">http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/04\/U8glib.zip<\/span><\/u>\r\n<span style=\"color: #5e6d03;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><b><span style=\"color: #d35400;\">FHT<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span> \u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ <\/span><u><span style=\"color: #434f54;\">http:\/\/forum.rcl-radio.ru\/misc.php?action=pan_download&amp;item=297&amp;download=1<\/span><\/u>\r\n\r\n<span style=\"color: #000000;\">U8GLIB_SH1106_128X64<\/span> <span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">U8G_I2C_OPT_DEV_0<\/span><span style=\"color: #434f54;\">|<\/span><span style=\"color: #000000;\">U8G_I2C_OPT_FAST<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0<span style=\"color: #434f54;\">\/\/ Dev 0, Fast I2C \/ TWI<\/span>\r\n \r\n \u00a0<span style=\"color: #00979c;\">byte<\/span> <span style=\"color: #000000;\">gain<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">DEF_GAIN<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\r\n \u00a0<span style=\"color: #00979c;\">unsigned<\/span> <span style=\"color: #00979c;\">long<\/span> <span style=\"color: #000000;\">gainTimer<\/span><span style=\"color: #434f54;\">,<\/span><span style=\"color: #000000;\">times<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">times0<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #00979c;\">byte<\/span> <span style=\"color: #000000;\">maxValue<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">maxValue_f<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #00979c;\">float<\/span> <span style=\"color: #000000;\">k<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0.1<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #00979c;\">byte<\/span> <span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">16<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #434f54;\">,<\/span><span style=\"color: #000000;\">urr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">16<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #00979c;\">unsigned<\/span> <span style=\"color: #00979c;\">long<\/span> <span style=\"color: #000000;\">peakTimings<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">16<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">;<\/span> \r\n\r\n\r\n \u00a0\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #5e6d03;\">setup<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0<span style=\"color: #d35400;\">delay<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">100<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \r\n \u00a0<span style=\"color: #000000;\">sbi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ADCSRA<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">ADPS2<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">cbi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ADCSRA<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">ADPS1<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">sbi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ADCSRA<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">ADPS0<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">9600<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Wire<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span><b><span style=\"color: #d35400;\">Wire<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">setClock<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">800000L<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n <span style=\"color: #434f54;\">\/\/ myOLED.setRot180();<\/span>\r\n \u00a0<span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">setFont<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">u8g_font_profont11r<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #d35400;\">analogReadResolution<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">10<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span><span style=\"color: #434f54;\">\/\/ \u0410\u0426\u041f 10 \u0411\u0418\u0422 \u00a0<\/span>\r\n \u00a0<span style=\"color: #d35400;\">analogReference<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">INTERNAL1V024<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #d35400;\">pinMode<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">A0<\/span><span style=\"color: #434f54;\">,<\/span><span style=\"color: #00979c;\">INPUT<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ INPUT AUDIO<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n \r\n\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #5e6d03;\">loop<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0<span style=\"color: #000000;\">analyzeAudio<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \r\n\r\n \u00a0<span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">firstPage<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0<span style=\"color: #5e6d03;\">do<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">for<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">pos<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">pos<\/span> <span style=\"color: #434f54;\">&lt;<\/span> <span style=\"color: #000000;\">128<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">pos<\/span> <span style=\"color: #434f54;\">+=<\/span> <span style=\"color: #000000;\">8<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">posLevel<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">map<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">fht_log_out<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">posOffset<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span> <span style=\"color: #434f54;\">\/<\/span> <span style=\"color: #000000;\">8<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">LOW_PASS<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">gain<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">60<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">posLevel<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">constrain<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">posLevel<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">60<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u0438\u0433\u043d\u0430\u043b\u0430<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">urr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">posLevel<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0418\u043d\u0434\u0435\u043a\u0441 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043f\u043e\u043b\u043e\u0441\u044b (\u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u0438\u043a\u043e\u0432)<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">index<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">pos<\/span> <span style=\"color: #434f54;\">\/<\/span> <span style=\"color: #000000;\">8<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u041e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u043f\u0438\u043a\u0438<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">urr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">&lt;<\/span> <span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">index<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0415\u0441\u043b\u0438 \u043f\u0438\u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0434\u0430\u0432\u043d\u043e, \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u043f\u043b\u0430\u0432\u043d\u043e\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">millis<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">-<\/span> <span style=\"color: #000000;\">peakTimings<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">index<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">&gt;<\/span> <span style=\"color: #000000;\">PIK_DELAY<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">index<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">-=<\/span> <span style=\"color: #000000;\">1<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ \u041f\u043b\u0430\u0432\u043d\u043e\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u043f\u0438\u043a\u043e\u0432<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span> <span style=\"color: #5e6d03;\">else<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0438\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">index<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">posLevel<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">peakTimings<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">index<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">millis<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ \u0417\u0430\u043f\u043e\u043c\u043d\u0438\u043c \u0432\u0440\u0435\u043c\u044f \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u0438\u043a\u0430<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span>\r\n\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0416\u0434\u0435\u043c \u0434\u043b\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #d35400;\">delayMicroseconds<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">200<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0420\u0438\u0441\u0443\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u0438\u0433\u043d\u0430\u043b\u0430<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">for<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">v_pos<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">v_pos<\/span> <span style=\"color: #434f54;\">&lt;<\/span> <span style=\"color: #000000;\">urr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">+<\/span> <span style=\"color: #000000;\">4<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">v_pos<\/span> <span style=\"color: #434f54;\">+=<\/span> <span style=\"color: #000000;\">4<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">drawBox<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">61<\/span> <span style=\"color: #434f54;\">-<\/span> <span style=\"color: #000000;\">v_pos<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">6<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">2<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span>\r\n\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0415\u0441\u043b\u0438 \u043f\u0438\u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0440\u0430\u043d\u044c\u0448\u0435, \u0440\u0438\u0441\u0443\u0435\u043c \u043f\u0438\u043a\u043e\u0432\u044b\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">index<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">&gt;<\/span> <span style=\"color: #000000;\">urr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">drawBox<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">61<\/span> <span style=\"color: #434f54;\">-<\/span> <span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">index<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">6<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">2<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ \u041f\u0438\u043a\u043e\u0432\u044b\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span> <span style=\"color: #5e6d03;\">while<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">nextPage<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0<span style=\"color: #434f54;\">\/\/ \u0410\u0432\u0442\u043e\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044f<\/span>\r\n \u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">AUTO_GAIN<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">maxValue_f<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">maxValue<\/span> <span style=\"color: #434f54;\">*<\/span> <span style=\"color: #000000;\">k<\/span> <span style=\"color: #434f54;\">+<\/span> <span style=\"color: #000000;\">maxValue_f<\/span> <span style=\"color: #434f54;\">*<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">1<\/span> <span style=\"color: #434f54;\">-<\/span> <span style=\"color: #000000;\">k<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">millis<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">-<\/span> <span style=\"color: #000000;\">gainTimer<\/span> <span style=\"color: #434f54;\">&gt;<\/span> <span style=\"color: #000000;\">1500<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">maxValue_f<\/span> <span style=\"color: #434f54;\">&gt;<\/span> <span style=\"color: #000000;\">VOL_THR<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">gain<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">maxValue_f<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">else<\/span> <span style=\"color: #000000;\">gain<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">100<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">gainTimer<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">millis<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n \r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #000000;\">analyzeAudio<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0<span style=\"color: #5e6d03;\">for<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">i<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0<\/span> <span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">i<\/span> <span style=\"color: #434f54;\">&lt;<\/span> <span style=\"color: #00979c;\">FHT_N<\/span> <span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">i<\/span><span style=\"color: #434f54;\">++<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">sample<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">analogRead<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">A0<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">fht_input<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">i<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">sample<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ put real data into bins<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0<span style=\"color: #d35400;\">fht_window<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0<span style=\"color: #434f54;\">\/\/ window the data for better frequency response<\/span>\r\n \u00a0<span style=\"color: #d35400;\">fht_reorder<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ reorder the data before doing the fht<\/span>\r\n \u00a0<span style=\"color: #d35400;\">fht_run<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ process the data in the fht<\/span>\r\n \u00a0<span style=\"color: #d35400;\">fht_mag_log<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ take the output of the fht<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n\r\n<\/pre>\n<p><span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">PIK_DELAY<\/span> <span style=\"color: #000000;\">200<\/span> \u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0432\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0438\u043a\u0430<\/span><\/p>\n<p>\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0441\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u044f \u043f\u043b\u0430\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0438\u043a\u043e\u0432\u044b\u0445 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432.<\/p>\n<p>\u0414\u043b\u044f Arduino Nano<\/p>\n<pre><span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">AUTO_GAIN<\/span> <span style=\"color: #000000;\">1<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0430\u0432\u0442\u043e\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u043e \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u0438 (\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f)<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">VOL_THR<\/span> <span style=\"color: #000000;\">25<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043f\u043e\u0440\u043e\u0433 \u0442\u0438\u0448\u0438\u043d\u044b (\u043d\u0438\u0436\u0435 \u043d\u0435\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442)<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">LOW_PASS<\/span> <span style=\"color: #000000;\">20<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043d\u0438\u0436\u043d\u0438\u0439 \u043f\u043e\u0440\u043e\u0433 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0448\u0443\u043c\u043e\u0432 (\u043d\u0435\u0442 \u0441\u043a\u0430\u0447\u043a\u043e\u0432 \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0437\u0432\u0443\u043a\u0430)<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">DEF_GAIN<\/span> <span style=\"color: #000000;\">80<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u043e\u0433 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u043f\u0440\u0438 GAIN_CONTROL \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f)<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #00979c;\">FHT_N<\/span> <span style=\"color: #000000;\">256<\/span> \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0448\u0438\u0440\u0438\u043d\u0430 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u04452<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #00979c;\">LOG_OUT<\/span> <span style=\"color: #000000;\">1<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">PIK_DELAY<\/span> <span style=\"color: #000000;\">400<\/span> \u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0432\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0438\u043a\u0430<\/span>\r\n\r\n<span style=\"color: #434f54;\">\/\/ \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0437\u0430\u0431\u0438\u0442\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0442\u043e\u043d\u043e\u0432, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043b\u0430\u0432\u043d\u043e, \u043f\u043e\u0442\u043e\u043c \u043a\u0440\u0443\u0447\u0435<\/span>\r\n<span style=\"color: #00979c;\">byte<\/span> <span style=\"color: #000000;\">posOffset<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">16<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">{<\/span><span style=\"color: #000000;\">1<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">2<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">3<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">4<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">5<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">6<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">7<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">8<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">9<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">10<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">11<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">12<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">13<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">14<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">15<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">16<\/span><span style=\"color: #000000;\">}<\/span><span style=\"color: #000000;\">;<\/span><span style=\"color: #434f54;\">\/\/1500 Hz<\/span>\r\n<span style=\"color: #434f54;\">\/\/byte posOffset[16] = {1, 2, 3, 4, 6, 8, 10, 13, 16, 20, 25, 30, 35, 40, 45, 50};\/\/4000 Hz<\/span>\r\n\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">cbi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">sfr<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #d35400;\">bit<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">_SFR_BYTE<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">sfr<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">&amp;=<\/span> <span style=\"color: #434f54;\">~<\/span><span style=\"color: #000000;\">_BV<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">bit<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span>\r\n<span style=\"color: #5e6d03;\">#define<\/span> <span style=\"color: #000000;\">sbi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">sfr<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #d35400;\">bit<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">_SFR_BYTE<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">sfr<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">|=<\/span> <span style=\"color: #000000;\">_BV<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">bit<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span>\r\n\r\n<span style=\"color: #5e6d03;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><b><span style=\"color: #d35400;\">Wire<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span>\r\n<span style=\"color: #5e6d03;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><span style=\"color: #000000;\">U8glib<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span> \u00a0<span style=\"color: #434f54;\">\/\/ <\/span><u><span style=\"color: #434f54;\">http:\/\/rcl-radio.ru\/wp-content\/uploads\/2023\/04\/U8glib.zip<\/span><\/u>\r\n<span style=\"color: #5e6d03;\">#include<\/span> <span style=\"color: #434f54;\">&lt;<\/span><b><span style=\"color: #d35400;\">FHT<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #000000;\">h<\/span><span style=\"color: #434f54;\">&gt;<\/span> \u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ <\/span><u><span style=\"color: #434f54;\">http:\/\/forum.rcl-radio.ru\/misc.php?action=pan_download&amp;item=297&amp;download=1<\/span><\/u>\r\n\r\n<span style=\"color: #000000;\">U8GLIB_SH1106_128X64<\/span> <span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">U8G_I2C_OPT_DEV_0<\/span><span style=\"color: #434f54;\">|<\/span><span style=\"color: #000000;\">U8G_I2C_OPT_FAST<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0<span style=\"color: #434f54;\">\/\/ Dev 0, Fast I2C \/ TWI<\/span>\r\n \r\n \u00a0<span style=\"color: #00979c;\">byte<\/span> <span style=\"color: #000000;\">gain<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">DEF_GAIN<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\r\n \u00a0<span style=\"color: #00979c;\">unsigned<\/span> <span style=\"color: #00979c;\">long<\/span> <span style=\"color: #000000;\">gainTimer<\/span><span style=\"color: #434f54;\">,<\/span><span style=\"color: #000000;\">times<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">times0<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #00979c;\">byte<\/span> <span style=\"color: #000000;\">maxValue<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">maxValue_f<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #00979c;\">float<\/span> <span style=\"color: #000000;\">k<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0.1<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #00979c;\">byte<\/span> <span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">16<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #434f54;\">,<\/span><span style=\"color: #000000;\">urr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">16<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #00979c;\">unsigned<\/span> <span style=\"color: #00979c;\">long<\/span> <span style=\"color: #000000;\">peakTimings<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">16<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">;<\/span> \r\n\r\n\r\n \u00a0\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #5e6d03;\">setup<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0<span style=\"color: #d35400;\">delay<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">100<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \r\n \u00a0<span style=\"color: #000000;\">sbi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ADCSRA<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">ADPS2<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">cbi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ADCSRA<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">ADPS1<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">sbi<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ADCSRA<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">ADPS0<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Serial<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">9600<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<b><span style=\"color: #d35400;\">Wire<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span><b><span style=\"color: #d35400;\">Wire<\/span><\/b><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">setClock<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">800000L<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">begin<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n <span style=\"color: #434f54;\">\/\/ myOLED.setRot180();<\/span>\r\n \u00a0<span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">setFont<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">u8g_font_profont11r<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0<span style=\"color: #d35400;\">analogReference<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">INTERNAL<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u043e\u043f\u043e\u0440\u043d\u043e\u0435 \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0435 1.1 \u0412<\/span>\r\n \u00a0<span style=\"color: #d35400;\">pinMode<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">A0<\/span><span style=\"color: #434f54;\">,<\/span><span style=\"color: #00979c;\">INPUT<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ INPUT AUDIO<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n \r\n\r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #5e6d03;\">loop<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0<span style=\"color: #000000;\">analyzeAudio<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \r\n\r\n \u00a0<span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">firstPage<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\r\n \u00a0<span style=\"color: #5e6d03;\">do<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">for<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">pos<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">pos<\/span> <span style=\"color: #434f54;\">&lt;<\/span> <span style=\"color: #000000;\">128<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">pos<\/span> <span style=\"color: #434f54;\">+=<\/span> <span style=\"color: #000000;\">8<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">posLevel<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">map<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">fht_log_out<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">posOffset<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span> <span style=\"color: #434f54;\">\/<\/span> <span style=\"color: #000000;\">8<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">LOW_PASS<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">gain<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">60<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">posLevel<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">constrain<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">posLevel<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">60<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u0438\u0433\u043d\u0430\u043b\u0430<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">urr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">posLevel<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0418\u043d\u0434\u0435\u043a\u0441 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043f\u043e\u043b\u043e\u0441\u044b (\u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043f\u0438\u043a\u043e\u0432)<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">index<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">pos<\/span> <span style=\"color: #434f54;\">\/<\/span> <span style=\"color: #000000;\">8<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u041e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u043f\u0438\u043a\u0438<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">urr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">&lt;<\/span> <span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">index<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0415\u0441\u043b\u0438 \u043f\u0438\u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0434\u0430\u0432\u043d\u043e, \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u043f\u043b\u0430\u0432\u043d\u043e\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">millis<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">-<\/span> <span style=\"color: #000000;\">peakTimings<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">index<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">&gt;<\/span> <span style=\"color: #000000;\">PIK_DELAY<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">index<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">-=<\/span> <span style=\"color: #000000;\">1<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ \u041f\u043b\u0430\u0432\u043d\u043e\u0435 \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0435 \u043f\u0438\u043a\u043e\u0432<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span> <span style=\"color: #5e6d03;\">else<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0438\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438 \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">index<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">posLevel<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">peakTimings<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">index<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">millis<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ \u0417\u0430\u043f\u043e\u043c\u043d\u0438\u043c \u0432\u0440\u0435\u043c\u044f \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u0438\u043a\u0430<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span>\r\n\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0416\u0434\u0435\u043c \u0434\u043b\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #d35400;\">delayMicroseconds<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">200<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0420\u0438\u0441\u0443\u0435\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0441\u0438\u0433\u043d\u0430\u043b\u0430<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">for<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">v_pos<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">v_pos<\/span> <span style=\"color: #434f54;\">&lt;<\/span> <span style=\"color: #000000;\">urr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">+<\/span> <span style=\"color: #000000;\">4<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">v_pos<\/span> <span style=\"color: #434f54;\">+=<\/span> <span style=\"color: #000000;\">4<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">drawBox<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">61<\/span> <span style=\"color: #434f54;\">-<\/span> <span style=\"color: #000000;\">v_pos<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">6<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">2<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span>\r\n\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ \u0415\u0441\u043b\u0438 \u043f\u0438\u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0440\u0430\u043d\u044c\u0448\u0435, \u0440\u0438\u0441\u0443\u0435\u043c \u043f\u0438\u043a\u043e\u0432\u044b\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">index<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">&gt;<\/span> <span style=\"color: #000000;\">urr<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">drawBox<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">pos<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">61<\/span> <span style=\"color: #434f54;\">-<\/span> <span style=\"color: #000000;\">ur<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">index<\/span><span style=\"color: #000000;\">]<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">6<\/span><span style=\"color: #434f54;\">,<\/span> <span style=\"color: #000000;\">2<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ \u041f\u0438\u043a\u043e\u0432\u044b\u0439 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span> <span style=\"color: #5e6d03;\">while<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">myOLED<\/span><span style=\"color: #434f54;\">.<\/span><span style=\"color: #d35400;\">nextPage<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n\r\n \u00a0<span style=\"color: #434f54;\">\/\/ \u0410\u0432\u0442\u043e\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u0441\u0438\u043b\u0435\u043d\u0438\u044f<\/span>\r\n \u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">AUTO_GAIN<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">maxValue_f<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">maxValue<\/span> <span style=\"color: #434f54;\">*<\/span> <span style=\"color: #000000;\">k<\/span> <span style=\"color: #434f54;\">+<\/span> <span style=\"color: #000000;\">maxValue_f<\/span> <span style=\"color: #434f54;\">*<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">1<\/span> <span style=\"color: #434f54;\">-<\/span> <span style=\"color: #000000;\">k<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #d35400;\">millis<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #434f54;\">-<\/span> <span style=\"color: #000000;\">gainTimer<\/span> <span style=\"color: #434f54;\">&gt;<\/span> <span style=\"color: #000000;\">1500<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">if<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">maxValue_f<\/span> <span style=\"color: #434f54;\">&gt;<\/span> <span style=\"color: #000000;\">VOL_THR<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">gain<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">maxValue_f<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #5e6d03;\">else<\/span> <span style=\"color: #000000;\">gain<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">100<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #000000;\">gainTimer<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">millis<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n \r\n<span style=\"color: #00979c;\">void<\/span> <span style=\"color: #000000;\">analyzeAudio<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0<span style=\"color: #5e6d03;\">for<\/span> <span style=\"color: #000000;\">(<\/span><span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">i<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">0<\/span> <span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">i<\/span> <span style=\"color: #434f54;\">&lt;<\/span> <span style=\"color: #00979c;\">FHT_N<\/span> <span style=\"color: #000000;\">;<\/span> <span style=\"color: #000000;\">i<\/span><span style=\"color: #434f54;\">++<\/span><span style=\"color: #000000;\">)<\/span> <span style=\"color: #000000;\">{<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #00979c;\">int<\/span> <span style=\"color: #000000;\">sample<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #d35400;\">analogRead<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">A0<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span>\r\n \u00a0\u00a0\u00a0<span style=\"color: #000000;\">fht_input<\/span><span style=\"color: #000000;\">[<\/span><span style=\"color: #000000;\">i<\/span><span style=\"color: #000000;\">]<\/span> <span style=\"color: #434f54;\">=<\/span> <span style=\"color: #000000;\">sample<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ put real data into bins<\/span>\r\n \u00a0<span style=\"color: #000000;\">}<\/span>\r\n \u00a0<span style=\"color: #d35400;\">fht_window<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0<span style=\"color: #434f54;\">\/\/ window the data for better frequency response<\/span>\r\n \u00a0<span style=\"color: #d35400;\">fht_reorder<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ reorder the data before doing the fht<\/span>\r\n \u00a0<span style=\"color: #d35400;\">fht_run<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> \u00a0\u00a0\u00a0\u00a0<span style=\"color: #434f54;\">\/\/ process the data in the fht<\/span>\r\n \u00a0<span style=\"color: #d35400;\">fht_mag_log<\/span><span style=\"color: #000000;\">(<\/span><span style=\"color: #000000;\">)<\/span><span style=\"color: #000000;\">;<\/span> <span style=\"color: #434f54;\">\/\/ take the output of the fht<\/span>\r\n<span style=\"color: #000000;\">}<\/span>\r\n\r\n<\/pre>\n<p>\u0424\u043e\u0440\u0443\u043c &#8212; <a href=\"http:\/\/forum.rcl-radio.ru\/viewtopic.php?pid=12128#p12128\">http:\/\/forum.rcl-radio.ru\/viewtopic.php?pid=12128#p12128<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SH1106 OLED 1.3&#8243; &#8212; OLED-\u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u043c SH1106. \u042d\u0442\u043e\u0442 \u0434\u0438\u0441\u043f\u043b\u0435\u0439 \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 128&#215;64 \u043f\u0438\u043a\u0441\u0435\u043b\u0435\u0439 \u0438 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u043c\u043e\u043d\u043e\u0445\u0440\u043e\u043c\u043d\u0443\u044e \u0433\u0440\u0430\u0444\u0438\u043a\u0443 \u0438 \u0442\u0435\u043a\u0441\u0442. \u041e\u043d \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0433\u0434\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u043c \u0438 \u044d\u043d\u0435\u0440\u0433\u043e\u0441\u0431\u0435\u0440\u0435\u0433\u0430\u044e\u0449\u0438\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c. \u0414\u0438\u0441\u043f\u043b\u0435\u0439 \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043a \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c \u0438 \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u043c, \u0442\u0430\u043a\u0438\u043c \u043a\u0430\u043a Arduino \u0438\u043b\u0438 Raspberry Pi, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 SPI \u0438\u043b\u0438 I2C. \u041d\u0430 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":130530,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[239,5],"tags":[],"class_list":["post-130528","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-5"],"views":6441,"_links":{"self":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/130528","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=130528"}],"version-history":[{"count":7,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/130528\/revisions"}],"predecessor-version":[{"id":134483,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/posts\/130528\/revisions\/134483"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=\/wp\/v2\/media\/130530"}],"wp:attachment":[{"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=130528"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=130528"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/rcl-radio.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=130528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}