{"id":265074,"date":"2015-09-07T12:57:02","date_gmt":"2015-09-07T08:57:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=265074"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=265074","title":{"rendered":"\u0414\u0435\u043b\u0430\u0435\u043c \u043c\u0435\u0442\u0430\u043b\u043b\u043e\u0438\u0441\u043a\u0430\u0442\u0435\u043b\u044c \u043d\u0430 ATtiny24A"},"content":{"rendered":"<p> \t\t\u0414\u043e\u043b\u0433\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438\u0433\u0440\u0430\u043b\u0441\u044f \u0441 Arduino-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c\u0438 \u043f\u043b\u0430\u0442\u0430\u043c\u0438, \u043d\u043e \u0432\u0441\u0451 \u0432\u0440\u0435\u043c\u044f \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u00ab\u043c\u0435\u043d\u044c\u0448\u0435, \u0434\u0435\u0448\u0435\u0432\u043b\u0435 \u0438 \u0431\u043b\u0438\u0436\u0435 \u043a \u0436\u0435\u043b\u0435\u0437\u0443!\u00bb, \u0438 \u0432\u043e\u0442 \u2014 \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u043f\u044b\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0447\u0438\u0441\u0442\u043e\u0433\u043e ATtiny. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043e\u0441\u043e\u0431\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u044b \u043c\u0435\u0442\u0430\u043b\u043b\u043e\u0438\u0441\u043a\u0430\u0442\u0435\u043b\u044f. \u042d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0442\u043e\u0433\u043e, \u043d\u0430 \u0447\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0437\u0430 47 \u0446\u0435\u043d\u0442\u043e\u0432 + \u043f\u0443\u0442\u044c \u0447\u0430\u0439\u043d\u0438\u043a\u0430 \u0432 \u044d\u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043e\u0442 Arduino \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0438\u0436\u0435.<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h4>\u0412\u044b\u0431\u043e\u0440 \u0436\u0435\u043b\u0435\u0437\u0430<\/h4>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u043d\u0435\u0434\u043e\u043b\u0433\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430, \u0432\u044b\u0431\u043e\u0440 \u043f\u0430\u043b \u043d\u0430 ATtiny24A-SSU (14-pin SOIC \u043a\u043e\u0440\u043f\u0443\u0441). \u041f\u043e\u0447\u0435\u043c\u0443? \u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0430: \u0446\u0435\u043d\u0430 + \u044f\u0434\u0440\u043e AVR. \u0414\u0430, \u044f \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u043c\u043e\u0449\u043d\u044b\u0439 STM8S103F3P6 \u0441\u0442\u043e\u0438\u0442 \u0434\u0435\u0448\u0435\u0432\u043b\u0435 (<a href=\"http:\/\/www.ebay.com\/itm\/10Pcs-SMD-3P6-STM8S103F3P6-STM-Microcontroller-TSSOP20-IC-\/221852588120\">39,5 \u0446\u0435\u043d\u0442\u043e\u0432 \u0437\u0430 \u0448\u0442\u0443\u043a\u0443<\/a> \u043f\u0440\u043e\u0442\u0438\u0432 <a href=\"http:\/\/www.ebay.com\/itm\/10pcs-ATTINY24A-SSU-SOIC14-AVR-ATTINY24A-ATTINY24-\/201414955154\">47 \u0437\u0430 ATtiny<\/a>), \u043d\u043e \u0438\u043c\u0435\u044f \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 AVR \u0432 Arduino \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u044b\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u043c\u0435\u043d\u043d\u043e AVR.<\/p>\n<p>  \u0418\u0437 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 AVR \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c ATtiny \u043a\u0430\u043a \u0441\u0430\u043c\u044b\u0435 \u0434\u0435\u0448\u0451\u0432\u044b\u0435, \u0430 \u0434\u0430\u043b\u044c\u0448\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f DIP \u043a\u043e\u0440\u043f\u0443\u0441 \u043a\u0430\u043a \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0434\u043b\u044f \u043f\u0430\u0439\u043a\u0438. \u041d\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0445\u0435\u043c\u044b \u0432 DIP \u043a\u043e\u0440\u043f\u0443\u0441\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0434\u043e\u0440\u043e\u0436\u0435 (<a href=\"http:\/\/www.ebay.com\/itm\/10PCS-MCU-IC-ATMEL-DIP-8-ATTINY13A-PU-ATTINY13A-\/271974736406\">54 \u0446\u0435\u043d\u0442\u0430 \u0437\u0430 8-\u043d\u043e\u0433\u0438\u0439 ATtiny13A<\/a>, \u0430 <a href=\"http:\/\/www.ebay.com\/itm\/ATTINY24A-PU-Atmel-Microcontroller-AVR-Tiny-DIP-14-\/151780062507\">14-\u043d\u043e\u0433\u0438\u0439 ATtiny23A \u0432 DIP \u043a\u043e\u0440\u043f\u0443\u0441\u0435 \u0442\u0430\u043a \u0432\u043e\u043e\u0431\u0449\u0435 95 \u0446\u0435\u043d\u0442\u043e\u0432<\/a>). \u0418\u0434\u0435\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ATtiny13A \u043c\u043d\u0435 \u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0438\u0437-\u0437\u0430 \u0435\u0433\u043e \u0432\u043e\u0441\u044c\u043c\u0438\u043d\u043e\u0433\u043e\u0441\u0442\u0438. 6 \u043d\u043e\u0433 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043d\u044f\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440\u043e\u043c \u0438 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u043e 2 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0435, \u0447\u0442\u043e \u043c\u0430\u043b\u043e.<\/p>\n<p>  \u0411\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043a\u0443\u043f\u0438\u0442\u044c ATtiny24A-SSU \u043f\u043e 47 \u0446\u0435\u043d\u0442\u043e\u0432 \u0438 \u0435\u0449\u0451 <a href=\"http:\/\/www.ebay.com\/itm\/10Pcs-0-65-1-27mm-to-2-54-SO-SOP-SOIC-SSOP-TSSOP-MSOP-14-to-DIP-Adapter-convert-\/281782122890\">\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043f\u043e 30 \u0446\u0435\u043d\u0442\u043e\u0432<\/a>. \u0418\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c 77 \u0446\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0442\u0438\u0432 95 \u0437\u0430 DIP \u043a\u043e\u0440\u043f\u0443\u0441 \u0438, \u043a\u0430\u043a \u0431\u043e\u043d\u0443\u0441, \u0432 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043d\u0438\u043a \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043b\u0430\u0442\u044b \u0441 \u043f\u043e\u0434\u043f\u0430\u0438\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0432\u043e\u0434\u043a\u043e\u0432 \u043f\u0440\u044f\u043c\u043e \u043a \u043d\u0435\u043c\u0443, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441 DIP \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u043c.<\/p>\n<p>  \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440 \u0432\u044b\u0431\u0440\u0430\u043d \u043f\u043e \u0442\u043e\u043c\u0443 \u0436\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 (\u0441\u0430\u043c\u044b\u0439 \u0434\u0435\u0448\u0451\u0432\u044b\u0439): <a href=\"http:\/\/www.ebay.com\/itm\/USBASP-USBISP-AVR-Programmer-Adapter-10-Pin-Cable-USB-ATMEGA8-ATMEGA128-\/400985446258\">USBasp \u0437\u0430 1,86$<\/a>.<\/p>\n<h4>\u041f\u0440\u0438\u0435\u0445\u0430\u043b\u043e!<\/h4>\n<p>  \u0421\u0440\u0430\u0437\u0443 \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u0430\u044f\u043b \u0440\u0430\u043d\u044c\u0448\u0435 SOIC \u043a\u043e\u0440\u043f\u0443\u0441\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0431\u044b\u043b \u043d\u0435\u043a\u0438\u0439 \u0441\u0442\u0440\u0430\u0445, \u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f\u2026 \u041e\u043d\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e, \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u2026 \u0432 \u043e\u0431\u0449\u0435\u043c \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0435\u043a\u0438\u0435 \u0443\u0441\u0438\u043b\u0438\u044f, \u043d\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c! \u041f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0446\u0435\u043b\u0435\u0441\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u043c \u043f\u0440\u043e\u0433\u0440\u0435\u0432\u0430\u0442\u044c \u043d\u0435 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0432\u044b\u0432\u043e\u0434\u0443, \u0430 \u0441\u0440\u0430\u0437\u0443 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438 \u2014 \u0442\u0430\u043a \u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438 \u043f\u0440\u043e\u0449\u0435.<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/files\/024\/f13\/cf1\/024f13cf1ad34000bc16a7986dad7a3e.JPG\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/78b\/4f2\/1e9\/78b4f21e967344348ffb2130de618ff5.JPG\" alt=\"image\"\/><\/a><\/p>\n<h4>\u0427\u0435\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c?<\/h4>\n<p>  ATtiny24A \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0442\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043e\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 1 \u041c\u0413\u0446. \u041d\u0443 \u0438 \u043f\u0443\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043c\u0435\u043d\u044f \u044d\u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442. \u0410 \u0432\u043e\u0442 \u0447\u0442\u043e\u0431\u044b USBasp \u0441\u0442\u0430\u043b \u0441 \u043d\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435, \u0435\u043c\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0440\u0438\u043f\u0430\u044f\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u044b\u0447\u043a\u0443 (\u043f\u0440\u043e\u0432\u043e\u0434\u043e\u043a \u043d\u0430 \u0444\u043e\u0442\u043e):<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/files\/ea9\/00a\/a1b\/ea900aa1b8d54be5970327b1b0c8c290.JPG\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/2ed\/bc9\/af0\/2edbc9af064a4278a47cd7e78c724f00.JPG\" alt=\"image\"\/><\/a><\/p>\n<p>  \u041c\u0435\u0441\u0442\u043e \u043d\u0430 \u043f\u043b\u0430\u0442\u0435 \u0431\u044b\u043b\u043e, \u0430 \u0432\u043e\u0442 \u0434\u0436\u0430\u043c\u043f\u0435\u0440 \u043a\u0438\u0442\u0430\u0439\u0446\u044b \u043f\u0440\u0438\u043f\u0430\u044f\u0442\u044c \u043d\u0435 \u0443\u0434\u043e\u0441\u0443\u0436\u0438\u043b\u0438\u0441\u044c\u2026 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430 \u043d\u0438\u0445.<\/p>\n<p>  \u0412 \u043f\u043b\u0430\u043d\u0435 \u0441\u0440\u0435\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u044b\u0431\u043e\u0440 \u043f\u0430\u043b \u043d\u0430 Atmel Studio, \u043e\u0434\u043d\u0430\u043a\u043e \u043e\u043d\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u0448 USBasp\u2026 \u043d\u043e \u044d\u0442\u043e \u0436\u0435 \u043d\u0435 \u0431\u0435\u0434\u0430! \u0415\u0449\u0451 \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0442\u043e\u0440\u0430 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0448\u0438\u0442\u044c \u0435\u0433\u043e \u0432 AVR-Doper, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c \u0441 STK500, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0448\u0435\u0439 Atmel Studio. \u0412 \u043e\u0431\u0449\u0435\u043c, \u043f\u0440\u043e\u0448\u0438\u0432\u0430\u043b \u044f \u0435\u0433\u043e \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0430\u043c\u0438, \u043d\u043e Atmel Studio \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u0430 \u0435\u0433\u043e \u0432\u0438\u0434\u0435\u0442\u044c\u2026 \u043f\u0435\u0447\u0430\u043b\u044c\u2026 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043e\u0442\u0447\u0430\u044f\u043b\u0441\u044f, \u043f\u0440\u043e\u0448\u0438\u043b \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 USBasp \u0438 \u0441\u0434\u0435\u043b\u0430\u043b \u043f\u043e <a href=\"http:\/\/www.youtube.com\/watch?v=BPxgv2PXGw8\">\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0438\u0438<\/a>. \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0448\u0438\u0442\u044c \u0441\u0432\u043e\u044e ATtiny, \u043f\u043e\u043c\u0438\u0433\u0430\u0442\u044c \u0441\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434\u043e\u043c \u0438 \u043e\u0431\u0440\u0430\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043c\u0443 \u043a\u0430\u043a \u043c\u0430\u043b\u043e flash \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 Arduino \u044d\u0442\u043e \u0437\u0430\u043d\u044f\u043b\u043e.<\/p>\n<h4>\u041c\u0435\u0442\u0430\u043b\u043b\u043e\u0438\u0441\u043a\u0430\u0442\u0435\u043b\u044c<\/h4>\n<p>  \u0415\u0449\u0451 \u043a\u043e\u0433\u0434\u0430 \u0431\u0430\u043b\u043e\u0432\u0430\u043b\u0441\u044f \u0441 Arduino, \u0434\u0435\u043b\u0430\u043b \u043c\u0435\u0442\u0430\u043b\u043b\u043e\u0438\u0441\u043a\u0430\u0442\u0435\u043b\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043d\u0430 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0441\u0440\u044b\u0432\u0430 \u0440\u0435\u0437\u043e\u043d\u0430\u043d\u0441\u0430. \u0427\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0443\u0436\u0430\u0441\u043d\u0430\u044f, \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442 \u0438 \u043b\u0435\u0433\u043a\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0430 \u043b\u044e\u0431\u043e\u043c \u041c\u041a. \u041d\u0430 \u043f\u0430\u0440\u0430\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043b\u0435\u0431\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0443\u0440 \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440 \u043f\u043e\u0434\u0430\u0451\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043d\u0430 \u0440\u0435\u0437\u043e\u043d\u0430\u043d\u0441\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0443\u0440\u0430. \u041a\u043e\u0433\u0434\u0430 \u0432 \u043c\u0430\u0433\u043d\u0438\u0442\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 \u043a\u0430\u0442\u0443\u0448\u043a\u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043c\u0435\u0442\u0430\u043b\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u0435\u0434\u043c\u0435\u0442, \u0434\u043e\u0431\u0440\u043e\u0442\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043d\u0442\u0443\u0440\u0430 \u043f\u0430\u0434\u0430\u0435\u0442, \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u043c\u0430\u044f \u0410\u0426\u041f, \u043f\u0430\u0434\u0430\u0435\u0442, \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0440\u0430\u0434\u0443\u0435\u0442 \u043d\u0430\u0441 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0438 \u0430\u043a\u0443\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438.<\/p>\n<p>  \u0423 \u043c\u0435\u0442\u0430\u043b\u043b\u043e\u0438\u0441\u043a\u0430\u0442\u0435\u043b\u044f 2 \u0440\u0435\u0436\u0438\u043c\u0430:<br \/>  1. \u041f\u043e\u0438\u0441\u043a \u0440\u0435\u0437\u043e\u043d\u0430\u043d\u0441\u0430 \u043a\u043e\u043d\u0442\u0443\u0440\u0430. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u043d \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 \u043d\u0430 \u043a\u043e\u043d\u0442\u0443\u0440 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0440\u0430\u0437\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0438 \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u0443, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0430 \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0435\u0439 (\u044d\u0442\u0443 \u043d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0443 \u0442\u043e\u0436\u0435 \u0437\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c).<br \/>  2. \u0420\u0430\u0431\u043e\u0447\u0438\u0439 \u0440\u0435\u0436\u0438\u043c. \u041d\u0430 \u043a\u043e\u043d\u0442\u0443\u0440 \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u043c \u0441\u0438\u0433\u043d\u0430\u043b \u0441 \u0440\u0435\u0437\u043e\u043d\u0430\u043d\u0441\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0443 \u0441 \u0442\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u0432 \u043f\u0435\u0440\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.<\/p>\n<p>  \u0421\u043b\u043e\u0436\u043d\u043e? \u2014 \u041d\u0435\u0442!<br \/>  \u041c\u043d\u043e\u0433\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u043e\u043b\u0436\u043d\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c? \u2014 \u041d\u0435\u0442!<br \/>  \u0410 \u043c\u043d\u043e\u0433\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c (2 KB flash + 128 \u0431\u0430\u0439\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043a\u0438)? \u2014 \u0422\u043e\u0436\u0435 \u043d\u0435\u0442!<br \/>  \u0412\u043b\u0435\u0437\u0435\u0442? \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u2014 \u0443\u0437\u043d\u0430\u0435\u043c!<\/p>\n<p>  \u0412 \u0438\u0442\u043e\u0433\u0435, \u0432\u043b\u0435\u0437\u043b\u043e.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043e\u0434 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre> #include &lt;avr\/io.h&gt; #include &lt;avr\/interrupt.h&gt; #include &quot;mySerial.cpp&quot;  MySerial ms(&PORTB, &PINB, &DDRB, 0, &PORTB, &PINB, &DDRB, 1);  volatile uint16_t maxAdc = 0; \/\/ \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u0410\u0426\u041f (\u0432 \u0440\u0435\u0437\u043e\u043d\u0430\u043d\u0441\u0435 \u043d\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u0431\u0440\u043e\u0442\u043d\u043e\u0441\u0442\u0438) volatile uint8_t dispMode = 0; \/\/ 0 - \u043f\u043e\u0438\u0441\u043a \u0440\u0435\u0437\u043e\u043d\u0430\u043d\u0441\u0430, 1 - \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0440\u0435\u0436\u0438\u043c volatile uint8_t flags0 = 0; \/\/ [0] - need setRes volatile uint16_t adcSource = 0; \/\/volatile bool needADC = false; #define ADC_SOURCE_ARRAY_SIZE_POWER 5 #define ADC_SOURCE_ARRAY_SIZE (1 &lt;&lt; ADC_SOURCE_ARRAY_SIZE_POWER) uint16_t adcSourceArray[ADC_SOURCE_ARRAY_SIZE]; uint8_t adcSourceArrayLastWrited = 0; void showVal(void);  ISR(ADC_vect){ \t\/\/adcSourceArrayLastWrited++; \tif(++adcSourceArrayLastWrited &gt;= ADC_SOURCE_ARRAY_SIZE) \t\tadcSourceArrayLastWrited = 0; \tadcSourceArray[adcSourceArrayLastWrited] = ADCL | (ADCH &lt;&lt; 8); \tuint16_t adcSourceTmp = 0; \tfor(uint8_t i = 0; i &lt; ADC_SOURCE_ARRAY_SIZE; i++) \t\tadcSourceTmp += adcSourceArray[adcSourceArrayLastWrited]; \tadcSource = (adcSourceTmp &gt;&gt; ADC_SOURCE_ARRAY_SIZE_POWER); \t\/\/adcSource = ADCL | (ADCH &lt;&lt; 8); \t\/\/needADC = false; }  volatile uint8_t pinaChanged = 0; volatile uint8_t tim0_ovf_counter = 0; \/\/uint32_t ticks = 0; volatile uint16_t ticks10ms = 0; \/\/volatile uint16_t ticks = 0; ISR(TIM0_OVF_vect) {\t\t \t\/\/ticks++; \t\/\/if(255 == tim0_ovf_counter++){ \/\/ ticks every 65.5 ms \tif(39 == (tim0_ovf_counter++)){ \/\/ ticks every 10 ms \t\ttim0_ovf_counter = 0; \t\tticks10ms++; \t\tif(pinaChanged &gt; 0) \t\t\tpinaChanged--; \t} }  uint16_t dist16(uint16_t lo, uint16_t hi){ \treturn (lo &lt;= hi) ? (hi - lo) : (0xFFFF - lo + hi); } \/*void delayTicks(uint16_t val){ \tuint16_t tim0_ovf_counter0 = tim0_ovf_counter; \twhile(dist16(tim0_ovf_counter0, tim0_ovf_counter) &lt; val) \t\tshowVal(); }*\/ void delay10ms(uint16_t val){ \tuint16_t ticks10ms0 = ticks10ms; \twhile(dist16(ticks10ms0, ticks10ms) &lt; val) \t\tshowVal(); }  void showVal(void){ \tms.sendByte(adcSource &gt;&gt; 2); \tswitch(dispMode){ \t\tcase 0: \t\t\tOCR0A = adcSource &gt;&gt; 2; \t\tbreak; \t\tcase 1: \t\t\tuint16_t maxAdcPlus = maxAdc + 2; \t\t\tuint16_t dispVal = (maxAdcPlus &gt; adcSource) ? ((maxAdcPlus - adcSource)) : 0; \t\t\tdispVal &lt;&lt;= 4; \t\t\tif(dispVal &gt; 255) \t\t\t\tdispVal = 255; \t\t\tOCR0A = dispVal; \t\tbreak; \t} }  void setRes(void) { \tdispMode = 0; \tuint16_t maxOCR = 0; \tmaxAdc = 0; \tfor(uint16_t curOCR = 35; curOCR &lt; 50; curOCR++){ \t\tOCR1A = curOCR; \t\tOCR1B = (curOCR &gt;&gt; 1); \t\t\/\/uint32_t ticks0 = ticks; \t\t\/\/uint16_t ticks0 = ticks;\t\t \t\t\/\/while(dist16(ticks0, ticks) &lt; 20) \t\t\/\/\tshowVal(); \t\tdelay10ms(30); \t\tif(adcSource &gt; maxAdc){ \t\t\tmaxAdc = adcSource; \t\t\tmaxOCR = curOCR; \t\t} \t} \tOCR1A = maxOCR; \tOCR1B = (maxOCR &gt;&gt; 1); \tdispMode = 1; }  ISR(PCINT0_vect) {\t \tif(pinaChanged &gt; 0) \t\treturn; \tpinaChanged = 5; \tif(0 == (PINA & (1 &lt;&lt; 7))) \t\tflags0 |= 1; }   int main(void) { \t\/\/ init PWM: \tDDRB |= 4;  \/\/ OC0A as output \t\/\/TIMSK0 |= 7; \/\/ \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c TIM0_OVF_vect, TIM0_COMPA_vect, TIM0_COMPB_vect \tTIMSK0 |= 1; \/\/ \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c TIM0_OVF_vect \tTCCR0B |= 1; \/\/ no prescaling. OVF \u043a\u0430\u0436\u0434\u044b\u0435 256 \u043c\u043a\u0441 (3.91 \u043a\u0413\u0446) \t\/\/TCCR0B |= 2; \/\/ clk\/8 \t\/\/TCCR0B |= 3; \/\/ clk\/64 \t\/\/TCCR0B |= 5; \/\/ clk\/1024. OVF \u043a\u0430\u0436\u0434\u044b\u0435 262 \u043c\u0441 (3.815 \u0413\u0446) \tTCCR0A |= (3 | (1 &lt;&lt; 7)); \/\/WGM0[2:0] = 3 - fawt PWM mode. bit7 - \u0434\u0451\u0440\u0433\u0430\u0442\u044c \u043d\u043e\u0433\u043e\u0439 \t\/\/OCR0A = 150; \t\/\/OCR0B = 100; \t\/\/ :init PWM \t \t\/\/ init ADC: \t\/\/ADMUX |= (1 &lt;&lt; 7); \/\/ internal 1.1V reference. Comment this to use VCC as reference \t\/\/ADMUX |= (1 &lt;&lt; 3) | 1; \/\/ MUX[5:0] = 001001. Res = ADC0 - ADC1. Gain = 20 \tADMUX |= (1 &lt;&lt; 3); \/\/ MUX[5:0] = 001000. Res = ADC0 - ADC1. Gain = 1 \tADCSRA |= ((1 &lt;&lt; 7) \/\/ enable ADC \t\t| (1 &lt;&lt; 5) \/\/ ADC Auto Trigger Enable. \u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \t\t| (1 &lt;&lt; 6) \/\/ \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c 1\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \t\t| (1 &lt;&lt; 3)   \/\/ ADC interrupt enable \t\t| (1 &lt;&lt; 2)); \/\/ prescaller = 16 (\u043d\u0430\u0434\u043e 50-200 kHz) \t\/\/ :init ADC \t \t\/\/ init 16-bit timer: \/\/ pin7 = MOSI = PA6 = OC1A \t\/\/DDRA |= (1 &lt;&lt; 6); \/\/ OC1A as output \tDDRA |= (1 &lt;&lt; 5); \/\/ OC1B as output \t\/\/TCCR1A |= (1 &lt;&lt; 6); \/\/ Toggle OC1A\/OC1B on Compare Match \tTCCR1A |= (1 &lt;&lt; 5) \/\/ Clear OC1B on Compare Match, set OC1B at BOTTOM (non-inverting mode) \t\t| (3); \/\/ set WGM10 and WGM11 \/\/ WGM1[3:0] = 1111 - Fast PWM, TOP = OCR1A.\t \/\/\tTCCR1A |= (1 &lt;&lt; 6) | (1 &lt;&lt; 7) \/\/ Set OC1A on Compare Match (Set output to high level). \/\/\t\t\t| (1 &lt;&lt; 5); \/\/ Clear OC1B on Compare Match\t(Set output to low level) \tTCCR1B |= 1 \/\/ no prescalling \t\t\t| (1 &lt;&lt; 3) | (1 &lt;&lt; 4); \/\/ set WGM12 and WGM13 \t\/\/TIMSK1 |= (1 &lt;&lt; 2) | (1 &lt;&lt; 1) | 1; \/\/ enable all interrupts \tOCR1B = 21; \tOCR1A = 42; \t\/\/for(;;){;}; \t\/\/ :init 16-bit timer \t \t\/\/ init button: \tPORTA |= (1 &lt;&lt; 7); \/\/ \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440 \u043d\u0430 6-\u0439 \u043d\u043e\u0433\u0435. PA7 = PCINT7 \tGIMSK |= (1 &lt;&lt; 4); \/\/ Pin Change Interrupt Enable 0 \tPCMSK0 |= (1 &lt;&lt; 7); \/\/ \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u043d\u0438\u0435 PCINT7 \t\/\/ :init button \t \tsei(); \tflags0 = 1; \/\/ \u044d\u0442\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 22 \u0431\u0430\u0439\u0442\u0430 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0438! \twhile(1){ \t\tshowVal(); \t\t\/\/ms.sendByte(0x99); \t\tif(0 != (1 & flags0)){ \t\t\tsetRes(); \t\t\tflags0 &= ~1; \t\t} \t} } <\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418 mySerial.cpp<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre> #include &lt;avr\/io.h&gt; #include &lt;avr\/interrupt.h&gt;  class MySerial{ \tpublic: \tvolatile uint8_t *dataPort; \tvolatile uint8_t *dataPin; \tvolatile uint8_t *dataDDR; \tvolatile uint8_t *clockPort; \tvolatile uint8_t *clockPin; \tvolatile uint8_t *clockDDR; \tuint8_t dataPinMask, clockPinMask; \tuint8_t rBit, \t\tlastState, \/\/ (dataPin &lt;&lt; 1) | clockPin \t\tinData; \t\/\/ MySerial ms(&PORTD, &PIND, &DDRD, 2, &PORTD, &PIND, &DDRD, 3); \tMySerial( \t\tvolatile uint8_t *_dataPort, \t\tvolatile uint8_t *_dataPin, \t\tvolatile uint8_t *_dataDDR, \t\tuint8_t _dataPinN, \t\tvolatile uint8_t *_clockPort, \t\tvolatile uint8_t *_clockPin, \t\tvolatile uint8_t *_clockDDR, \t\tuint8_t _clockPinN \t){ \t\trBit = 255; \t\tlastState = 3; \t\tinData = 0; \t\tdataPort = _dataPort; \t\tdataPin = _dataPin; \t\tdataDDR = _dataDDR; \t\tdataPinMask = (1 &lt;&lt; _dataPinN); \t\tclockPort = _clockPort; \t\tclockPin = _clockPin; \t\tclockDDR = _clockDDR; \t\tclockPinMask = (1 &lt;&lt; _clockPinN); \t} \tvoid dataZero() { \t\t*dataPort &= ~dataPinMask; \/\/digitalWrite(pinData, 0); \t\t*dataDDR |= dataPinMask;   \/\/pinMode(pinData, OUTPUT); \t} \tvoid dataRelease() { \t\t*dataDDR &= ~dataPinMask; \/\/pinMode(pinData, INPUT); \t\t*dataPort |= dataPinMask; \/\/digitalWrite(pinData, 1); \t} \tvoid clockZero() { \t\t*clockPort &= ~clockPinMask; \/\/digitalWrite(pinClock, 0); \t\t*clockDDR |= clockPinMask;  \/\/pinMode(pinClock, OUTPUT); \t} \tvoid clockRelease() { \t\t*clockDDR &= ~clockPinMask; \/\/pinMode(pinClock, INPUT); \t\t*clockPort |= clockPinMask; \/\/digitalWrite(pinClock, 1); \t} \tvoid pause() { \t\t\/\/delay(v * 1); \t\t\/\/unsigned long time = micros(); \t\t\/\/while(v-- &gt; 0) \t\tfor(uint16_t i = 0; i &lt; 250; i++) \t\t\t__asm__ __volatile__( \t\t\t\t&quot;nop&quot; \t\t\t); \t\t\/\/time = micros() - time; \t\t\/\/LOG(&quot;Paused &quot;); LOG(time); LOGLN(&quot;us&quot;); \t} \tvoid sendByte(uint8_t data){ \t\t\/\/LOG(&quot;Sending byte: &quot;); LOGLN(data); \t\t\/\/ \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0440\u043e\u043d\u0442 data \u043f\u0440\u0438 clock = 1: \t\tdataRelease(); \t\tclockRelease(); \t\tpause(); \t\tdataZero(); \t\tpause(); \t\t \t\t\/\/LOGLN(&quot;Going to loop...&quot;); \t\tfor(uint8_t i = 0; i &lt; 8; i++){ \t\t\tclockZero(); \t\t\tpause(); \t\t\tif( 0 == (data & (1 &lt;&lt; 7)) ) \t\t\t\tdataZero(); \t\t\telse \t\t\t\tdataRelease(); \t\t\t\/\/LOG(&quot;Sending bit &quot;); LOGLN((data & (1 &lt;&lt; 7))); \t\t\tpause(); \t\t\tclockRelease(); \t\t\tpause();  \t\t\tdata = data &lt;&lt; 1; \t\t} \t\t \t\t\/\/ \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0440\u043e\u043d\u0442 data \u043f\u0440\u0438 clock = 1: \t\tdataZero(); \t\tpause(); \t\tdataRelease(); \t\tpause(); \t}\t \tvoid tick(){ \t\t\/\/uint8_t curState = (digitalRead(pinData) &lt;&lt; 1) | digitalRead(pinClock); \t\tdataRelease(); \t\tclockRelease(); \t\tuint8_t curState = 0; \t\tif(0 != (*dataPin & dataPinMask)) \t\t\tcurState |= 2; \t\tif(0 != (*clockPin & clockPinMask)) \t\t\tcurState |= 1;  \t\t\/\/LOGLN(curState); \t\tif((3 == lastState) && (1 == curState)) \/\/ \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \t\trBit = 7; \t\tif(255 != rBit) \t\tif( (0 == (lastState & 1)) && (1 == (curState & 1)) ) { \/\/ \u043f\u0440\u0438\u0448\u0451\u043b \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0440\u043e\u043d\u0442 clock \t\t\t\/\/LOG(&quot;Getted bit &quot;); LOGLN((curState &gt;&gt; 1)); \t\t\tif( 0 == (curState &gt;&gt; 1) ) \t\t\t\tinData &= ~(1 &lt;&lt; rBit); \t\t\telse \t\t\t\tinData |= (1 &lt;&lt; rBit); \t\t\trBit--; \t\t} \t\t \t\tif( (1 == lastState) && (3 == curState) ){ \/\/ \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430\u0441\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \t\t\t\/\/LOG(&quot;Recieved byte: &quot;); LOGLN(inData); \t\t\trBit = 255; \t\t\t\/\/delay(5000); \t\t} \t\tlastState = curState; \t} }; <\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0418 \u043c\u0430\u043b\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432\u043b\u0435\u0437\u043b\u043e, \u0442\u0430\u043a \u043e\u043d\u043e \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0432\u0441\u0435\u0433\u043e 1044 \u0431\u0430\u0439\u0442\u0430 \u0432\u043e flash \u0438\u0437 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 2048! \u0418 \u044d\u0442\u043e \u043f\u0440\u0438 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u043e\u043c\u0438\u043c\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043e\u043d \u0435\u0449\u0451 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e (MySerial)!<\/p>\n<p>  <a href=\"https:\/\/habrastorage.org\/files\/044\/a39\/4a0\/044a394a0fee48a799c43e677989ac3c.JPG\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/091\/e65\/170\/091e651703154a0ca3ec7abe8e6fa678.JPG\" alt=\"image\"\/><\/a><\/p>\n<p>  \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u044f\u0441\u043d\u044e \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u0437\u0430\u0447\u0435\u043c (\u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e):  <\/p>\n<ul>\n<li>\u041c\u043e\u0442\u043e\u043a \u043f\u0440\u043e\u0432\u043e\u0434\u0430 \u2014 \u044d\u0442\u043e \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043a\u0430\u0442\u0443\u0448\u043a\u0430 \u043c\u0435\u0442\u0430\u043b\u043b\u043e\u0438\u0441\u043a\u0430\u0442\u0435\u043b\u044f;<\/li>\n<li>\u041a\u043d\u043e\u043f\u043a\u0430 \u0441\u043b\u0435\u0432\u0430 \u043d\u0430 \u043c\u0430\u043a\u0435\u0442\u043a\u0435 \u2014 \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u043e\u043d\u0430\u043d\u0441\u0430;<\/li>\n<li>\u0414\u0438\u043e\u0434 + \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440 + \u043a\u043e\u043d\u0434\u0435\u043d\u0441\u0430\u0442\u043e\u0440 \u2014 \u044d\u0442\u043e \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u043d\u044b\u0439 \u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440;<\/li>\n<li>\u0417\u0435\u043b\u0451\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u043a\u0430 \u2014 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u0441 ATtiny24A \u043d\u0430 \u043d\u0451\u043c;<\/li>\n<li>\u0421\u0432\u0435\u0442\u043e\u0434\u0438\u043e\u0434 \u0441 \u0440\u0435\u0437\u0438\u0441\u0442\u043e\u0440\u043e\u043c \u0438 \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0451\u0440\u043d\u0430\u044f \u043a\u043e\u0440\u043e\u0431\u043a\u0430 (\u044d\u0442\u043e \u0434\u0440\u0435\u0432\u043d\u0438\u0439 \u043c\u0438\u043a\u0440\u043e\u0430\u043c\u043f\u0435\u0440\u043c\u0435\u0442\u0440) \u2014 \u0438\u043d\u0434\u0438\u043a\u0430\u0446\u0438\u044f \u0428\u0418\u041c;<\/li>\n<li>Arduino Nano \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u0430\u044f \u0434\u0432\u0443\u043c\u044f \u043f\u0440\u043e\u0432\u043e\u0434\u043a\u0430\u043c\u0438 \u2014 \u043f\u0440\u0438\u0451\u043c\u043d\u0438\u043a \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.<\/li>\n<\/ul>\n<p>  <iframe loading=\"lazy\" width=\"560\" height=\"349\" src=\"\/\/www.youtube.com\/embed\/CW1kqXtIVEo?wmode=opaque\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>  \u041d\u0430 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432\u0438\u0434\u043d\u043e \u043a\u0430\u043a \u043f\u0440\u0438 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u0432 \u043a\u0430\u0442\u0443\u0448\u043a\u0443 \u043c\u0435\u0442\u0430\u043b\u043b\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u0430 \u043f\u0430\u0434\u0430\u044e\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f \u0410\u0426\u041f(\u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435) \u0438 \u041c\u041a \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u0442\u043e\u043a \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440.<\/p>\n<h4>\u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435?<\/h4>\n<p>  \u0417\u0430\u0434\u0430\u0447\u0430 \u00ab\u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u0441 ATtiny\u00bb \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430. \u0412\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0432\u0441\u0451 \u0445\u043e\u0440\u043e\u0448\u043e. \u0413\u0440\u0430\u0431\u043b\u0435\u0439 \u043d\u0430 \u043f\u0443\u0442\u0438 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0434\u0430\u0436\u0435 \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u043e\u0436\u0438\u0434\u0430\u043b. \u041d\u043e \u0438\u0437-\u0437\u0430 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0444\u0430\u043a\u0442\u0430 (\u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 \u043c\u043e\u0449\u043d\u044b\u0439 STM8S103F3P6 \u0441\u0442\u043e\u0438\u0442 \u0434\u0435\u0448\u0435\u0432\u043b\u0435) \u043f\u0440\u0438\u0447\u0438\u043d \u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u043d\u0430 AVR \u0432\u0438\u0436\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0435: \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0430 \u0438 \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f. \u041d\u0443, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u0435\u0449\u0451 \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u0442\u043e\u043a \u0432\u044b\u0445\u043e\u0434\u0430 \u0432 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c.         <\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/geektimes.ru\/post\/262004\/\"> http:\/\/geektimes.ru\/post\/262004\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p> \t\t\u0414\u043e\u043b\u0433\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0438\u0433\u0440\u0430\u043b\u0441\u044f \u0441 Arduino-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c\u0438 \u043f\u043b\u0430\u0442\u0430\u043c\u0438, \u043d\u043e \u0432\u0441\u0451 \u0432\u0440\u0435\u043c\u044f \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u00ab\u043c\u0435\u043d\u044c\u0448\u0435, \u0434\u0435\u0448\u0435\u0432\u043b\u0435 \u0438 \u0431\u043b\u0438\u0436\u0435 \u043a \u0436\u0435\u043b\u0435\u0437\u0443!\u00bb, \u0438 \u0432\u043e\u0442 \u2014 \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u043f\u044b\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0447\u0438\u0441\u0442\u043e\u0433\u043e ATtiny. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043e\u0441\u043e\u0431\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u044b \u043c\u0435\u0442\u0430\u043b\u043b\u043e\u0438\u0441\u043a\u0430\u0442\u0435\u043b\u044f. \u042d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0442\u043e\u0433\u043e, \u043d\u0430 \u0447\u0442\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0437\u0430 47 \u0446\u0435\u043d\u0442\u043e\u0432 + \u043f\u0443\u0442\u044c \u0447\u0430\u0439\u043d\u0438\u043a\u0430 \u0432 \u044d\u0442\u043e\u043c, \u043a\u0430\u043a \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u043c \u0434\u0435\u043b\u0435 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043e\u0442 Arduino \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043d\u0438\u0436\u0435.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-265074","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/265074","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=265074"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/265074\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=265074"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=265074"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=265074"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}