рд╕реНрдерд╛рдиреАрдп рд╕реНрд╡рд╛рдпрддреНрдд рдбрд╛рдЯрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдкреНрд░рдгрд╛рд▓реА (рдЬрд╛рд░реА)

рдпреЛ рд╕рд╛рдЗрдЯрдорд╛ рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд▓рд┐рдЩреНрдХ.
рд╕реНрдЯрд╛рд░реНрдЯрд░ рдЦреЛрд▓реНрдиреЗ рдмрд╛рд░реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмреИрднрдиреНрджрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рдХрд▓реНрдк PC817 optocoupler рдХреЛ рд╕рд╛рде рд╡рд┐рдХрд▓реНрдк рднрдпреЛред рд╕рд░реНрдХрд┐рдЯ рдЖрд░реЗрдЦрд╕реНрдерд╛рдиреАрдп рд╕реНрд╡рд╛рдпрддреНрдд рдбрд╛рдЯрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдкреНрд░рдгрд╛рд▓реА (рдЬрд╛рд░реА)рдмреЛрд░реНрдбрд╣рд░реВрдорд╛ рддреАрди рд╕рдорд╛рди рд╕рд░реНрдХрд┐рдЯрд╣рд░реВ рдЫрдиреН, рд╕рдмреИ рдПрдмреАрдПрд╕ рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ рдмрдХреНрд╕рд╣рд░реВрдорд╛ рд░рд╛рдЦрд┐рдПрдХреЛ рдЫ, рдЖрдХрд╛рд░ 100x100 рдорд┐рдореАред Optocouplers рдХреЛ рдлреЛрдЯреЛрд╕реНрдерд╛рдиреАрдп рд╕реНрд╡рд╛рдпрддреНрдд рдбрд╛рдЯрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдкреНрд░рдгрд╛рд▓реА (рдЬрд╛рд░реА) рд╕реЗрдореАрдХрдиреНрдбрдХреНрдЯрд░ рднрд▓реНрднрд╣рд░реВ рд╕реБрд░реБ рдЧрд░реНрдиреЗ рдпрдиреНрддреНрд░рд╣рд░реВрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрджрд╛, рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЪреБрд╣рд╛рд╡рдЯ рд╡рд░реНрддрдорд╛рди PC817 рдЦреЛрд▓реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдпрд╛рдкреНрдд рд╣реБрдиреНрдЫ рд░ рдХрд╛рдЙрдиреНрдЯрд░ рдЧрд▓рдд рд░реВрдкрдорд╛ рдЯреНрд░рд┐рдЧрд░ рд╣реБрдиреЗрдЫред рдпрд╕реНрддреЛ рдЕрд╡рд╕реНрдерд╛ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдЧрд░реНрди рдУрдкреНрдЯреЛрдХрдкрд▓рд░ рдПрд▓рдИрдбреАрдХреЛ рд╕рд░реНрдХрд┐рдЯ рд░ рдЕрдкрд░реЗрд╢рди рдЗрдиреНрдбрд┐рдХреЗрд╢рди рдПрд▓рдИрдбреАрдорд╛ рдПрдЙрдЯрд╛ рдердк рдердкрд┐рдПрдХреЛ рдЫред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдЬрдореНрдкрд░ J1 рдЦреЛрд▓рд┐рдПрдХреЛ рдЫ рд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд LED LED1 рд╕реЛрд▓реНрдбрд░ рдЧрд░рд┐рдПрдХреЛ рдЫред
рдкреНрд░рд╛рдкреНрдд рднрд╛рдЧ рдорд╛ рдмрдирд╛рдЗрдПрдХреЛ рдЫ рдкрдХреНрд╖ 1рд╕реНрдерд╛рдиреАрдп рд╕реНрд╡рд╛рдпрддреНрдд рдбрд╛рдЯрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдкреНрд░рдгрд╛рд▓реА (рдЬрд╛рд░реА)рдкрдХреНрд╖ 2рд╕реНрдерд╛рдиреАрдп рд╕реНрд╡рд╛рдпрддреНрдд рдбрд╛рдЯрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдкреНрд░рдгрд╛рд▓реА (рдЬрд╛рд░реА)рд╡рд┐рдХрд╛рд╕ рдмреЛрд░реНрдб ARDUINO MEGA 2560 рдорд╛ рдЬрдбрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫред рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐, рдПрдХ рдбрдмрд▓-рд░реЛ рдХрдиреЗрдХреНрдЯрд░ рдЕрдиреНрддрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред 240x400 рдХреЛ рд░рд┐рдЬреЛрд▓реБрд╕рди рднрдПрдХреЛ рд╕реНрдХреНрд░рд┐рди, рдкреНрд░рддрд┐рд░реЛрдзрд╛рддреНрдордХ рдЯрдЪрд╕реНрдХреНрд░рд┐рди рд░ рддрд╛рдкрдорд╛рди рд╕реЗрдиреНрд╕рд░ рднрдПрдХреЛ, рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рди рдЙрдкрдХрд░рдгрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред HX8352Bредрд╕реНрдерд╛рдиреАрдп рд╕реНрд╡рд╛рдпрддреНрдд рдбрд╛рдЯрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдкреНрд░рдгрд╛рд▓реА (рдЬрд╛рд░реА) рдпрд╕рдмрд╛рд╣реЗрдХ, рд╕реНрдХреНрд░рд┐рди рдмреЛрд░реНрдбрдорд╛ рд░рд╣реЗрдХреЛ ICSP рдорд╛ рдХрдиреЗрдХреНрдЯрд░ рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫ рд░ рдорд╛рдЗрдХреНрд░реЛ рдПрд╕рдбреА рд╕реНрд▓рдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред рддрдереНрдп рдпреЛ рд╣реЛ рдХрд┐ "рд╕реНрдерд╛рдиреАрдп" SD рд╕рдХреЗрдЯ SPI рдмрд╕рдорд╛ рд╡рд┐рд╡рд╛рджрдХреЛ рдХрд╛рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрдиред рдлреНрд▓реНрдпрд╛рд╕ рдХрд╛рд░реНрдбрдХреЛ рд▓рд╛рдЧрд┐, рдПрдЙрдЯрд╛ рдЫреБрдЯреНрдЯреИ рдХрд╛рд░реНрдб рд░рд┐рдбрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдЬрд╕рдорд╛ 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 рдорд╛ рд╕рд╛рдиреНрджрд░реНрднрд┐рдХ рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред
// рдУрдкрди-рд╕реНрдорд╛рд░реНрдЯ рдЯреЛрд▓реА рд░ Catalex рдЯреЛрд▓реА рджреНрд╡рд╛рд░рд╛
//[рдИрдореЗрд▓ рд╕реБрд░рдХреНрд╖рд┐рдд]
//рд╕реНрдЯреЛрд░: dx.com
// open-smart.aliexpress.com/store/1199788
// рдбреЗрдореЛ рдкреНрд░рдХрд╛рд░реНрдп: рдЧреНрд░рд╛рдлрд┐рдХреНрд╕, рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреБрд╣реЛрд╕реН
//Arduino IDE: 1.6.5
// рдмреЛрд░реНрдб: Arduino UNO R3, Arduino Mega2560, Arduino рд▓рд┐рдпреЛрдирд╛рд░реНрдбреЛ

// рдмреЛрд░реНрдб: OPEN-SMART 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
//OPEN-SMART 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;
SdFile рдлрд╛рдЗрд▓;
рдлрд╛рдЗрд▓ myFile;
#SD_CS_PIN SS рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН

#рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреБрд╣реЛрд╕реН // SPI рдмрд╕рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬрдбрд╛рди рдЧрд░реНрдиреБрд╣реЛрд╕реН
#рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреБрд╣реЛрд╕реН // RF24 рдкреБрд╕реНрддрдХрд╛рд▓рдпрдмрд╛рдЯ рд╕реЗрдЯрд┐рдЩ рдлрд╛рдЗрд▓ рдЬрдбрд╛рди рдЧрд░реНрдиреБрд╣реЛрд╕реН
#рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреБрд╣реЛрд╕реН // nRF24L24+ рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬрдбрд╛рди рдЧрд░реНрдиреБрд╣реЛрд╕реН
RF24 рд░реЗрдбрд┐рдпреЛ (47, 49);

#рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреБрд╣реЛрд╕реН

DS3231 rtc(27, 25);
рд╕рдордп t;

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;

//************************************************** ****************//
// рдпрджрд┐ рддрдкрд╛рдЗрдБ рдУрдкрди-рд╕реНрдорд╛рд░реНрдЯ TFT рдмреНрд░реЗрдХрдЖрдЙрдЯ рдмреЛрд░реНрдб рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ //
// рддрдкрд╛рдИрд▓рд╛рдИ 5V-3.3V рд╕реНрддрд░ рд░реВрдкрд╛рдиреНрддрд░рдг рд╕рд░реНрдХрд┐рдЯ рдердкреНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
// рдЕрд╡рд╢реНрдп рдкрдирд┐ рддрдкрд╛рдИрд▓реЗ OPEN-SMART UNO рдХрд╛рд▓реЛ рд╕рдВрд╕реНрдХрд░рдг 5V/3.3V рдкрд╛рд╡рд░ рд╕реНрд╡рд┐рдЪрдХреЛ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ,
// рддрдкрд╛рдИрд▓рд╛рдИ 3.3V рдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред
// LCD рдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рдпрдиреНрддреНрд░рдг рдкрд┐рди рдХреБрдиреИ рдкрдирд┐ рдбрд┐рдЬрд┐рдЯрд▓ рд╡рд╛ рдЕрд╕рд╛рдЗрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ
// рдПрдирд╛рд▓рдЧ рдкрд┐рдирд╣рд░реВ ... рддрд░ рд╣рд╛рдореА рдПрдирд╛рд▓рдЧ рдкрд┐рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВ рдХрд┐рдирдХрд┐ рдпрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ
//тАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФтАФ-|
// TFT рдмреНрд░реЗрдХрдЖрдЙрдЯ - Arduino UNO / Mega2560 / OPEN-SMART UNO рдХрд╛рд▓реЛ
// GND - GND
// 3V3 - 3.3V
//CS - A3
// RS - A2
// WR - A1
// RD - A0
// RST - рд░рд┐рд╕реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН
// рдПрд▓рдИрдбреА - 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 рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН
# GRAYD 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"};
//String *numfileMonth="1.txt" (sizeof (numfileMonth));
//////////////////////////////////////// //////////

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

rtc.begin();

// рд╕рдордп рд╕реЗрдЯ рдЧрд░реНрди, рдЖрд╡рд╢реНрдпрдХ рд▓рд╛рдЗрдирд╣рд░реВ рдЕрдирдХрдореЗрдиреНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН
// rtc.setDOW(6); // рд╣рдкреНрддрд╛рдХреЛ рджрд┐рди
// rtc.setTime(реиреи, режрек, реж); // рд╕рдордп, 22 рдШрдгреНрдЯрд╛ рдврд╛рдБрдЪрд╛рдорд╛ред
// rtc.setDate(4, 5, 2019); // рдорд┐рддрд┐, рдЕрдХреНрдЯреЛрдмрд░ 29, 2018

Serial.begin (2000000 XNUMXрежреж);
//////// рд╕реНрдХреНрд░рд┐рди рдкреНрд░рд╛рд░рдореНрднрд┐рдХрд░рдг
tft.begin(0x65);
tft.reset();
tft.setRotation(0);
tft.cp437 (рд╕рддреНрдп);
//////////////////рдирд╛рдо, рдЙрдкрдХрд░рдг рд╕рд╛рдорд╛рди, рд╕рдВрдЧрдарди рдирд╛рдо рдХреЛ рдЖрдЙрдЯрдкреБрдЯ
tft.fillScreen(рдХрд╛рд▓реЛ);
tft.setTextColor(рд╕реЗрддреЛ);
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); // рдбрд╛рдЯрд╛ рд░рд┐рд╕реЗрдкреНрд╢рди рдЪреНрдпрд╛рдирд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН (реж рджреЗрдЦрд┐ резреирен рд╕рдореНрдо)
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 рдкрд╛рдЗрдк рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН
// рдбрд╛рдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЯреНрд░рд╛рдиреНрд╕рдорд┐рдЯрд░ ID 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(BLACK);
tft.println("рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдЕрд╕рдлрд▓!");
рдлрд░реНрдХрд┐рдиреБ;
}
tft.setTextColor(рд╕реЗрддреЛ);
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("Winches I"));
////////рд▓рдЧ рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ рд░ рд╕рд┐рд░реНрдЬрдирд╛ рдкреНрд░рдпрд╛рд╕рдХреЛ рдкрд░рд┐рдгрд╛рдо рдЖрдЙрдЯрдкреБрдЯ рдЧрд░реНрджреИ
tft.setTextSize(1);
tft.setCursor(130, 10); // рдпрджрд┐ рд▓рдЧ рдлрд╛рдЗрд▓ 2.txt рдмрдирд╛рдЗрдпреЛ рднрдиреЗ, рдлрд╛рдЗрд▓рдорд╛ рд▓реЗрдЦреНрдиреЗ рдХрд╛рдо рдЬрд╛рд░реА рд░рд╣рдиреЗрдЫ
рдпрджрд┐ (SD.exists(perv)) {
//tft.setCursor(реж, репреж);
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) {
рдЬрдмрдХрд┐ (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
}
рдЕрд░реБ {
Serial.println("рддреНрд░реБрдЯрд┐ рдЦреЛрд▓реНрдиреЗ .txt");
}
}
////////рдкрдвреНрдиреЗ рд╕рдордп
t = rtc.getTime();
tft.setTextColor(рд╕реЗрддреЛ);
////////рдпрджрд┐ рд╕рдордп рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛ рдЫ рднрдиреЗ, рдирдпрд╛рдБ рдШрдбреА рдкрдардирд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдпрджрд┐ ( 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.read(&data, sizeof(data));
//////// рдЖрд╡рд╢реНрдпрдХ рдЯреНрд░рд╛рдиреНрд╕рдорд┐рдЯрд░ рдареЗрдЧрд╛рдирд╛ рдЙрдкрд▓рдмреНрдз рдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐
рдпрджрд┐ (рдкрд╛рдЗрдк == 1) {
////////рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╢реВрдиреНрдпрдХреЛ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬрд┐рдЩ рдЕрдиреБрдХреНрд░рдордХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдБрджреИ
// рдбрд╛рдЯрд╛ рдмреНрд▓рдХ рдХреЛ рд╢реБрд░реБрд╡рд╛рдд
рдпрджрд┐ (рдбреЗрдЯрд╛ == 0000) {
rc = реж;
} 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("Lebedki 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;
}
////////рдПрд╕рдбреАрдорд╛ рд▓рдЧрдорд╛ рдкреНрд░рддреНрдпреЗрдХ резреж рдорд┐рдиреЗрдЯрдорд╛ рдбрд╛рдЯрд╛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реНред
рдпрджрд┐ ((t.min % 10 == 0) && ( t.sec == 0)) {
tft.setTextSize(1);
tft.setCursor(200, 10);
tft.setTextColor(BLACK);
////////.csv рдврд╛рдБрдЪрд╛рдорд╛ рд╕реНрдЯреНрд░рд┐рдЩ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ
рд╕реНрдЯреНрд░рд┐рдЩ рдбреЗрдЯрд╛рд╕реНрдЯреНрд░рд┐рдЩ = рд╕реНрдЯреНрд░рд┐рдЩ (rtc.getDateStr()) + "", "+(rtc.getTimeStr()) + "," + (leb_1) + "," + (leb_2)
+ ", " + (leb_3) + ", " + (leb_4) + ", ";
//////// рдлрд╛рдЗрд▓рдорд╛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН рд░ рд▓реЗрдЦрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдЖрдЙрдЯрдкреБрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН
myFile = SD.open(perv, FILE_WRITE); // рдпрджрд┐ "2.txt" рдирд╛рдордХреЛ рдХреБрдиреИ рдлрд╛рдЗрд▓ рдЫреИрди рднрдиреЗ, рдпреЛ рд╕рд┐рд░реНрдЬрдирд╛ рд╣реБрдиреЗрдЫред
рдпрджрд┐ (myFile) {
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 рдорд╛ рдкреБрди: рдХреЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реН */

String utf8rus (рд╕реНрдЯреНрд░рд┐рдЩ рд╕реНрд░реЛрдд)
{
int i, k;
рд╕реНрдЯреНрд░рд┐рдЩ рд▓рдХреНрд╖реНрдп;
рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд char 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; рд▓рдХреНрд╖реНрдп = рд▓рдХреНрд╖реНрдп + рд╕реНрдЯреНрд░рд┐рдЩ (рдПрдо);
}
рдлрд┐рд░реНрддрд╛ рд▓рдХреНрд╖реНрдп;
} Adafruit_GFX рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рд┐рд░рд┐рд▓рд┐рдХ рдЖрдЙрдЯрдкреБрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░ рдЯреНрд░рд╛рдиреНрд╕рдХреЛрдбрд┐рдЩ рдХрд╛рд░реНрдпрдХреНрд░рдорд▓рд╛рдИ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдорд╕рдБрдЧ рдПрдЙрдЯреИ рдлреЛрд▓реНрдбрд░рдорд╛ рд░рд╛рдЦрд┐рдПрдХреЛ рдЫред рддрдкрд╛рдИрдВрд▓реЗ Adafruit_GFX рдорд╛ рд░рд╣реЗрдХреЛ glcdfont.c рдлрд╛рдЗрд▓рд▓рд╛рдИ рдлрд░рдХ рдлрдиреНрдЯрд╕рдБрдЧ рдмрджрд▓реНрдиреБрдкрд░реНрдЫред рдпреЛ рдЫ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рдВрдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдпред Russification рдмрд╛рд░реЗ рдердк рдЬрд╛рдирдХрд╛рд░реА рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ рд╕рдЬрд┐рд▓реИ рдкрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫред
рд╕рдВрдХреНрд╖реЗрдкрдорд╛, рдо рднрдиреНрдЫреБ рдХрд┐ рдкреНрд░рдгрд╛рд▓реА рдЕрдкреЗрдХреНрд╖рд╛рд╣рд░реВ рдкреВрд░рд╛ рднрдпреЛ, рдпреЛ рдЙрдкрдХрд░рдгрдХреЛ рд╕рдЮреНрдЪрд╛рд▓рди рд╕рдордп рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рднрдПрдХреЛ рдЫред рд╕рдмреИ рдХреБрд░рд╛ рдмреНрд░реЗрдбрдмреЛрд░реНрдбрдорд╛ рдЬрдореНрдорд╛ рднрдП рдкрдирд┐, рдХрд╛рдордХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрдиреИ рддреБрд░реБрдиреНрддреИ рдЧреБрдирд╛рд╕реЛрд╣рд░реВ рдЫреИрдирдиреНред рдкрд╣рд┐рд▓реЛ рддрддреНрд╡рд╣рд░реВ рдЫ рдорд╣рд┐рдирд╛рднрдиреНрджрд╛ рдмрдвреА рд╕рдордпрджреЗрдЦрд┐ рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫрдиреН рд░ рдЬрд╛рдбреЛрдорд╛ рдмрд╛рдБрдЪреЗрдХрд╛ рдЫрдиреНред рдирд╡реАрдирддрдо рдбрд┐рдЬрд╛рдЗрди рдпреЛ рдЪреИрдд рел рдЧрддреЗрджреЗрдЦрд┐ реп рдирд┐рдпрдиреНрддреНрд░рд┐рдд рдЗрдХрд╛рдЗрд╣рд░реВрдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ рд░ рдпрд╕рдХреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рд╕рдЮреНрдЪрд╛рд▓рди рд╕рдордп рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдкрдорд╛ рджрд░реНрддрд╛ рднрдЗрд░рд╣реЗрдХреЛ рдЫред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди