рд╕реНрдерд╛рдирд┐рдХ рд╕реНрд╡рд╛рдпрддреНрдд рдбреЗрдЯрд╛ рд╕рдВрдкрд╛рджрди рдкреНрд░рдгрд╛рд▓реА (рдЪрд╛рд▓реВ)

рдпрд╛ рд╕рд╛рдЗрдЯрд╡рд░ рдкреНрд░рд╛рд░рдВрдн рдХрд░рд╛ рджреБрд╡рд╛.
рд╕реНрдЯрд╛рд░реНрдЯрд░ рдЪрд╛рд▓реВ рдХрд░рдгреНрдпрд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡рд╛рдд рд╕реЛрдпреАрд╕реНрдХрд░ рдкрд░реНрдпрд╛рдп рдореНрд╣рдгрдЬреЗ PC817 рдСрдкреНрдЯреЛрдХрдкрд▓рд░рдЪрд╛ рдкрд░реНрдпрд╛рдп. рд╕рд░реНрдХрд┐рдЯ рдЖрдХреГрддреАрд╕реНрдерд╛рдирд┐рдХ рд╕реНрд╡рд╛рдпрддреНрдд рдбреЗрдЯрд╛ рд╕рдВрдкрд╛рджрди рдкреНрд░рдгрд╛рд▓реА (рдЪрд╛рд▓реВ)рдмреЛрд░реНрдбрдордзреНрдпреЗ рддреАрди рд╕рдорд╛рди рд╕рд░реНрдХрд┐рдЯ рдЕрд╕рддрд╛рдд, рд╕рд░реНрд╡ рдХрд╛рд╣реА рдПрдмреАрдПрд╕ рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ рдмреЙрдХреНрд╕рдордзреНрдпреЗ рдареЗрд╡рд▓реЗрд▓реЗ рдЕрд╕рддреЗ, рдЖрдХрд╛рд░ 100x100 рдорд┐рдореА. рдСрдкреНрдЯреЛрдХрдкрд▓рд░рдЪрд╛ рдлреЛрдЯреЛрд╕реНрдерд╛рдирд┐рдХ рд╕реНрд╡рд╛рдпрддреНрдд рдбреЗрдЯрд╛ рд╕рдВрдкрд╛рджрди рдкреНрд░рдгрд╛рд▓реА (рдЪрд╛рд▓реВ) рд╕реЗрдореАрдХрдВрдбрдХреНрдЯрд░ рд╡рд╛рд▓реНрд╡реНрд╣рд╕рд╣ рд╕реБрд░реВ рд╣реЛрдгрд╛рд░реНтАНрдпрд╛ рдЙрдкрдХрд░рдгрд╛рдВрд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ рдЕрд╕рддрд╛рдирд╛, рддреНрдпрд╛рдВрдЪрд╛ рдЧрд│рддреА рдХрд░рдВрдЯ PC817 рдЙрдШрдбрдгреНрдпрд╛рд╕рд╛рдареА рдкреБрд░реЗрд╕рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдХрд╛рдЙрдВрдЯрд░ рдЦреЛрдЯреЗрдкрдгреЗ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрд▓. рдЕрд╢реА рдкрд░рд┐рд╕реНрдерд┐рддреА рд╡рдЧрд│рдгреНрдпрд╛рд╕рд╛рдареА рдСрдкреНрдЯреЛрдХрдкрд▓рд░ LED рдЖрдгрд┐ рдСрдкрд░реЗрд╢рди рдЗрдВрдбрд┐рдХреЗрд╢рди LED рдЪреНрдпрд╛ рд╕рд░реНрдХрд┐рдЯрдордзреНрдпреЗ рдорд╛рд▓рд┐рдХреЗрдд рдЖрдгрдЦреА рдПрдХ рдЬреЛрдбрд▓рд╛ рдЖрд╣реЗ. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЬрдореНрдкрд░ J1 рдЙрдШрдбрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдПрд▓рдИрдбреА LED1 рд╕реЛрд▓реНрдбрд░ рдХреЗрд▓реЗ рдЖрд╣реЗ.
рдкреНрд░рд╛рдкреНрдд рднрд╛рдЧ рд╡рд░ рдХреЗрд▓реЗ рдЖрд╣реЗ рдмрд╛рдЬреВ 1рд╕реНрдерд╛рдирд┐рдХ рд╕реНрд╡рд╛рдпрддреНрдд рдбреЗрдЯрд╛ рд╕рдВрдкрд╛рджрди рдкреНрд░рдгрд╛рд▓реА (рдЪрд╛рд▓реВ)рдмрд╛рдЬреВ 2рд╕реНрдерд╛рдирд┐рдХ рд╕реНрд╡рд╛рдпрддреНрдд рдбреЗрдЯрд╛ рд╕рдВрдкрд╛рджрди рдкреНрд░рдгрд╛рд▓реА (рдЪрд╛рд▓реВ)ARDUINO MEGA 2560 рд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯ рдмреЛрд░реНрдб. рдпрд╛рд╕рд╛рдареА рд╢реЗрд╡рдЯреА рджреБрд╣реЗрд░реА-рд░реЛ рдХрдиреЗрдХреНрдЯрд░ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ. 240x400 рд░рд┐рдЭреЛрд▓реНрдпреВрд╢рди рдЕрд╕рд▓реЗрд▓реА рд╕реНрдХреНрд░реАрди, рдЬреНрдпрд╛рдордзреНрдпреЗ рдкреНрд░рддрд┐рд░реЛрдзрдХ рдЯрдЪрд╕реНрдХреНрд░реАрди рдЖрдгрд┐ рддрд╛рдкрдорд╛рди рд╕реЗрдиреНрд╕рд░ рдЖрд╣реЗ, рдорд╛рд╣рд┐рддреА рдкреНрд░рджрд░реНрд╢рди рдЙрдкрдХрд░рдг рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ. HX8352B.рд╕реНрдерд╛рдирд┐рдХ рд╕реНрд╡рд╛рдпрддреНрдд рдбреЗрдЯрд╛ рд╕рдВрдкрд╛рджрди рдкреНрд░рдгрд╛рд▓реА (рдЪрд╛рд▓реВ) рд╢рд┐рд╡рд╛рдп, рд╕реНрдХреНрд░реАрди рдмреЛрд░реНрдбрд╡рд░реАрд▓ ICSP рд╢реА рдХрдиреЗрдХреНрдЯрд░ рдХрд╛рдврд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛ SD рд╕реНрд▓реЙрдЯ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдд рдирд╛рд╣реА. рд╡рд╕реНрддреБрд╕реНрдерд┐рддреА рдЕрд╢реА рдЖрд╣реЗ рдХреА рдПрд╕рдкреАрдЖрдп рдмрд╕рд╡рд░реАрд▓ рд╕рдВрдШрд░реНрд╖рд╛рдореБрд│реЗ тАЬрдиреЗрдЯрд┐рд╡реНрд╣тАЭ рдПрд╕рдбреА рд╕реЙрдХреЗрдЯ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реА. рдлреНрд▓реЕрд╢ рдХрд╛рд░реНрдбрд╕рд╛рдареА, рдПрдХ рд╡реЗрдЧрд│рд╛ рдХрд╛рд░реНрдб рд░реАрдбрд░ рд╡рд╛рдкрд░рд▓рд╛ рдЧреЗрд▓рд╛, рдЬреНрдпрд╛рдордзреНрдпреЗ 3,3V рд╕реНрдЯреЕрдмрд┐рд▓рд╛рдпрдЭрд░ рдЖрдгрд┐ рддреАрди рдЖрдЙрдЯрдкреБрдЯ 74LVS125A рдЕрд╕рд▓реЗрд▓реА рдмрдлрд░ рдЪрд┐рдк рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ. рдЗрдереЗрдЪ рд░реЗрдХ рдорд╛рдЭреА рд╡рд╛рдЯ рдкрд╛рд╣рдд рд╣реЛрддрд╛. рддреАрди-рд░рд╛рдЬреНрдп рдмрдлрд░, рдкрд░рдВрддреБ рдПрдХрддрд░ E01-ML01DP5 рдХрд┐рдВрд╡рд╛ рдХрд╛рд░реНрдб рд░реАрдбрд░рдиреЗ рдХрд╛рдо рдХреЗрд▓реЗ. рд▓рд╛рдпрдмреНрд░рд░реА рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрдордзреНрдпреЗ, SdFat рдиреЗ рдЗрддрд░ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕рд╕рд╣ рд╡рд┐рд╕рдВрдЧрддрддреЗрдмрджреНрджрд▓ рдЪреЗрддрд╛рд╡рдгреА рдкрд╛рд╣рд┐рд▓реА. TXS0108E рд╡рд░реАрд▓ рд▓реЗрд╡реНрд╣рд▓ рдХрдиреНрд╡реНрд╣рд░реНрдЯрд░ рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рдд рдЖрд▓реЗ рдЖрдгрд┐ рдЬрдВрдкрд░реНрд╕рдиреЗ рдмрджрд▓рд▓реЗ, рдХрд╛рд░рдг E01-ML01DP5 5V рд╕рд┐рдЧреНрдирд▓рд▓рд╛ рд╕рд╣рдирд╢реАрд▓ рдЖрд╣реЗ - рддреНрдпрд╛рдЪрд╛ рдлрд╛рдпрджрд╛ рдЭрд╛рд▓рд╛ рдирд╛рд╣реА. рдСрд╕рд┐рд▓реЛрд╕реНрдХреЛрдк рд╡рд╛рдкрд░реВрди, рдХрд╛рд░реНрдб рд░реАрдбрд░ рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реНрдпрд╛рд╡рд░ MISO рд▓рд╛рдЗрдирд╡рд░ рд╕рд┐рдЧреНрдирд▓ рддреЛрдЯрд╛ рдЖрдврд│рд▓рд╛. рдХрд╛рд│рдЬреАрдкреВрд░реНрд╡рдХ рддрдкрд╛рд╕рдгреА рдХреЗрд▓реНрдпрд╛рд╡рд░, рдЕрд╕реЗ рдЖрдврд│рд▓реЗ рдХреА 4LVS74A рдЪреНрдпрд╛ OE 125 рдЪреЕрдиреЗрд▓рдЪреНрдпрд╛ рд╕рдХреНрд╖рдо рд╕рд┐рдЧреНрдирд▓рдЪреЗ рдЗрдирдкреБрдЯ рдлрдХреНрдд рдПрдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рдпрд░рд╡рд░ рд╕реЛрд▓реНрдбрд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рд╣реЛрддреЗ рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛рд╣реА рддрд┐рд╕рд▒реНрдпрд╛ рд╕реНрдерд┐рддреАрдмрджреНрджрд▓ рдмреЛрд▓реВ рд╢рдХрдд рдирд╛рд╣реА. рдмрдлрд░ рдЪрд┐рдкрдЪрд╛ рд╡рд╛рдкрд░ 5V рддреЗ 3.3V рдкрд░реНрдпрдВрдд рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡реНрд╣ рд▓реЗрд╡реНрд╣рд▓ рдХрдиреНрд╡реНрд╣рд░реНрдЯрд░ рдореНрд╣рдгреВрди рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдИрдиреНрд╕рд╕рд╣ рдорд╛рд▓рд┐рдХреЗрдд рдЬреЛрдбрд▓реЗрд▓реЗ 3,3 K╬й рд░реЗрдЭрд┐рд╕реНрдЯрд░ рд╡рд╛рдкрд░реВрди рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛. MISO рд▓рд╛рдЗрди рд╡рдЧрд│рддрд╛. рддреНрдпрд╛рдЪреНрдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рддрд│рд╛рдЪреНрдпрд╛ рд╕реНрд╡рд┐рдЪрдиреЗ рдХрджрд╛рдЪрд┐рдд рдЬрдорд┐рдиреАрдЪреНрдпрд╛ рдкрд╛рддрд│реАрд╡рд░ рд╕рд┐рдЧреНрдирд▓ рдЖрдХрд░реНрд╖рд┐рдд рдХреЗрд▓реЗ. MISO рд▓рд╛рдЗрдирдЪрд╛ рд╕рдХреНрд╖рдо рд╕рд┐рдЧреНрдирд▓ рдкрд┐рди 13 рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реНрдпрд╛рд╡рд░, рддреЗ рдЯреНрд░реЕрдХрд╡рд░реВрди рдлрд╛рдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрдгрд┐рд╕реЛрд▓реНрдбрд░ рдХреЗрд▓реЗрд▓реЗрд╕реНрдерд╛рдирд┐рдХ рд╕реНрд╡рд╛рдпрддреНрдд рдбреЗрдЯрд╛ рд╕рдВрдкрд╛рджрди рдкреНрд░рдгрд╛рд▓реА (рдЪрд╛рд▓реВ)9LVS74A CS рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рджрд░рдореНрдпрд╛рди рдЗрдирдкреБрдЯ рдкрд┐рди (125) рдЖрдгрд┐ рдЯрд░реНрдорд┐рдиреЗрд╢рди рд░реЗрдЭрд┐рд╕реНрдЯрд░ рдирд┐рд╡рдбрд╛. рдЖрддрд╛, рдореЗрдорд░реА рдХрд╛рд░реНрдбрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдирд╕рд▓реНрдпрд╛рд╕, MISO рдмрдлрд░ рдЕрдХреНрд╖рдо рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рджреБрд╕рд░реНрдпрд╛ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирдордзреНрдпреЗ рд╡реНрдпрддреНрдпрдп рдЖрдгрдд рдирд╛рд╣реА.рд╡рд┐рдХрд╛рд╕ рдордВрдбрд│ рдЖрдХреГрддреАрд╕реНрдерд╛рдирд┐рдХ рд╕реНрд╡рд╛рдпрддреНрдд рдбреЗрдЯрд╛ рд╕рдВрдкрд╛рджрди рдкреНрд░рдгрд╛рд▓реА (рдЪрд╛рд▓реВ)рд░рд┐рд╕реАрд╡реНрд╣рд░ рдЪрд╛рд▓реВ рдЖрд╣реЗрд╕реНрдерд╛рдирд┐рдХ рд╕реНрд╡рд╛рдпрддреНрдд рдбреЗрдЯрд╛ рд╕рдВрдкрд╛рджрди рдкреНрд░рдгрд╛рд▓реА (рдЪрд╛рд▓реВ)DS3231 рд╣реЗ рдШрдбреНрдпрд╛рд│ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ I2C рдмрд╕ (TWI) рд╡рд╛рдкрд░рддреЗ.
Arduino IDE рдХрд╛рд░реНрдпрдХреНрд░рдо// рдорд╣рддреНрд╡рд╛рдЪреЗ: Adafruit_TFTLCD рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд┐рд╢реЗрд╖рдд: рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
// рдПрдХрддрд░ TFT рд╢реАрд▓реНрдб рдХрд┐рдВрд╡рд╛ рдмреНрд░реЗрдХрдЖрдЙрдЯ рдмреЛрд░реНрдбрд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗрд▓реЗ.
// рд╕реЗрдЯрдЕрдкрд╕рд╛рдареА Adafruit_TFTLCD.h рдордзреНрдпреЗ рд╕рдВрдмрдВрдзрд┐рдд рдЯрд┐рдкреНрдкрдгреНрдпрд╛ рдкрд╣рд╛.
//рдУрдкрди-рд╕реНрдорд╛рд░реНрдЯ рдЯреАрдо рдЖрдгрд┐ рдХреЕрдЯрд▓реЗрдХреНрд╕ рдЯреАрдо
//[рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд]
//рд╕реНрдЯреЛрдЕрд░: dx.com
// open-smart.aliexpress.com/store/1199788
//рдбреЗрдореЛ рдлрдВрдХреНрд╢рди: рдЧреНрд░рд╛рдлрд┐рдХреНрд╕, рд╡рд░реНрдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рд╛
//Arduino IDE: 1.6.5
// рдмреЛрд░реНрдб: Arduino UNO R3, Arduino Mega2560, Arduino Leonardo

// рдмреЛрд░реНрдб:рдУрдкрди-рд╕реНрдорд╛рд░реНрдЯ UNO R3 5V / 3.3V, Arduino UNO R3, Arduino Mega2560
//3.2 рдЗрдВрдЪ TFT:
// www.aliexpress.com/store/product/3-2-TFT-LCD-Display-module-Touch-Screen-Shield-board-onboard-temperature-sensor-w-Touch-Pen/1199788_32755473754.html?spm=2114.12010615.0.0.bXDdc3
//рдУрдкрди-рд╕реНрдорд╛рд░реНрдЯ UNO R3 5V / 3.3V:
// www.aliexpress.com/store/product/OPEN-SMART-5V-3-3V-Compatible-UNO-R3-CH340G-ATMEGA328P-Development-Board-with-USB-Cable-for/1199788_32758607490.html?spm=2114.12010615.0.0.ckMTaN

#рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рд╛ // рдХреЛрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд▓рд╛рдпрдмреНрд░рд░реА
//#рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рд╛ // рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рд╛рдпрдмреНрд░рд░реА
#рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рд╛
MCUFRIEND_kbv tft;
#include "SdFat.h" // SdFat рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░рд╛
SdFat SD;
рдПрд╕рдбреАрдлрд╛рдЗрд▓ рдлрд╛рдЗрд▓;
рдлрд╛рдЗрд▓ myFile;
#SD_CS_PIN SS рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рд╛

#рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рд╛ // SPI рдмрд╕ рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд▓рд╛рдпрдмреНрд░рд░реА рдХрдиреЗрдХреНрдЯ рдХрд░рд╛
#рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рд╛ // RF24 рд▓рд╛рдпрдмреНрд░рд░реАрдордзреВрди рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдлрд╛рдЗрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░рд╛
#рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рд╛ // nRF24L24+ рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд▓рд╛рдпрдмреНрд░рд░реА рдХрдиреЗрдХреНрдЯ рдХрд░рд╛
RF24 рд░реЗрдбрд┐рдУ(47, 49);

#рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рд╛

DS3231 rtc(27, 25);
рд╡реЗрд│ рдЯреА;

uint16_t r = 6000;
uint32_t k = 0;

рдЕрд╕реНрдерд┐рд░ рд╕реНрд╡рд╛рдХреНрд╖рд░реА рди рдХреЗрд▓реЗрд▓рд╛ рд▓рд╛рдВрдм рдбреЗрдЯрд╛;
рдлреНрд▓реЛрдЯ leb_1;
рдлреНрд▓реЛрдЯ leb_2;
рдлреНрд▓реЛрдЯ leb_3;
рдлреНрд▓реЛрдЯ leb_4;

uint8_t рдкрд╛рдИрдк;
int rc = 0;

uint8_t time_sec_prev;
uint8_t time_day_prev;

//**************************************************** ****************//
// рддреБрдореНрд╣реА рдУрдкрди-рд╕реНрдорд╛рд░реНрдЯ рдЯреАрдПрдлрдЯреА рдмреНрд░реЗрдХрдЖрдЙрдЯ рдмреЛрд░реНрдб рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реНрдпрд╛рд╕ //
// рддреБрдореНрд╣рд╛рд▓рд╛ 5V-3.3V рд▓реЗрд╡реНрд╣рд▓ рдХрдиреНрд╡реНрд╣рд░реНрдЯрд┐рдВрдЧ рд╕рд░реНрдХрд┐рдЯ рдЬреЛрдбрдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ.
// рдирдХреНрдХреАрдЪ рддреБрдореНрд╣реА OPEN-SMART UNO рдмреНрд▓реЕрдХ рдЖрд╡реГрддреНрддреА 5V/3.3V рдкреЙрд╡рд░ рд╕реНрд╡рд┐рдЪрд╕рд╣ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛,
// рддреБрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд 3.3V рд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
// рдПрд▓рд╕реАрдбреАрд╕рд╛рдареА рдХрдВрдЯреНрд░реЛрд▓ рдкрд┐рди рдХреЛрдгрддреНрдпрд╛рд╣реА рдбрд┐рдЬрд┐рдЯрд▓ рдХрд┐рдВрд╡рд╛ рдирд┐рдпреБрдХреНрдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд
// рдЕреЕрдирд╛рд▓реЙрдЧ рдкрд┐рди...рдкрд░рдВрддреБ рдЖрдореНрд╣реА рдЕреЕрдирд╛рд▓реЙрдЧ рдкрд┐рди рд╡рд╛рдкрд░реВ рдХрд╛рд░рдг рд╣реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрдиреБрдорддреА рджреЗрдИрд▓
//тАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФ-|
// TFT рдмреНрд░реЗрдХрдЖрдЙрдЯ - Arduino UNO / Mega2560 / OPEN-SMART UNO рдмреНрд▓реЕрдХ
// GND - GND
// 3V3 - 3.3V
//CS - A3
// RS - A2
// WR - A1
// RD - A0
// RST - рд░реАрд╕реЗрдЯ
// LED - GND
// DB0 - 8
// DB1 - 9
// DB2 - 10
// DB3 - 11
// DB4 - 4
// DB5 - 13
// DB6 - 6
// DB7 - 7

// рдХрд╛рд╣реА рд╕рд╛рдорд╛рдиреНрдп 16-рдмрд┐рдЯ рд░рдВрдЧ рдореВрд▓реНрдпрд╛рдВрдирд╛ рдорд╛рдирд╡реА-рд╡рд╛рдЪрдиреАрдп рдирд╛рд╡реЗ рдирд┐рдпреБрдХреНрдд рдХрд░рд╛:
#BLACK 0x0000 рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рд╛
#BLUE 0x001F рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рд╛
# RED 0xF800 рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рд╛
# GREEN 0x07E0 рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рд╛
# CYAN 0x07FF рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рд╛
#MAGENTA 0xF81F рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рд╛
#YELLOW 0xFFE0 рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рд╛
#WHITE 0xFFFF рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рд╛
#рдЧреНрд░реЗ 0x8C51 рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рд╛
#рдЧреНрд░реЗрдб 0x39E7 рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рд╛

//Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
// рдврд╛рд▓ рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рд╕рд░реНрд╡ рдирд┐рдпрдВрддреНрд░рдг рдЖрдгрд┐ рдбреЗрдЯрд╛ рд░реЗрд╖рд╛ рдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд, рдЖрдгрд┐
// рдПрдХ рд╕реЛрдкреА рдШреЛрд╖рдгрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХрд░рд┐рддреНрдпрд╛ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ:
// Adafruit_TFTLCD tft;
uint16_t g_identifier;

рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛рд╕реНрдЯреНрд░рд┐рдВрдЧ;
//рд╕реНрдЯреНрд░рд┐рдВрдЧ numfileMonth = "1.txt";
char perv [] = {"2.txt"};
//рд╕реНрдЯреНрд░рд┐рдВрдЧ *numfileMonth="1.txt" (sizeof (numfileMonth));
//////////////////////////////////////// ///////////////

рд╢реВрдиреНрдп рд╕реЗрдЯрдЕрдк (рд╢реВрдиреНрдп) {

rtc.begin();

// рд╡реЗрд│ рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрд╡рд╢реНрдпрдХ рдУрд│реА рдЕрдирдХрдореЗрдВрдЯ рдХрд░рд╛
// rtc.setDOW(6); // рдЖрдард╡рдбреНрдпрд╛рдЪрд╛ рджрд┐рд╡рд╕
// rtc.setTime(22, 04, 0); // рд╡реЗрд│, реирек рддрд╛рд╕рд╛рдВрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд.
// rtc.setDate(4, 5, 2019); // рджрд┐рдирд╛рдВрдХ 29 рдСрдХреНрдЯреЛрдмрд░ 2018

рд╕реАрд░рд┐рдпрд▓.рдмреЗрдЧрд┐рди (2000000);
//////// рд╕реНрдХреНрд░реАрди рдЗрдирд┐рд╢рд┐рдПрд▓рд╛рдпрдЭреЗрд╢рди
tft.begin(0x65);
tft.reset();
tft.setRotation(0);
tft.cp437(рд╕рддреНрдп);
///////////////// рдирд╛рд╡рд╛рдВрдЪреЗ рдЖрдЙрдЯрдкреБрдЯ, рдЙрдкрдХрд░рдгреЗ, рд╕рдВрд╕реНрдереЗрдЪреЗ рдирд╛рд╡
tft.fillScreen(рдХрд╛рд│рд╛);
tft.setTextColor(WHITE);
tft.setTextSize(2);
tft.setCursor(8, 0);
tft.println("рдбреЗрд╡реНрд╣рд▓рдкрд░реНрд╕ рдЖрдгрд┐ рдмрд┐рд▓реНрдб");
tft.setCursor(30, 20);
tft.print (utf8rus("рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ V.V." ));
tft.setCursor(40, 40);
tft.print (utf8rus("рдЯрд░реНрдирд░ I.I" ));
рд╡рд┐рд▓рдВрдм (2000);

radio.begin(); // рдХрд╛рдо рд╕реБрд░реВ рдХрд░рд╛ nRF24L01+
radio.setChannel(120); // рдбреЗрдЯрд╛ рд░рд┐рд╕реЗрдкреНрд╢рди рдЪреЕрдиреЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рд╛ (0 рддреЗ 127 рдкрд░реНрдпрдВрдд)
radio.setDataRate(RF24_250KBPS); // рдбреЗрдЯрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рдг рджрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рд╛ (RF24_250KBPS, RF24_1MBPS, RF24_2MBPS), RF24_1MBPS - 1Mbit/s
radio.setPALevel(RF24_PA_MAX); // рдЯреНрд░рд╛рдиреНрд╕рдореАрдЯрд░ рдкреЙрд╡рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рд╛ (RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm)
radio.openReadingPipe(1, 0xAABBCCDD11LL); // рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА 1 рдЯреНрд░рд╛рдиреНрд╕рдореАрдЯрд░ 1xAABBCCDD0 рдЪреНрдпрд╛ рдЖрдпрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░рд╕рд╣ 11 рдкрд╛рдИрдк рдЙрдШрдбрд╛
// рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЯреНрд░рд╛рдиреНрд╕рдореАрдЯрд░ рдЖрдпрдбреА 2xAABBCCDD2 рд╕рд╣ рдкрд╛рдИрдк 0 рдЙрдШрдбрд╛
radio.startListening(); // рд░рд┐рд╕реАрд╡реНрд╣рд░ рдЪрд╛рд▓реВ рдХрд░рд╛, рдЙрдШрдбрд▓реЗрд▓реНрдпрд╛ рдкрд╛рдИрдкреНрд╕ рдРрдХрдгреЗ рд╕реБрд░реВ рдХрд░рд╛
// radio.stopListening();
////////рд╕реЗрд╡реЗрдЪреНрдпрд╛ рдорд╛рд╣рд┐рддреАрдЪреЗ рдЖрдЙрдЯрдкреБрдЯ
tft.fillScreen(рдХрд╛рд│рд╛);
tft.setCursor(8, 0);
tft.setTextSize(1);
////////SD рдХрд╛рд░реНрдб рд╕реБрд░реВ рдХрд░рдгреЗ рд╕реБрд░реВ рдХрд░рд╛
Serial.println("рдкреНрд░рд╛рд░рдВрднрд┐рдХ SD рдХрд╛рд░реНрдб");
tft.println("рдкреНрд░рд╛рд░рдВрднрд┐рдХ SD рдХрд╛рд░реНрдб");
tft.setCursor(8, 10);
////////рдХрд╛рд░реНрдб рд╕реБрд░реВ рдХрд░рдгреЗ
рдЬрд░ (!SD.begin(SD_CS_PIN)) {
Serial.println("рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдпрд╢рд╕реНрд╡реА!");
tft.fillRect(8, 10, 85, 7, RED);
tft.setTextColor(рдХрд╛рд│рд╛);
tft.println("рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдпрд╢рд╕реНрд╡реА!");
рдкрд░рдд;
}
tft.setTextColor(WHITE);
Serial.println("рдкреНрд░рд╛рд░рдВрдн рдкреВрд░реНрдг рдЭрд╛рд▓реЗ");
tft.println("рдкреНрд░рд╛рд░рдВрдн рдкреВрд░реНрдг рдЭрд╛рд▓реЗ");
рд╡рд┐рд▓рдВрдм (2000);
////////рд╡реЗрд│ рдЖрдгрд┐ рддрд╛рд░реАрдЦ рд╡рд╛рдЪрдгреЗ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рд╕рд╛рдареА рдирд┐рдпреБрдХреНрдд рдХрд░рдгреЗ
t = rtc.getTime();
time_sec_prev = t.sec;
time_day_prev = t.date;
////////рдЬрдмрд░рджрд╕реНрддреАрдиреЗ рддрд╛рд░реАрдЦ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рд╛ рдЬреЗрдгреЗрдХрд░реВрди рдкреНрд░рджрд░реНрд╢рдирд╛рд╕рд╛рдареА рддрд╛рд░реАрдЦ рдмрджрд▓рдгреНрдпрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реВ рдирдпреЗ
tft.setCursor(180, 0); // рдХрд░реНрд╕рд░рдЪреА рд╕реНрдерд┐рддреА рд╕реЗрдЯ рдХрд░рдгреЗ
tft.fillRect(178, 0, 65, 7, рдЧреНрд░реЗ); // рд╡реЗрд│ рдЖрдЙрдЯрдкреБрдЯ рдХреНрд╖реЗрддреНрд░ рд╕рд╛рдл рдХрд░рдгреЗ
tft.setTextSize(1);
tft.print(rtc.getDateStr());
////////рдирд┐рдпрдВрддреНрд░рдг рд╡рд╕реНрддреВрдВрдЪреЗ рдирд╛рд╡ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рд╛
tft.setTextSize(2);
tft.setCursor(60, 25);
tft.println (utf8rus("рд╡рд┐рдВрдЪреЗрд╕ I"));
//////// рд▓реЙрдЧ рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрдгрд┐ рдирд┐рд░реНрдорд┐рддреА рдкреНрд░рдпрддреНрдирд╛рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдгреЗ
tft.setTextSize(1);
tft.setCursor(130, 10); // рдЬрд░ log file 2.txt рддрдпрд╛рд░ рдХреЗрд▓реА рдЕрд╕реЗрд▓, рддрд░ рдлрд╛рдИрд▓рд╡рд░ рд▓рд┐рд╣рд┐рдгреЗ рдЪрд╛рд▓реВ рд░рд╛рд╣реАрд▓
рдЬрд░ (SD.exists(perv)) {
//tft.setCursor(0, 90);
tft.println(perv);
Serial.println(perv);
} else {
myFile = SD.open(perv, FILE_WRITE); // рдлрд╛рдЗрд▓ 2.txt рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдирд╕рд▓реНрдпрд╛рд╕, рддреА рддрдпрд╛рд░ рдХреЗрд▓реА рдЬрд╛рдИрд▓
myFile.close();
tft.println(perv);
Serial.println(perv);
}
}

рд╢реВрдиреНрдп рдкрд│рд╡рд╛рдЯ (рд╢реВрдиреНрдп) {
////////COM рдкреЛрд░реНрдЯ рдореЙрдирд┐рдЯрд░рд╡рд░ рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рдирдВрддреАрдЪреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рддрдкрд╛рд╕рдд рдЖрд╣реЗ
рдЬрд░ (Serial.available() > 0) {
рдЬрд░ (1 == Serial.read());
//////// рдЖрдгрд┐ рдЬрд░ тАЬ1тАЭ рд╕реНрд╡реАрдХрд╛рд░рд▓реЗ рдЕрд╕реЗрд▓ рддрд░ рдЖрдЙрдЯрдкреБрдЯ
рдлрд╛рдЗрд▓ myFile = SD.open(perv);
// рдлрд╛рдЗрд▓ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реНрдпрд╛рд╕, рддреНрдпрд╛рд╡рд░ рд▓рд┐рд╣рд╛:
рдЬрд░ (рдорд╛рдпрдлрд╛рдЗрд▓) {
рдЕрд╕рддрд╛рдирд╛ (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
}
рдЕрдиреНрдпрдерд╛
Serial.println("рдПрд░рд░ рдУрдкрдирд┐рдВрдЧ .txt");
}
}
////////рд╡рд╛рдЪрди рд╡реЗрд│
t = rtc.getTime();
tft.setTextColor(WHITE);
////////рд╡реЗрд│ рдмрджрд▓рд▓реА рдЕрд╕рд▓реНрдпрд╛рд╕, рдирд╡реАрди рдШрдбреНрдпрд╛рд│ рд╡рд╛рдЪрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рд╛
рдЬрд░ ( time_sec_prev != t.sec) {
tft.setCursor(120, 0); // рдХрд░реНрд╕рд░рдЪреА рд╕реНрдерд┐рддреА рд╕реЗрдЯ рдХрд░рдгреЗ
tft.fillRect(118, 0, 50, 7, рдЧреНрд░реЗ); // рд╡реЗрд│ рдЖрдЙрдЯрдкреБрдЯ рдХреНрд╖реЗрддреНрд░ рд╕рд╛рдл рдХрд░рдгреЗ
tft.setTextSize(1);
tft.print(rtc.getTimeStr()); // рдЖрдЙрдЯрдкреБрдЯ рдШрдбреНрдпрд╛рд│ рд╡рд╛рдЪрди
time_sec_prev = t.sec;
}
//////// рддрд╛рд░реАрдЦ рдмрджрд▓рд▓реА рдЕрд╕реЗрд▓ рддрд░ рдирд╡реАрди рддрд╛рд░реАрдЦ рджрд╛рдЦрд╡рд╛
рдЬрд░ ( time_day_prev != t.date) {
tft.setCursor(180, 0); // рдХрд░реНрд╕рд░рдЪреА рд╕реНрдерд┐рддреА рд╕реЗрдЯ рдХрд░рдгреЗ
tft.fillRect(178, 0, 65, 7, рдЧреНрд░реЗ); // рд╕реНрдкрд╖реНрдЯ рддрд╛рд░реАрдЦ рдкреНрд░рджрд░реНрд╢рди рдХреНрд╖реЗрддреНрд░
tft.setTextSize(1);
tft.print(rtc.getDateStr()); // рддрд╛рд░реАрдЦ рд╡рд╛рдЪрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рд╛
time_day_prev = t.date;
}
////////рд░реЗрдбрд┐рдУ рд░рд┐рд╕реЗрдкреНрд╢рди рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реНрдпрд╛рд╕, рдирдВрддрд░
рдЬрд░ (radio.available(&pipe)) {
////////рдкреНрд░рд╛рдкреНрдд рдмрдлрд░ рднрд░рд▓реЗ рдЖрд╣реЗ рдХреА рдирд╛рд╣реА рд╣реЗ рддрдкрд╛рд╕рдгреЗ,
radio.read(&data, sizeof(data));
//////// рдЖрд╡рд╢реНрдпрдХ рдЯреНрд░рд╛рдиреНрд╕рдореАрдЯрд░ рдкрддреНрддрд╛ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реНрдпрд╛рд╕, рдирдВрддрд░
рдЬрд░ (рдкрд╛рдИрдк == 1) {
////////рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреНтАНрдпрд╛рд╕рд╛рдареА рд╢реВрдиреНрдпрд╛рдЪрд╛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭрд┐рдВрдЧ рдХреНрд░рдо рд╡рд╛рдЯ рдкрд╛рд╣рдд рдЖрд╣реЗ
//рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХрдЪреА рд╕реБрд░реБрд╡рд╛рдд
рдЬрд░ (рдбреЗрдЯрд╛ == 0000) {
rc = 0;
} else {
rc++;
}
////////рдХрд╛рдЙрдВрдЯрд░ рдореВрд▓реНрдпреЗ рд░реЗрдХреЙрд░реНрдб рдХрд░рдгреЗ рдЖрдгрд┐ рддрд╛рд╕рд╛рдЪреНрдпрд╛ 10рд╡реНрдпрд╛ рдЖрдгрд┐ 100рд╡реНрдпрд╛ рдордзреНрдпреЗ рддреНрдпрд╛рдВрдЪреА рдЧрдгрдирд╛ рдХрд░рдгреЗ
рдЬрд░ (rc == 1) {
leb_1 = рдбреЗрдЯрд╛ / 3600.0;
}

рдЬрд░ (rc == 2) {
leb_2 = рдбреЗрдЯрд╛ / 3600.0;
}

рдЬрд░ (rc == 3) {
leb_3 = рдбреЗрдЯрд╛ / 3600.0;
}

рдЬрд░ (rc == 4) {
leb_4 = рдбреЗрдЯрд╛ / 3600.0;
}
}
}
r++;
k++; // рдлрдХреНрдд рдПрдХ рдХрд╛рдЙрдВрдЯрд░
//////// рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд▓рд╛рд╡рдзреАрд╕рд╣ рдбреЗрдЯрд╛ рдЕрджреНрдпрддрди
рдЬрд░ ( r >= 6500) {
tft.setTextSize(2);
tft.fillRect(0, 41, 180, 64, GRAYD);
Serial.println("рд▓реЗрдмреЗрдбрдХреА I");
tft.setCursor(0, 41);
tft.println(leb_1);
Serial.println(leb_1);
tft.println(leb_2);
Serial.println(leb_2);
tft.println(leb_3);
Serial.println(leb_3);
tft.println(leb_4);
Serial.println(leb_4);
Serial.println(k);
r = 0;
}
////////рджрд░ 10 рдорд┐рдирд┐рдЯрд╛рдВрдиреА SD рд╡рд░ рд▓реЙрдЧрд╡рд░ рдбреЗрдЯрд╛ рд▓рд┐рд╣рд╛.
рдЬрд░ ((t.min % 10 == 0) && ( t.sec == 0)) {
tft.setTextSize(1);
tft.setCursor(200, 10);
tft.setTextColor(рдХрд╛рд│рд╛);
//////// .csv рд╕реНрд╡рд░реВрдкрд╛рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рддрдпрд╛рд░ рдХрд░рдгреЗ
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛рд╕реНрдЯреНрд░рд┐рдВрдЧ = рд╕реНрдЯреНрд░рд┐рдВрдЧ (rtc.getDateStr()) + "," +(rtc.getTimeStr()) + "," + (leb_1) + "," + (leb_2)
+ ", " + (leb_3) + ", " + (leb_4) + ", ";
//////// рдлрд╛рдИрд▓рд╡рд░ рд▓рд┐рд╣рд╛ рдЖрдгрд┐ рд▓реЗрдЦрди рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреЗ рдкрд░рд┐рдгрд╛рдо рдЖрдЙрдЯрдкреБрдЯ рдХрд░рд╛
myFile = SD.open(perv, FILE_WRITE); // тАЬ2.txtтАЭ рдирд╛рд╡рд╛рдЪреА рдлрд╛рдИрд▓ рдирд╕рд▓реНрдпрд╛рд╕ рддреА рддрдпрд╛рд░ рдХреЗрд▓реА рдЬрд╛рдИрд▓.
рдЬрд░ (рдорд╛рдпрдлрд╛рдЗрд▓) {
myFile.println(dataString);
myFile.close();
tft.fillRect(198, 8, 42, 10, рд╣рд┐рд░рд╡рд╛);
tft.println("SD OK");
Serial.println("SD OK");
рд╡рд┐рд▓рдВрдм(900); // рд╡рд┐рд▓рдВрдм, рдЕрдиреНрдпрдерд╛ рдПрдХ рд╕реЗрдХрдВрдж рд╕рдВрдкреЗрдкрд░реНрдпрдВрдд 13 рдПрдХрд╕рд╛рд░рдЦреЗ рд╡рд╛рдЪрди рд░реЗрдХреЙрд░реНрдб рдХрд░рддреЗ
} else {
tft.fillRect(198, 8, 42, 10, RED);
tft.println("SD ERR");
Serial.println("SD ERR");
}
}
}рд╡рд░реНрдг рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдо/* UTF-8 рд╡рд░реВрди Windows-1251 рдкрд░реНрдпрдВрдд рд░рд╢рд┐рдпрди рдлреЙрдиреНрдЯ рдкреБрдиреНрд╣рд╛ рдХреЛрдб рдХрд░рд╛ */

рд╕реНрдЯреНрд░рд┐рдВрдЧ utf8rus (рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрддреНрд░реЛрдд)
{
int i,k;
рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рдХреНрд╖реНрдп;
рд╕реНрд╡рд╛рдХреНрд╖рд░реА рди рдХреЗрд▓реЗрд▓реЗ рдЪрд╛рд░ n;
char m[2] = { '0', ' ' };

k = source.length(); i = 0;

рдЕрд╕рддрд╛рдирд╛ (i < k) {
n = рд╕реНрд░реЛрдд[i]; i++;

рдЬрд░ (n >= 0xC0) {
рд╕реНрд╡рд┐рдЪ (n) {
рдХреЗрд╕ 0xD0: {
n = рд╕реНрд░реЛрдд[i]; i++;
рдЬрд░ (n == 0x81) { n = 0xA8; рдЦрдВрдбрд┐рдд; }
рдЬрд░ (n >= 0x90 && n <= 0xBF) n = n + 0x30;//0x2F
рдЦрдВрдбрд┐рдд;
}
рдХреЗрд╕ 0xD1: {
n = рд╕реНрд░реЛрдд[i]; i++;
рдЬрд░ (n == 0x91) { n = 0xB8; рдЦрдВрдбрд┐рдд; }
рдЬрд░ (n >= 0x80 && n <= 0x8F) n = n + 0x70;//0x6F
рдЦрдВрдбрд┐рдд;
}
}
}
m[0] = n; рд▓рдХреНрд╖реНрдп = рд▓рдХреНрд╖реНрдп + рд╕реНрдЯреНрд░рд┐рдВрдЧ(m);
}
рдкрд░рддреАрдЪреЗ рд▓рдХреНрд╖реНрдп;
Adafruit_GFX рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░реВрди рд╕рд┐рд░рд┐рд▓рд┐рдХ рдЖрдЙрдЯрдкреБрдЯрд╕рд╛рдареА рдХреЕрд░реЗрдХреНрдЯрд░ рдЯреНрд░рд╛рдиреНрд╕рдХреЛрдбрд┐рдВрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореБрдЦреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд╕рд╣ рддреНрдпрд╛рдЪ рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рдареЗрд╡рд▓рд╛ рдЖрд╣реЗ. рддреБрдореНрд╣рд╛рд▓рд╛ Adafruit_GFX рдордзреАрд▓ glcdfont.c рдлрд╛рдЗрд▓ рд╡реЗрдЧрд│реНрдпрд╛ рдлреЙрдиреНрдЯрдиреЗ рдмрджрд▓рдгреНрдпрд╛рдЪреА рджреЗрдЦреАрд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рддреЛ рдЖрд╣реЗ рдЖрд╡рд╢реНрдпрдХ рдмрджрд▓реАрд╕рд╣ рд▓рд╛рдпрдмреНрд░рд░реА. Russification рдмрджреНрджрд▓ рдЕрдзрд┐рдХ рдорд╛рд╣рд┐рддреА рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рд╕рд╣рдЬрдкрдгреЗ рдЖрдврд│реВ рд╢рдХрддреЗ.
рдереЛрдбрдХреНрдпрд╛рдд, рдореА рдЕрд╕реЗ рдореНрд╣рдгреЗрди рдХреА рдкреНрд░рдгрд╛рд▓реА рдЕрдкреЗрдХреНрд╖реЗрдиреБрд╕рд╛рд░ рдЬрдЧрд▓реА, рдЙрдкрдХрд░рдгрд╛рдЪреНрдпрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╡реЗрд│реЗрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреЗ рд╕реЛрдкреЗ рдЭрд╛рд▓реЗ рдЖрд╣реЗ. рдЬрд░реА рд╕рд░реНрд╡ рдХрд╛рд╣реА рдмреНрд░реЗрдбрдмреЛрд░реНрдбрд╡рд░ рдПрдХрддреНрд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЕрд╕рд▓реЗ рддрд░реА, рдХрд╛рдорд╛рдмрджреНрджрд▓ рддреНрд╡рд░рд┐рдд рддрдХреНрд░рд╛рд░реА рдирд╛рд╣реАрдд. рдкрд╣рд┐рд▓реЗ рдШрдЯрдХ рд╕рд╣рд╛ рдорд╣рд┐рдиреНрдпрд╛рдВрд╣реВрди рдЕрдзрд┐рдХ рдХрд╛рд│ рдХрд╛рдо рдХрд░рдд рдЖрд╣реЗрдд рдЖрдгрд┐ рд╣рд┐рд╡рд╛рд│реНрдпрд╛рдд рдЯрд┐рдХреВрди рдЖрд╣реЗрдд. рдирд╡реАрдирддрдо рдбрд┐рдЭрд╛рдЗрди рд╣реЗ 9 рдорд╛рд░реНрдЪрдкрд╛рд╕реВрди 5 рдирд┐рдпрдВрддреНрд░рд┐рдд рдпреБрдирд┐рдЯреНрд╕рд╕рд╛рдареА рдЪрд╛рд▓реВ рдЖрд╣реЗ рдЖрдгрд┐ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╡реЗрд│ рдЕрдзрд┐рдХреГрддрдкрдгреЗ рддреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдиреЛрдВрджрдгреА рдХреЗрд▓реА рдЬрд╛рдд рдЖрд╣реЗ.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛