{"id":105,"date":"2016-02-01T14:36:17","date_gmt":"2016-02-01T11:36:17","guid":{"rendered":"http:\/\/rst10h.tmweb.ru\/domains\/magelab.ru\/?p=105"},"modified":"2020-08-23T18:38:44","modified_gmt":"2020-08-23T15:38:44","slug":"podsvetka-aqua-rpi","status":"publish","type":"post","link":"https:\/\/ancient.tsaryk.dev\/?p=105&lang=ru","title":{"rendered":"\u041f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0430 \u0434\u043b\u044f \u0430\u043a\u0432\u0430\u0440\u0438\u0443\u043c\u0430 \u0441 \u0440\u0430\u0434\u0438\u043e\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0447\u0435\u0440\u0435\u0437 Raspberry pi (\u0427\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f)"},"content":{"rendered":"\n<p>\u041c\u0435\u0441\u044f\u0446 \u043d\u0430\u0437\u0430\u0434 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u0430\u043a\u0432\u0430\u0440\u0438\u0443\u043c. \u0418 \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0438\u0434\u0435\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u0432\u0435\u0442\u0430.&nbsp;\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0438 \u043d\u0430 \u043a\u0440\u044b\u0448\u043a\u0443 \u0431\u044b\u043b\u0438 \u043f\u0440\u0438\u043a\u043b\u0435\u0435\u043d\u044b \u043f\u043e\u043b\u043e\u0441\u043a\u0438 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043d\u044b\u0445 \u043b\u0435\u043d\u0442. \u0412\u043b\u0430\u0433\u043e\u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043a\u0430\u043a \u0435\u0441\u0442\u044c, \u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0431\u044b\u043b\u0438 \u0437\u0430\u043b\u0438\u0442\u044b \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c \u0441\u0438\u043b\u0438\u043a\u043e\u043d\u043e\u043c \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u0432\u043b\u0430\u0433\u0438. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0441 \u0445\u043e\u0440\u043e\u0448\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043e\u043c: \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u0432\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f, \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f. \u041c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0438\u043b\u0438 \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c 3 \u0431\u043b\u043e\u043a\u0430 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043d\u044b\u0445 \u043b\u0435\u043d\u0442 \u0440\u0430\u0437\u043d\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c \u0438\/\u0438\u043b\u0438 \u0441 \u0440\u0430\u0437\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u0432, \u0435\u0441\u0442\u044c \u0440\u0443\u0447\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043b\u044e\u0431\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (\u0442\u0435\u043b\u0435\u0444\u043e\u043d, \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440, \u0442\u0435\u043b\u0435\u0432\u0438\u0437\u043e\u0440 \u0438 \u0442 \u0434)<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><\/pre>\n\n\n\n<!--more-->\n\n\n\n<p>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>raspberry pi \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0439 raspbian &#8211; 1 \u0448\u0442\u0443\u043a\u0430<\/li><li>\u0440\u0430\u0434\u0438\u043e\u043c\u043e\u0434\u0443\u043b\u0438 NRF24L01+ &#8211; 2 \u0448\u0442\u0443\u043a\u0438<\/li><li>\u041f\u043e\u043b\u0435\u0432\u044b\u0435 \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440\u044b (\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b p-\u043a\u0430\u043d\u0430\u043b\u044c\u043d\u044b\u0435 IRF9540) &#8211; 3 \u0448\u0442\u0443\u043a\u0438<\/li><li>\u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440\u044b &#8211; 3 \u0448\u0442\u0443\u043a\u0438<\/li><li>ATMega328p \u0438\u043b\u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 &#8211; 1 \u0448\u0442\u0443\u043a\u0430<\/li><li>\u0421\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043d\u044b\u0435 \u043b\u0435\u043d\u0442\u044b &#8211; \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0430\u043a\u0432\u0430\u0440\u0438\u0443\u043c\u0430. \u041d\u0430 80\u043b \u0430\u043a\u0432\u0430\u0440\u0438\u0443\u043c \u043f\u043e\u0448\u043b\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 4\u043c.<\/li><li>\u0444\u043e\u043b\u044c\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442\u043e\u043b\u0438\u0442 &#8211; \u043f\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u044e.<\/li><li>\u0411\u043b\u043e\u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044f +12v \u0434\u043b\u044f \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043d\u044b\u0445 \u043b\u0435\u043d\u0442.<\/li><li>\u0411\u043b\u043e\u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044f +3.3v \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430<\/li><li>\u0430.. \u0447\u0443\u0442\u044c \u043d\u0435 \u0437\u0430\u0431\u044b\u043b \u043a\u0432\u0430\u0440\u0446 16\u041c\u0433\u0446 \u0438 &nbsp;\u043f\u0430\u0440\u0430 \u043a\u0435\u0440\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043a\u043e\u043d\u0434\u0435\u043d\u0441\u0430\u0442\u043e\u0440\u043e\u0432.. \u041c\u043e\u0436\u043d\u043e \u0438 \u0431\u0435\u0437 \u043a\u0432\u0430\u0440\u0446\u0430, \u043d\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u044f\u0442\u044c, \u0438 \u0447\u0443\u0442\u043e\u043a \u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443.<\/li><\/ul>\n\n\n\n<p>\u0412\u043e\u043e\u0431\u0449\u0435 \u043c\u043d\u0435 \u043f\u043b\u0430\u0442\u0443 \u043b\u0435\u043d\u044c \u0431\u044b\u043b\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0430\u044f\u043b \u043d\u0430\u0432\u0435\u0441\u043d\u044b\u043c, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0443\u0436\u0430\u0441\u043d\u043e..<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/d0b2d0b5d180d181d0b8d18f.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" src=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/d0b2d0b5d180d181d0b8d18f-1024x575.jpg\" alt=\"\" class=\"wp-image-108\" srcset=\"https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/d0b2d0b5d180d181d0b8d18f-1024x575.jpg 1024w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/d0b2d0b5d180d181d0b8d18f-300x169.jpg 300w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/d0b2d0b5d180d181d0b8d18f-768x431.jpg 768w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/d0b2d0b5d180d181d0b8d18f-1536x863.jpg 1536w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/d0b2d0b5d180d181d0b8d18f-2048x1150.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>\u0411\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u0442\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443<\/figcaption><\/figure><\/div>\n\n\n\n<p>\u041d\u043e \u0442\u0443\u0442 \u043e\u0447\u0435\u043d\u044c \u043a\u0441\u0442\u0430\u0442\u0438 \u043f\u0440\u0438\u0448\u043b\u0430 \u043f\u0430\u0447\u043a\u0430 \u043c\u0430\u043a\u0435\u0442\u043e\u043a \u0438\u0437 \u043a\u0438\u0442\u0430\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0443\u0442 \u0436\u0435 \u0432\u0441\u0451 \u043f\u0435\u0440\u0435\u043d\u0435\u0441 \u043d\u0430 \u043c\u0430\u043a\u0435\u0442\u043a\u0443 (\u0420\u0430\u0437\u044a\u0451\u043c\u0447\u0438\u043a \u0441\u043f\u0440\u0430\u0432\u0430 &#8211; \u0434\u043b\u044f \u0432\u043d\u0443\u0442\u0440\u0438\u0441\u0445\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f):<\/p>\n\n\n\n<div class=\"wp-block-image is-style-default\"><figure class=\"aligncenter size-large\"><a href=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/d0b2d0b0d180d0b8d0b0d0bdd182-d0bdd0b0-d0bcd0b0d0bad0b5d182d0bad0b5.jpg\" rel=\"attachment wp-att-109\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" src=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/d0b2d0b0d180d0b8d0b0d0bdd182-d0bdd0b0-d0bcd0b0d0bad0b5d182d0bad0b5-1024x575.jpg\" alt=\"\" class=\"wp-image-109\" srcset=\"https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/d0b2d0b0d180d0b8d0b0d0bdd182-d0bdd0b0-d0bcd0b0d0bad0b5d182d0bad0b5-1024x575.jpg 1024w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/d0b2d0b0d180d0b8d0b0d0bdd182-d0bdd0b0-d0bcd0b0d0bad0b5d182d0bad0b5-300x169.jpg 300w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/d0b2d0b0d180d0b8d0b0d0bdd182-d0bdd0b0-d0bcd0b0d0bad0b5d182d0bad0b5-768x431.jpg 768w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/d0b2d0b0d180d0b8d0b0d0bdd182-d0bdd0b0-d0bcd0b0d0bad0b5d182d0bad0b5-1536x863.jpg 1536w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/d0b2d0b0d180d0b8d0b0d0bdd182-d0bdd0b0-d0bcd0b0d0bad0b5d182d0bad0b5-2048x1150.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>\u041f\u043e\u043a\u0430 \u0431\u0435\u0437 \u043f\u043e\u043b\u0435\u0432\u044b\u0445 \u0442\u0440\u0430\u043d\u0437\u0438\u0441\u0442\u043e\u0440\u043e\u0432, \u043d\u043e \u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/figcaption><\/figure><\/div>\n\n\n\n<p>. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u043b\u043e\u043a\u0430 \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0431\u044b\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0441\u0442\u0430\u0440\u044b\u0439 \u0411\u041f \u043e\u0442 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430,&nbsp;\u0442.\u043a. \u0442\u0430\u043c&nbsp;\u0438 +3.3V, \u0438 +12v \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442. \u0411\u043b\u043e\u043a \u043f\u0438\u0442\u0430\u043d\u0438\u044f 350W.. \u0415\u0433\u043e \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0438 \u0445\u0432\u0430\u0442\u0438\u0442 \u0447\u0442\u043e\u0431\u044b \u0432\u0435\u0441\u044c \u0434\u043e\u043c \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043d\u044b\u043c\u0438 \u043b\u0435\u043d\u0442\u0430\u043c\u0438 \u043e\u0431\u043c\u043e\u0442\u0430\u0442\u044c, \u043d\u0430\u043c \u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u043a\u0432\u0430\u0440\u0438\u0443\u043c \u043e\u0441\u0432\u0435\u0449\u0430\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0445\u043b\u0430\u0436\u0434\u0435\u043d\u0438\u0435 \u0411\u041f \u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0441\u0441\u0438\u0432\u043d\u044b\u043c, \u043a\u0443\u043b\u0435\u0440 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file.png\" rel=\"attachment wp-att-110\"><img loading=\"lazy\" decoding=\"async\" width=\"932\" height=\"650\" src=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file.png\" alt=\"\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\" class=\"wp-image-110\" srcset=\"https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file.png 932w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file-300x209.png 300w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file-768x536.png 768w\" sizes=\"auto, (max-width: 932px) 100vw, 932px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>\u0412 \u0441\u0445\u0435\u043c\u0435 \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442\u0441\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0435\u0442\u044b\u0440\u044c\u043c\u044f \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043d\u044b\u043c\u0438 \u043b\u0435\u043d\u0442\u0430\u043c\u0438 \u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c&nbsp;\u0442\u043e\u043a \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0442\u044c 19A \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u044b\u0445\u043e\u0434 (\u043f\u043e \u0434\u0430\u0442\u0430\u0448\u0438\u0442\u0443 IRF9540). \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:&nbsp;\u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0443 \u043d\u0430 \u043e\u0434\u043d\u0443 \u043d\u043e\u0433\u0443 \u041c\u041a \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0438\u043b\u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u044c, \u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0435\u0449\u0451 \u0437\u0435\u043b\u0451\u043d\u0430\u044f \u0438 \u0441\u0438\u043d\u044f\u044f \u043b\u0435\u043d\u0442\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0448\u0438\u043b \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c-\u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/3.png\" rel=\"attachment wp-att-112\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"542\" src=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/3-1024x542.png\" alt=\"\" class=\"wp-image-125\" srcset=\"https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/3-1024x542.png 1024w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/3-300x159.png 300w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/3-768x407.png 768w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/3-1536x813.png 1536w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/3.png 1787w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>\u0421\u0445\u0435\u043c\u0430 \u043f\u0440\u0438\u0435\u043c\u043d\u0438\u043a\u0430<\/figcaption><\/figure><\/div>\n\n\n\n<p>\u041d\u0430 \u0441\u0445\u0435\u043c\u0435 \u043d\u0435 \u0432\u0438\u0434\u043d\u043e VCC \u0438 GND \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430. VCC \u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u043b \u043a +3.3v, GND \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a\u043e\u0440\u043f\u0443\u0441.<\/p>\n\n\n\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u0430\u044f, \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043e\u0434 &#8211; \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0440\u0430\u0434\u0438\u043e\u043c\u043e\u0434\u0443\u043b\u0435\u043c \u0438 \u0432\u044b\u0432\u043e\u0434 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438:<\/p>\n\n\n\n<p><\/p>\n\n\n<pre class=\"brush: cpp; light: false; title: ; toolbar: true; notranslate\" title=\"\">\n\/\/ \/* &amp; &amp; &amp;\n * WirelessLed.c\n *\n * Created: 25.12.2015 16:51:18\n *  Author: rst10h\n *\/ \n#define F_CPU 16000000UL\n#define BAUD 9600 \n#include &lt;avr\/io.h&gt;\n#include &lt;stdio.h&gt;\n#include &lt;stdlib.h&gt;\n#include &lt;string.h&gt;\n#include &lt;avr\/interrupt.h&gt;\n#include &lt;util\/delay.h&gt;\n#include &lt;util\/setbaud.h&gt;\n\/*\n#include &quot;nrf24l01\/nrf24l01.h&quot;\n#include &quot;nrf24l01\/nrf24l01registers.h&quot;\n#include &quot;spi\/spi.h&quot;\n*\/\n#include &quot;nrf24l01p.h&quot;\n\n#define SPI_DDR DDRB\n#define SPI_PORT PORTB\n#define SPI_MISO PB4\n#define SPI_MOSI PB3\n#define SPI_SCK PB5\n#define SPI_SS PB2\n\n\/\/CE and CSN port definitions\n#define RADIO_PORT PORTB\n#define RADIO_DDR DDRB\n#define RADIO_PIN PINB\n\n#define RADIO_CSN 1\n#define RADIO_CE 0\n\/\/#define RADIO_IRQ 3\nint bingo = 0;\nint action = 0;\nextern int uart_putchar(char c, FILE *stream); \/\/\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u0431\u0430\u0439\u0442\u043e\u0432\u043e\u0433\u043e \u0432\u044b\u0432\u043e\u0434\u0430\nstatic FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL,_FDEV_SETUP_WRITE);\n\nuint8_t bufferout[32];\nuint8_t bufferin[32];\n\/\/ \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\nvoid spi_init() {\n\tSPI_DDR |= (1 &lt;&lt; SPI_MOSI) | (1 &lt;&lt;  SPI_SCK) | (1 &lt;&lt; SPI_SS);\n\tSPCR = (1 &lt;&lt; SPE) | (1 &lt;&lt; MSTR); \/\/ \u0440\u0435\u0436\u0438\u043c 0, \u043c\u0430\u0441\u0442\u0435\u0440, \u0447\u0430\u0441\u0442\u043e\u0442\u0430 1\/4 \u043e\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0426\u041f\n}\n\n\/\/ \u041f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 1 \u0431\u0430\u0439\u0442 \u043f\u043e SPI, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\nuint8_t spi_send_recv(uint8_t data) {\n\tSPDR = data;\n\twhile (!(SPSR &amp; (1 &lt;&lt; SPIF)));\n\treturn SPDR;\n}\n\nint uart_putchar(char c, FILE *stream){\n\tif (c == &#039;n&#039;)\n\tuart_putchar(&#039;r&#039;, stream);\n\tloop_until_bit_is_set(UCSR0A, UDRE0);\n\tUDR0 = c;\n\treturn 0;\n}\nvoid uart_putcc(char c)\n{\n\twhile (!(UCSR0A &amp; (1 &lt;&lt; UDRE0) ) ) {\n\t\tcontinue;\n\t}\n\tUDR0 = c;\n}\n\nvoid uart_putss(const char *s )\n{\n\twhile (*s)\n\tuart_putcc(*s++);\n\n}\n\/\/#define SPI_DDR DDRB\n\n\/\/#define SPI_SS 2\n\/\/#define SPI_MOSI 3\n\/\/#define SPI_SCK 5\n\n\/\/ \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c) \u043d\u0430 \u043b\u0438\u043d\u0438\u0438 CE\ninline void radio_assert_ce() {\n\tRADIO_PORT |= (1 &lt;&lt; RADIO_CE); \/\/ \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043d\u0430 \u043b\u0438\u043d\u0438\u0438 CE\n}\n\n\/\/ \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u043d\u0438\u0437\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c) \u043d\u0430 \u043b\u0438\u043d\u0438\u0438 CE\ninline void radio_deassert_ce() {\n\tRADIO_PORT &amp;= ~(1 &lt;&lt; RADIO_CE); \/\/ \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043d\u0430 \u043b\u0438\u043d\u0438\u0438 CE\n}\n\n\/\/ \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 csn \u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0438\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430\u0445, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u044a\u044f\u0432\u0438\u0442\u044c static\n\n\/\/ \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u043d\u0438\u0437\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c) \u043d\u0430 \u043b\u0438\u043d\u0438\u0438 CSN\ninline static void csn_assert() {\n\tRADIO_PORT &amp;= ~(1 &lt;&lt; RADIO_CSN); \/\/ \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043d\u0430 \u043b\u0438\u043d\u0438\u0438 CSN\n}\n\n\/\/ \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (\u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c) \u043d\u0430 \u043b\u0438\u043d\u0438\u0438 CSN\ninline static void csn_deassert() {\n\tRADIO_PORT |= (1 &lt;&lt; RADIO_CSN); \/\/ \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043d\u0430 \u043b\u0438\u043d\u0438\u0438 CSN\n}\n\nvoid radioinit() {\n\tRADIO_DDR |= (1 &lt;&lt; RADIO_CSN) | (1 &lt;&lt; RADIO_CE); \/\/ \u041d\u043e\u0436\u043a\u0438 CSN \u0438 CE \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\n\t  csn_deassert();\n\t  radio_deassert_ce();\n\t  spi_init();\n}\n\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 cmd, \u0438 \u0447\u0438\u0442\u0430\u0435\u0442 count \u0431\u0430\u0439\u0442 \u043e\u0442\u0432\u0435\u0442\u0430, \u043f\u043e\u043c\u0435\u0449\u0430\u044f \u0438\u0445 \u0432 \u0431\u0443\u0444\u0435\u0440 buf, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\nuint8_t radio_read_buf(uint8_t cmd, uint8_t * buf, uint8_t count) {\n\tcsn_assert();\n\tuint8_t status = spi_send_recv(cmd);\n\twhile (count--) {\n\t\t*(buf++) = spi_send_recv(0xFF);\n\t}\n\tcsn_deassert();\n\treturn status;\n}\n\n\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 cmd, \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 count \u0431\u0430\u0439\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438\u0437 \u0431\u0443\u0444\u0435\u0440\u0430 buf, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\nuint8_t radio_write_buf(uint8_t cmd, uint8_t * buf, uint8_t count) {\n\tcsn_assert();\n\tuint8_t status = spi_send_recv(cmd);\n\twhile (count--) {\n\t\tspi_send_recv(*(buf++));\n\t}\n\tcsn_deassert();\n\treturn status;\n}\n\n\/\/ \u0427\u0438\u0442\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0431\u0430\u0439\u0442\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 reg (\u043e\u0442 0 \u0434\u043e 31) \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0433\u043e\nuint8_t radio_readreg(uint8_t reg) {\n\tcsn_assert();\n\tspi_send_recv((reg &amp; 31) | R_REGISTER);\n\tuint8_t answ = spi_send_recv(0xFF);\n\tcsn_deassert();\n\treturn answ;\n}\n\n\/\/ \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0431\u0430\u0439\u0442\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 reg (\u043e\u0442 0 \u0434\u043e 31), \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\nuint8_t radio_writereg(uint8_t reg, uint8_t val) {\n\tcsn_assert();\n\tuint8_t status = spi_send_recv((reg &amp; 31) | W_REGISTER);\n\tspi_send_recv(val);\n\tcsn_deassert();\n\treturn status;\n}\n\n\/\/ \u0427\u0438\u0442\u0430\u0435\u0442 count \u0431\u0430\u0439\u0442 \u043c\u043d\u043e\u0433\u043e\u0431\u0430\u0439\u0442\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 reg (\u043e\u0442 0 \u0434\u043e 31) \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0435\u0433\u043e \u0432 \u0431\u0443\u0444\u0435\u0440 buf,\n\/\/ \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\nuint8_t radio_readreg_buf(uint8_t reg, uint8_t * buf, uint8_t count) {\n\treturn radio_read_buf((reg &amp; 31) | R_REGISTER, buf, count);\n}\n\n\/\/ \u0417\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 count \u0431\u0430\u0439\u0442 \u0438\u0437 \u0431\u0443\u0444\u0435\u0440\u0430 buf \u0432 \u043c\u043d\u043e\u0433\u043e\u0431\u0430\u0439\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 reg (\u043e\u0442 0 \u0434\u043e 31), \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\nuint8_t radio_writereg_buf(uint8_t reg, uint8_t * buf, uint8_t count) {\n\treturn radio_write_buf((reg &amp; 31) | W_REGISTER, buf, count);\n}\n\n\/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 FIFO \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a\u0430\nuint8_t radio_read_rx_payload_width() {\n\tcsn_assert();\n\tspi_send_recv(R_RX_PL_WID);\n\tuint8_t answ = spi_send_recv(0xFF);\n\tcsn_deassert();\n\treturn answ;\n}\n\n\/\/ \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0443. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\nuint8_t radio_cmd(uint8_t cmd) {\n\tcsn_assert();\n\tuint8_t status = spi_send_recv(cmd);\n\tcsn_deassert();\n\treturn status;\n}\n\n\/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 1, \u0435\u0441\u043b\u0438 \u043d\u0430 \u043b\u0438\u043d\u0438\u0438 IRQ \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 (\u043d\u0438\u0437\u043a\u0438\u0439) \u0443\u0440\u043e\u0432\u0435\u043d\u044c.\nuint8_t radio_is_interrupt() {\n\t\/\/return (RADIO_PIN &amp; RADIO_IRQ) ? 0 : 1;\n\treturn (radio_cmd(NOP) &amp; ((1 &lt;&lt; RX_DR) | (1 &lt;&lt; TX_DS) | (1 &lt;&lt; MAX_RT))) ? 1 : 0;\n}\n\/\/ \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 1, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0441\u043f\u0435\u0445\u0430, 0 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0448\u0438\u0431\u043a\u0438\nuint8_t radio_start() {\nuint8_t self_addr[] = {0xE1, 0xF0, 0xF0, 0xF0, 0xF0}; \/\/ \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441\n  uint8_t remote_addr[] = {0xD2, 0xF0, 0xF0, 0xF0, 0xF0}; \/\/ \u0410\u0434\u0440\u0435\u0441 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b\n  uint8_t chan = 76; \/\/ \u041d\u043e\u043c\u0435\u0440 \u0440\u0430\u0434\u0438\u043e-\u043a\u0430\u043d\u0430\u043b\u0430 (\u0432 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0435 0 - 125)\n\n  radio_deassert_ce();\n  for(uint8_t cnt = 100;;) {\n    radio_writereg(CONFIG, (1 &lt;&lt; EN_CRC) | (1 &lt;&lt; CRCO) | (1 &lt;&lt; PRIM_RX)); \/\/ \u0412\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u044f\n    if (radio_readreg(CONFIG) == ((1 &lt;&lt; EN_CRC) | (1 &lt;&lt; CRCO) | (1 &lt;&lt; PRIM_RX))) \n      break;\n    \/\/ \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043d\u043e \u043d\u0435 \u0442\u043e \u0447\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e, \u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u043b\u0438\u0431\u043e \u0440\u0430\u0434\u0438\u043e-\u0447\u0438\u043f \u0435\u0449\u0451 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u043b\u0438\u0431\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.\n    if (!cnt--)\n      return 0; \/\/ \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 100 \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u0442\u043e \u0432\u044b\u0445\u043e\u0434\u0438\u043c \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439\n    _delay_ms(1);\n  }\n\n  radio_writereg(EN_AA, 0x3F); \/\/ \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0430\u0432\u0442\u043e\u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u043a\u0430\u043d\u0430\u043b\u0430\u043c\n  radio_writereg(EN_RXADDR, (1 &lt;&lt; ERX_P0) | (1 &lt;&lt; ERX_P1)); \/\/ \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 0 \u0438 1\n  radio_writereg(SETUP_AW, SETUP_AW_5BYTES_ADDRESS); \/\/ \u0432\u044b\u0431\u043e\u0440 \u0434\u043b\u0438\u043d\u044b \u0430\u0434\u0440\u0435\u0441\u0430 5 \u0431\u0430\u0439\u0442\n  radio_writereg(SETUP_RETR, SETUP_RETR_DELAY_4000MKS | SETUP_RETR_UP_TO_15_RETRANSMIT); \n  radio_writereg(RF_CH, chan); \/\/ \u0412\u044b\u0431\u043e\u0440 \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u043e\u0433\u043e \u043a\u0430\u043d\u0430\u043b\u0430\n  radio_writereg(RF_SETUP,7); \/\/ \u0432\u044b\u0431\u043e\u0440 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 1 \u041c\u0431\u0438\u0442\/\u0441 \u0438 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0438 0dBm\n  \n  radio_writereg_buf(RX_ADDR_P0, &amp;remote_addr[0], 5); \/\/ \u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b 0 \n  radio_writereg_buf(TX_ADDR, &amp;remote_addr[0], 5);\n\n  radio_writereg_buf(RX_ADDR_P1, &amp;self_addr[0], 5);\n  \n  radio_writereg(RX_PW_P0, 32);\n  radio_writereg(RX_PW_P1, 32); \n  radio_writereg(DYNPD, (0 &lt;&lt; DPL_P0) | (0 &lt;&lt; DPL_P1)); \/\/ \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b \u0434\u043b\u044f \u043a\u0430\u043d\u0430\u043b\u043e\u0432 0 \u0438 1\n  radio_writereg(FEATURE, 0x00); \/\/ \u0417\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u0434\u043b\u0438\u043d\u044b \u043f\u0430\u043a\u0435\u0442\u0430 \u0434\u0430\u043d\u043d\u044b\u0445\n\n  radio_writereg(CONFIG, (1 &lt;&lt; EN_CRC) | (1 &lt;&lt; CRCO) | (1 &lt;&lt; PWR_UP) | (1 &lt;&lt; PRIM_RX)); \/\/ \u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u044f\n  return (radio_readreg(CONFIG) == ((1 &lt;&lt; EN_CRC) | (1 &lt;&lt; CRCO) | (1 &lt;&lt; PWR_UP) | (1 &lt;&lt; PRIM_RX))) ? 1 : 0;\n}\n\/\/ \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u043e \u0447\u0438\u0441\u043b\u043e \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438, \u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0442\u0430\u043a \u0438 \u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e.\nvoid on_send_error() {\n\t\/\/ TODO \u0437\u0434\u0435\u0441\u044c \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438\n}\n\n\/\/ \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 \u043f\u043e \u043a\u0430\u043d\u0430\u043b\u0443 1 \u043e\u0442 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b.\n\/\/ buf - \u0431\u0443\u0444\u0435\u0440 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, size - \u0434\u043b\u0438\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043e\u0442 1 \u0434\u043e 32)\n\n\nuint8_t send_data(uint8_t * buf, uint8_t size) {\n\tradio_deassert_ce(); \/\/ \u0415\u0441\u043b\u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u0438\u0451\u043c\u0430, \u0442\u043e \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0435\u0433\u043e\n\tuint8_t conf = radio_readreg(CONFIG);\n\tif (!(conf &amp; (1 &lt;&lt; PWR_UP))) \/\/ \u0415\u0441\u043b\u0438 \u043f\u0438\u0442\u0430\u043d\u0438\u0435 \u043f\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043e, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439\n\treturn 0;\n\tuint8_t status = radio_writereg(CONFIG, conf &amp; ~(1 &lt;&lt; PRIM_RX)); \/\/ \u0421\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c \u0431\u0438\u0442 PRIM_RX\n\tif (status &amp; (1 &lt;&lt; TX_FULL_STATUS))  \/\/ \u0415\u0441\u043b\u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0430, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439\n\treturn 0;\n\tradio_write_buf(W_TX_PAYLOAD, buf, size); \/\/ \u0417\u0430\u043f\u0438\u0441\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443\n\tradio_assert_ce(); \/\/ \u0418\u043c\u043f\u0443\u043b\u044c\u0441 \u043d\u0430 \u043b\u0438\u043d\u0438\u0438 CE \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u043d\u0430\u0447\u0430\u043b\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438\n\t_delay_us(15); \/\/ \u041d\u0443\u0436\u043d\u043e \u043c\u0438\u043d\u0438\u043c\u0443\u043c 10\u043c\u043a\u0441, \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u0441 \u0437\u0430\u043f\u0430\u0441\u043e\u043c\n\tradio_deassert_ce();\n\treturn 1;\n}\nvoid on_packet(uint8_t * buf, uint8_t size) {\n\t\/\/ TODO \u0437\u0434\u0435\u0441\u044c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u0438\u043d\u044f\u0442\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430\n        \/\/ \u041f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u0430 \u043c\u043e\u0440\u0433\u043d\u0451\u043c \u0434\u0438\u043e\u0434\u043e\u043c \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043c \u043e\u0442\u0432\u0435\u0442.\n\tif (buf[0]==&#039;p&#039;) {\n\t\tbufferout[0] = &#039;^&#039;;\n\t}\n\tif (buf[0]==&#039;s&#039;) {\n\t\t\/\/char b = buf[1]0b00001111;\n\t\tPORTC &amp;= 0b11110000;\n\t\tPORTC |= 0b00001111 &amp; buf[1];\n\t\tbufferout[0] = &#039;!&#039;;\n\t\t\n\t}\n\tbufferout[1] = PINC &amp; 0b00001111;\n\tPORTC |= 0b00100000;\n\t_delay_ms(300);\n\tPORTC &amp;= 0b11011111;\n\t\/\/printf(&quot;\u043e\u0442\u043f\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c.. rn&quot;);\n\tsend_data(bufferout,32);\n\n\t\/\/ \u0415\u0441\u043b\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0430\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u043e\u0442\u0432\u0435\u0442\u0430, \u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 ,\n\t\/\/ \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0447\u0438\u043f \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043e \u043f\u0440\u0438\u0451\u043c\u0435\n\t\/\/ \u0447\u0442\u043e\u0431\u044b \u0441 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043f\u0440\u0438\u0451\u043c\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 \u0434\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c PTX \u043f\u0440\u043e\u0448\u043b\u043e:\n\t\/\/ 130\u043c\u043a\u0441 + ((\u0434\u043b\u0438\u043d\u0430_\u0430\u0434\u0440\u0435\u0441\u0430 + \u0434\u043b\u0438\u043d\u0430_CRC + \u0434\u043b\u0438\u043d\u0430_\u0434\u0430\u043d\u043d\u044b\u0445_\u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f) * 8 + 17) \/ \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c_\u043e\u0431\u043c\u0435\u043d\u0430\n\t\/\/ \u041f\u0440\u0438 \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u041c\u041a 8 \u043c\u0413\u0446 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 100\u043c\u043a\u0441\n}\nvoid check_radio() {\n\tif (!radio_is_interrupt()) \/\/ \u0415\u0441\u043b\u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u0442, \u0442\u043e \u043d\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u0441\u044f\n\treturn;\n\tuint8_t status = radio_cmd(NOP);\n\tradio_writereg(STATUS, status); \/\/ \u041f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043e\u0431\u0440\u0430\u0442\u043d\u043e, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0441\u0431\u0440\u043e\u0441\u0438\u0432 \u0431\u0438\u0442\u044b \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0439\n\t\n\tif (status &amp; ((1 &lt;&lt; TX_DS) | (1 &lt;&lt; MAX_RT))) { \/\/ \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0443\u0441\u043f\u0435\u0445\u043e\u043c, \u0438\u043b\u0438 \u043d\u0435\u0442,\n\tif (status &amp; (1 &lt;&lt; MAX_RT)) { \/\/ \u0415\u0441\u043b\u0438 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043f\u043e\u043f\u044b\u0442\u043e\u043a\n\tradio_cmd(FLUSH_TX); \/\/ \u0423\u0434\u0430\u043b\u0438\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u0430\u043a\u0435\u0442 \u0438\u0437 \u043e\u0447\u0435\u0440\u0435\u0434\u0438\n\ton_send_error(); \/\/ \u0412\u044b\u0437\u043e\u0432\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\n}\nif (!(radio_readreg(TX_EMPTY) &amp; (1 &lt;&lt; TX_EMPTY))) { \/\/ \u0415\u0441\u043b\u0438 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0435\u0441\u0442\u044c \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\nradio_assert_ce(); \/\/ \u0418\u043c\u043f\u0443\u043b\u044c\u0441 \u043d\u0430 \u043b\u0438\u043d\u0438\u0438 CE \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u043d\u0430\u0447\u0430\u043b\u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438\n_delay_us(15); \/\/ \u041d\u0443\u0436\u043d\u043e \u043c\u0438\u043d\u0438\u043c\u0443\u043c 10\u043c\u043a\u0441, \u0432\u043e\u0437\u044c\u043c\u0451\u043c \u0441 \u0437\u0430\u043f\u0430\u0441\u043e\u043c\nradio_deassert_ce();\n    } else {\n      uint8_t conf = radio_readreg(CONFIG);\n      radio_writereg(CONFIG, conf | (1 &lt;&lt; PRIM_RX)); \/\/ \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0431\u0438\u0442 PRIM_RX: \u043f\u0440\u0438\u0451\u043c\n      radio_assert_ce(); \/\/ \u0412\u044b\u0441\u043e\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0430 \u043b\u0438\u043d\u0438\u0438 CE \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 \u0440\u0430\u0434\u0438\u043e-\u0447\u0438\u043f \u0432 \u0440\u0435\u0436\u0438\u043c \u043f\u0440\u0438\u0451\u043c\u0430\n    }\n  }\n  uint8_t protect = 4; \/\/ \u0412 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 FIFO \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0431\u043e\u043b\u0435\u0435 3 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u0415\u0441\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0435, \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0442\u0430\u043a\n  while (((status &amp; (7 &lt;&lt; RX_P_NO)) != (7 &lt;&lt; RX_P_NO)) &amp;&amp; protect--) { \/\/ \u041f\u043e\u043a\u0430 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0439 \u043f\u0430\u043a\u0435\u0442\n    uint8_t l = radio_read_rx_payload_width(); \/\/ \u0423\u0437\u043d\u0430\u0451\u043c \u0434\u043b\u0438\u043d\u0443 \u043f\u0430\u043a\u0435\u0442\u0430\n    if (l &gt; 32) { \/\/ \u041e\u0448\u0438\u0431\u043a\u0430. \u0422\u0430\u043a\u043e\u0439 \u043f\u0430\u043a\u0435\u0442 \u043d\u0443\u0436\u043d\u043e \u0441\u0431\u0440\u043e\u0441\u0438\u0442\u044c\n      radio_cmd(FLUSH_RX); \n    } else { \n\t  \/\/printf(&quot;\u0415\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435..rn&quot;);\n      uint8_t buf[32]; \/\/ \u0431\u0443\u0444\u0435\u0440 \u0434\u043b\u044f \u043f\u0440\u0438\u043d\u044f\u0442\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430\n      radio_read_buf(R_RX_PAYLOAD, &amp;buf[0], l); \/\/ \u043d\u0430\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0430\u043a\u0435\u0442\n      if ((status &amp; (7 &lt;&lt; RX_P_NO)) == (1 &lt;&lt; RX_P_NO)) { \/\/ \u0435\u0441\u043b\u0438 datapipe 1 \n        on_packet(&amp;buf[0], l); \/\/ \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430\n      }\n    }         \n    status = radio_cmd(NOP);\n  }\n}\n\/*\nvoid print_observe_tx(uint8_t value)\n{\n\tprintf(&quot;OBSERVE_TX=%02x: POLS_CNT=%x ARC_CNT=%xrn&quot;,\n\tvalue,\n\t(value &gt;&gt; NRF24L01_REG_PLOS_CNT) &amp; 0b1111,\n\t(value &gt;&gt; NRF24L01_REG_ARC_CNT) &amp; 0b1111\n\t);\n}*\/\nvoid print_byte_register(const char* name, uint8_t reg, uint8_t qty)\n{\n\tprintf(&quot;%st =&quot;, name);\n\twhile (qty--)\n\tprintf(&quot; 0x%02x&quot;,radio_readreg(reg++));\n\tprintf(&quot;n&quot;);\n}\nvoid print_address_register(const char* name, uint8_t reg, uint8_t qty)\n{\n\n\tprintf(&quot;%st =&quot;,name);\n\twhile (qty--)\n\t{\n\t\tuint8_t buffer[5];\n\t\tradio_readreg_buf(reg++,buffer,sizeof buffer);\n\t\tprintf(&quot; 0x&quot;);\n\t\tuint8_t* bufptr = buffer + sizeof buffer;\n\t\twhile( --bufptr &gt;= buffer )\n\t\tprintf(&quot;%02x&quot;,*bufptr);\n\t}\n\n\tprintf(&quot;n&quot;);\n}\n\tvoid printinfo() {\n\t\t\/\/char buff[100];\n\t\t\n\t\tprintf(&quot;inforn&quot;);\n\t\t\/\/\u0412\u044b\u0432\u043e\u0434 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e \u0440\u0430\u0434\u0438\u043e\u043c\u043e\u0434\u0443\u043b\u044e\n\t\tprint_byte_register(&quot;STATUS&quot;,STATUS,1);\n\t\tprint_byte_register(&quot;CONFIG&quot;,CONFIG,1);\n\t\tprint_address_register(&quot;RX_ADDR_P0-1&quot;,RX_ADDR_P0,2);\n\t\tprint_byte_register(&quot;RX_ADDR_P2-5&quot;,RX_ADDR_P2,4);\n\t\tprint_address_register(&quot;TX_ADDRt&quot;,TX_ADDR,1);\n\t\tprint_byte_register(&quot;RX_PW_P0-6&quot;,RX_PW_P0,6);\n\t\tprint_byte_register(&quot;EN_AAt&quot;,EN_AA,1);\n\t\tprint_byte_register(&quot;EN_RXADDR&quot;,EN_RXADDR,1);\n\t\tprint_byte_register(&quot;RF_CHt&quot;,RF_CH,1);\n\t\tprint_byte_register(&quot;RF_SETUP&quot;,RF_SETUP,1);\n\t\tprint_byte_register(&quot;CONFIGt&quot;,CONFIG,1);\n\t\tprint_byte_register(&quot;DYNPD\/FEATURE&quot;,DYNPD,2);\n\t\t\n\t}\n\/\/\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f USART\nvoid SerilalIni(){\n\n\t\/\/ USART initialization\n\t\/\/ Communication Parameters: 8 Data, 1 Stop, No Parity\n\t\/\/ USART Receiver: On\n\t\/\/ USART Transmitter: On\n\t\/\/ USART Mode: Asynchronous\n\t\/\/ USART Baud rate: 9600\n\n\tUCSR0A=0x00;\n\tUCSR0B=(1&lt;&lt;RXEN0) | (1&lt;&lt;TXEN0);\n\tUCSR0C=0x06;\n\n\tUBRR0H = UBRRH_VALUE;\n\tUBRR0L = UBRRL_VALUE+1;\n\n\tstdout = &amp;mystdout;\/\/\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u0442\u043e\u043a \u0432\u044b\u0432\u043e\u0434\u0430 \u043d\u0430 \u043d\u0430\u0448 \u0431\u0443\u0444\u0435\u0440\n}\n\n\/\/\u0417\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u0442\u0430\nint main(void) {\n        \/\/4 \u043f\u0435\u0440\u0432\u044b\u0445 \u0431\u0438\u0442\u0430 \u0438 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u043d\u0430 \u0432\u044b\u0445\u043e\u0434\n\tDDRC = 0b00101111;\n\tuint8_t pipe = 0;\n\tuint8_t i;\n\tSerilalIni();\/\/\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0432\u044b\u0432\u043e\u0434\n\t_delay_ms(1000);\n\tprintf(&quot;\u0417\u0430\u043f\u0443\u0441\u043a!!!...n&quot;);\n        \/\/\u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u043c\u0438\u0433\u043d\u0451\u043c \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0432\u0438\u0434\u0435\u043b\u0438 \u0447\u0442\u043e \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c\n\t_delay_ms(1000);\n\tPORTC = 1&lt;&lt;PORTC5;\n\t_delay_ms(1000);\n\tPORTC = 0&lt;&lt;PORTC5;\t\n\t_delay_ms(1000);\n\tPORTC = 1&lt;&lt;PORTC5;\n\t_delay_ms(1000);\n        \/\/\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043a\u043b\u044e\u0447\u0438\u043c \u0432\u0441\u044e \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0443, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439, \u0435\u0441\u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b \u0438 \u043d\u0430\u0434\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e.\n\tPORTC = 0&lt;&lt;PORTC5 | 0b00001111;\n\t_delay_ms(1000);\n\t\/\/init interrupt\n\t\/\/sei();\n\t\/\/setup buffer\n        \/\/\u043f\u043e\u0447\u0438\u0441\u0442\u0438\u043c \u0431\u0443\u0444\u0435\u0440\u044b \u043f\u0440\u0438\u0435\u043c\u0430 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438\n\tfor(i=0; i&lt;sizeof(bufferout); i++)\n\tbufferout[i] = &#039; &#039;;\n\tbufferout[31] = 0;\n\tfor(i=0; i&lt;sizeof(bufferin); i++)\n\tbufferin[i] = 0;\n\t\/\/nrf24l01_printinfo();\n\tprintf(&quot;\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f....n&quot;);\n        \/\/\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0440\u0430\u0434\u0438\u043e\u043c\u043e\u0434\u0443\u043b\u044c\n\tradioinit();\n\t  while (!radio_start()) {\n\t\t  _delay_ms(1000);\n\t  }\n\t  printinfo();\n\t  printf(&quot;\u0432\u0441\u0451 \u043e\u043a, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0446\u0438\u043a\u043b....n&quot;);\n\t  \/\/ \u041f\u0435\u0440\u0435\u0434 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0447\u0438\u043f\u0430 \u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u043c CE \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u0432\u0440\u0435\u043c\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0435 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u043e\u0441\u0446\u0438\u043b\u043b\u044f\u0442\u043e\u0440\u0430\n\t  \/\/ \u0414\u043b\u044f \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0445 \u0440\u0435\u0437\u043e\u043d\u0430\u0442\u043e\u0440\u043e\u0432 \u0441 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0439 \u0438\u043d\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 30\u043c\u0413\u043d \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e 1.5 \u043c\u0441\n\t  _delay_ms(2);\n\t  \n\t  radio_assert_ce();\n          \/\/\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0446\u0438\u043a\u043b\n\t  for(;;) {\n\t\t  check_radio();\n\t\t  _delay_ms(2);\n\t\t  \/\/ TODO \u0437\u0434\u0435\u0441\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043e\u0434 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b\t\t  \n\t  }\n}\n<\/pre>\n\n\n<p>\u0410\u0440\u0445\u0438\u0432 \u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u0434\u043b\u044f Atmel Studio \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0437\u0434\u0435\u0441\u044c: <a href=\"http:\/\/rst10h.tmweb.ru\/domains\/magelab.ru\/images\/Files\/WirelessLed.zip\">\u0410\u0440\u0445\u0438\u0432 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438<\/a><\/p>\n\n\n\n<p>\u041f\u0440\u043e\u0448\u0438\u0432\u043a\u0430 \u0442\u0430\u043c \u0436\u0435, \u0432 \u043f\u0430\u043f\u043a\u0435 Release<\/p>\n\n\n\n<p>\u041a\u043b\u0438\u0435\u043d\u0442 \u0436\u0434\u0435\u0442 \u043f\u0430\u043a\u0435\u0442\u0430 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 F0F0F0F0E1, \u0434\u043b\u0438\u043d\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 32 \u0431\u0430\u0439\u0442\u0430, \u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0430. \u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u0431\u0430\u0439\u0442 &#8220;p&#8221;, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0442\u0432\u0435\u0442\u0430 \u0431\u0430\u0439\u0442 &#8220;^&#8221;, \u0432\u0442\u043e\u0440\u044b\u043c \u0431\u0430\u0439\u0442\u043e\u043c \u0438\u0434\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u043e\u0440\u0442\u0430 \u0421. \u0415\u0441\u043b\u0438 \u0436\u0435 \u043f\u0435\u0440\u0432\u044b\u0439 \u0431\u0430\u0439\u0442 \u0431\u0443\u0434\u0435\u0442 &#8220;s&#8221;, \u0442\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0430\u0439\u0442\u0430 \u0437\u0430\u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0432 \u043f\u043e\u0440\u0442 \u0421 (\u0432\u0435\u0440\u043d\u0435\u0435&nbsp; \u043f\u0435\u0440\u0432\u044b\u0435 4 \u0431\u0438\u0442\u0430), \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u0439\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0442 \u0432 \u0432\u0438\u0434\u0435: \u0411\u0430\u0439\u0442(1) &#8211; \u0441\u0438\u043c\u0432\u043e\u043b &#8220;!&#8221;, \u0432\u0442\u043e\u0440\u043e\u0439 \u0431\u0430\u0439\u0442 &#8211; \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u043e\u0440\u0442\u0430 \u0421. \u041e\u0442\u0432\u0435\u0442 \u0443\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0430\u0434\u0440\u0435\u0441:F0F0F0F0D2. \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0443 \u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a\u0430 \u0438 \u0443 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430\u044f:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><a href=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file-1-1.png\" rel=\"attachment wp-att-114\"><img loading=\"lazy\" decoding=\"async\" width=\"1881\" height=\"966\" src=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file-1-1.png\" alt=\"\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\" class=\"wp-image-114\" srcset=\"https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file-1-1.png 1881w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file-1-1-300x154.png 300w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file-1-1-1024x526.png 1024w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file-1-1-768x394.png 768w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file-1-1-1536x789.png 1536w\" sizes=\"auto, (max-width: 1881px) 100vw, 1881px\" \/><\/a><figcaption>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0440\u0430\u0434\u0438\u043e\u043c\u043e\u0434\u0443\u043b\u044f \u043d\u0430 Raspberry pi<\/figcaption><\/figure><\/div>\n\n\n\n<p>\u0422\u0430\u043a\u0443\u044e \u0436\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432\u044b\u0434\u0430\u0435\u0442 atmega \u043d\u0430 \u043f\u0438\u043d \u0422\u0425 \u0441 \u0431\u0438\u0442\u0440\u0435\u0439\u0442\u043e\u043c 9600 (\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438, \u043d\u043e \u0440\u0435\u0448\u0438\u043b \u043d\u0435 \u0443\u0434\u0430\u043b\u044f\u0442\u044c, \u0442.\u043a. \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442).<\/p>\n\n\n\n<p>\u041f\u0440\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 raspberry pi \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u043e\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0447\u0430\u0441\u0442\u0438.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file-2.png\" rel=\"attachment wp-att-115\"><img loading=\"lazy\" decoding=\"async\" width=\"1025\" height=\"1025\" src=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file-2.png\" alt=\"\" class=\"wp-image-115\" srcset=\"https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file-2.png 1025w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file-2-300x300.png 300w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file-2-150x150.png 150w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/unnamed-file-2-768x768.png 768w\" sizes=\"auto, (max-width: 1025px) 100vw, 1025px\" \/><\/a><figcaption>\u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043a\u043e\u0440\u043e\u0431\u043e\u0447\u043a\u0435<\/figcaption><\/figure><\/div>\n\n\n\n<p>\u041a\u043e\u0440\u043e\u0431\u043e\u0447\u043a\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u0430, \u0430 \u0432\u043e\u0442 \u0438 \u043e\u043d\u0430:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_14_34_10_pro.jpg\" rel=\"attachment wp-att-147\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" src=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_14_34_10_pro-1024x575.jpg\" alt=\"\" class=\"wp-image-147\" srcset=\"https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_14_34_10_pro-1024x575.jpg 1024w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_14_34_10_pro-300x169.jpg 300w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_14_34_10_pro-768x431.jpg 768w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_14_34_10_pro-1536x863.jpg 1536w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_14_34_10_pro-2048x1150.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>\u0415\u0449\u0451 \u043f\u0430\u0440\u0430 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_10_43_58_pro.jpg\" rel=\"attachment wp-att-148\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" src=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_10_43_58_pro-1024x575.jpg\" alt=\"\" class=\"wp-image-148\" srcset=\"https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_10_43_58_pro-1024x575.jpg 1024w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_10_43_58_pro-300x169.jpg 300w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_10_43_58_pro-768x431.jpg 768w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_10_43_58_pro-1536x863.jpg 1536w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_10_43_58_pro-2048x1150.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_11_00_16_pro.jpg\" rel=\"attachment wp-att-150\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" src=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_11_00_16_pro-1024x575.jpg\" alt=\"\" class=\"wp-image-150\" srcset=\"https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_11_00_16_pro-1024x575.jpg 1024w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_11_00_16_pro-300x169.jpg 300w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_11_00_16_pro-768x431.jpg 768w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_11_00_16_pro-1536x863.jpg 1536w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_11_00_16_pro-2048x1150.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_11_01_52_pro.jpg\" rel=\"attachment wp-att-151\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" src=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_11_01_52_pro-1024x575.jpg\" alt=\"\" class=\"wp-image-151\" srcset=\"https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_11_01_52_pro-1024x575.jpg 1024w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_11_01_52_pro-300x169.jpg 300w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_11_01_52_pro-768x431.jpg 768w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_11_01_52_pro-1536x863.jpg 1536w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_11_01_52_pro-2048x1150.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_12_25_52_pro.jpg\" rel=\"attachment wp-att-152\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"575\" src=\"http:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_12_25_52_pro-1024x575.jpg\" alt=\"\" class=\"wp-image-152\" srcset=\"https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_12_25_52_pro-1024x575.jpg 1024w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_12_25_52_pro-300x169.jpg 300w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_12_25_52_pro-768x431.jpg 768w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_12_25_52_pro-1536x863.jpg 1536w, https:\/\/ancient.tsaryk.dev\/wp-content\/uploads\/2016\/02\/wp_20160208_12_25_52_pro-2048x1150.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041c\u0435\u0441\u044f\u0446 \u043d\u0430\u0437\u0430\u0434 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b \u0430\u043a\u0432\u0430\u0440\u0438\u0443\u043c. \u0418 \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0438\u0434\u0435\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u0432\u0435\u0442\u0430.&nbsp;\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0438 \u043d\u0430 \u043a\u0440\u044b\u0448\u043a\u0443 \u0431\u044b\u043b\u0438 \u043f\u0440\u0438\u043a\u043b\u0435\u0435\u043d\u044b \u043f\u043e\u043b\u043e\u0441\u043a\u0438 \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043d\u044b\u0445 \u043b\u0435\u043d\u0442. \u0412\u043b\u0430\u0433\u043e\u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043a\u0430\u043a \u0435\u0441\u0442\u044c, \u0430 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0431\u044b\u043b\u0438 \u0437\u0430\u043b\u0438\u0442\u044b \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c \u0441\u0438\u043b\u0438\u043a\u043e\u043d\u043e\u043c \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u0432\u043b\u0430\u0433\u0438. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0441 \u0445\u043e\u0440\u043e\u0448\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043e\u043c: \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u0432\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f, \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f. \u041c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":119,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,4,10,6],"tags":[],"class_list":["post-105","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-avr","category-4","category-10","category-6"],"_links":{"self":[{"href":"https:\/\/ancient.tsaryk.dev\/index.php?rest_route=\/wp\/v2\/posts\/105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ancient.tsaryk.dev\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ancient.tsaryk.dev\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ancient.tsaryk.dev\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ancient.tsaryk.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=105"}],"version-history":[{"count":7,"href":"https:\/\/ancient.tsaryk.dev\/index.php?rest_route=\/wp\/v2\/posts\/105\/revisions"}],"predecessor-version":[{"id":256,"href":"https:\/\/ancient.tsaryk.dev\/index.php?rest_route=\/wp\/v2\/posts\/105\/revisions\/256"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ancient.tsaryk.dev\/index.php?rest_route=\/wp\/v2\/media\/119"}],"wp:attachment":[{"href":"https:\/\/ancient.tsaryk.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ancient.tsaryk.dev\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ancient.tsaryk.dev\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}