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

рдЗрд╕ рд╕рд╛рдЗрдЯ рдкрд░ рд▓рд┐рдВрдХ рдкрд░ рд╢реБрд░реВ рдХрд░реЗрдВред

рд╕реНрдЯрд╛рд░реНрдЯрд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рдХрд▓реНрдк PC817 рдСрдкреНрдЯреЛрдХреЙрдкреНрд▓рд░ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд▓реНрдк рдирд┐рдХрд▓рд╛ред

рд╕рд░реНрдХрд┐рдЯ рдЖрд░реЗрдЦ
рдЫрд╡рд┐ рдКрдВрдЪрд╛рдИ

рдмреЛрд░реНрдбреЛрдВ рдореЗрдВ рддреАрди рд╕рдорд╛рди рд╕рд░реНрдХрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдПрдмреАрдПрд╕ рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ рд╕реЗ рдмрдиреЗ рдмрдХреНрд╕реЗ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдХрд╛рд░ 100x100 рдорд┐рдореАред

рдлреЛрдЯреЛ рдСрдкреНрдЯреЛрдХреЙрдкрд▓рд░
рдЫрд╡рд┐ рдКрдВрдЪрд╛рдИ

рдЬрдм рд╕реЗрдореАрдХрдВрдбрдХреНрдЯрд░ рд╡рд╛рд▓реНрд╡ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЙрдирдХрд╛ рд▓реАрдХреЗрдЬ рдХрд░рдВрдЯ PC817 рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЧрд▓рдд рдХрд╛рдЙрдВрдЯрд░ рдСрдкрд░реЗрд╢рди рд╣реЛрдЧрд╛ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ, рдСрдкреНрдЯреЛрдХреЙрдкреНрд▓рд░ рдПрд▓рдИрдбреА рдФрд░ рдСрдкрд░реЗрд╢рди рдЗрдВрдбрд┐рдХреЗрд╢рди рдПрд▓рдИрдбреА рдХреЗ рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рдПрдХ рдФрд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрдореНрдкрд░ рдЬреЗ 1 рдЦреЛрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд LED1 рдорд┐рд▓рд╛рдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкреНрд░рд╛рдкреНрдд рднрд╛рдЧ рдкрд░ рдмрдирд╛ рд╣реИ

рдкрдХреНрд╖ рез
рдЫрд╡рд┐ рдКрдВрдЪрд╛рдИ

рдкрдХреНрд╖ реи
рдЫрд╡рд┐ рдКрдВрдЪрд╛рдИ

ARDUINO MEGA 2560 рд╕реЗ рдЬреБрдбрд╝реА рдПрдХ рдмреНрд░реЗрдбрдмреЛрд░реНрдбред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдЕрдВрдд рдореЗрдВ рдПрдХ рджреЛ-рдкрдВрдХреНрддрд┐ рдХрдиреЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред 240x400 рдХреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╡рд╛рд▓реА рд╕реНрдХреНрд░реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реВрдЪрдирд╛ рдбрд┐рд╕реНрдкреНрд▓реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

HX8352Bред
рдЫрд╡рд┐ рдКрдВрдЪрд╛рдИ

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдХреНрд░реАрди рдмреЛрд░реНрдб рдкрд░ ICSP рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрдЯрд░ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдорд╛рдЗрдХреНрд░реЛ рдПрд╕рдбреА рд╕реНрд▓реЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдПрд╕рдкреАрдЖрдИ рдмрд╕ рдореЗрдВ рд╕рдВрдШрд░реНрд╖ рдХреЗ рдХрд╛рд░рдг "рджреЗрд╢реА" рдПрд╕рдбреА рд╕реНрд▓реЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред 3.3V рд╕реНрдЯреЗрдмрд▓рд╛рдЗрдЬрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдХрд╛рд░реНрдб рд░реАрдбрд░ рдФрд░ 74LVS125A рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рддреАрди рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдлрд░ рдЪрд┐рдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреНрд▓реИрд╢ рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрдзрд░ рдПрдХ рд░реЗрдХ рдореЗрд░рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реА рдереАред рддреАрди рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдлрд░, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ E01-ML01DP5 рдпрд╛ рдХрд╛рд░реНрдб рд░реАрдбрд░ рдпрд╛ рддреЛ рдХрд╛рдо рдХрд┐рдпрд╛ред SdFat рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ, рдореИрдВрдиреЗ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдЦреАред TXS0108E рдкрд░ рд╕реНрддрд░ рдХрдирд╡рд░реНрдЯрд░ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЬрдВрдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ E01-ML01DP5 5V рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣рд┐рд╖реНрдгреБ - рдорджрдж рдирд╣реАрдВ рдХреАред рдХрд╛рд░реНрдб рд░реАрдбрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдЖрд╕реНрдЯрд╕реАрд▓рд╕реНрдХрдк рдиреЗ MISO рд▓рд╛рдЗрди рдкрд░ рд╕рд┐рдЧреНрдирд▓ рд▓реЙрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ред рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдкрд░, рдпрд╣ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ 4 рдЪреИрдирд▓ 74LVS125A рдХреЗ рд╕рдХреНрд╖рдо рд╕рд┐рдЧреНрдирд▓ OE рдХреЗ рдЗрдирдкреБрдЯ рдХреЗрд╡рд▓ рдПрдХ рдЖрдо рддрд╛рд░ рд╕реЗ рдЯрд╛рдВрдХреЗ рдЧрдП рдереЗ рдФрд░ рдХрд┐рд╕реА рддреАрд╕рд░реЗ рд░рд╛рдЬреНрдп рдХреА рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред рд╕рд┐рдЧреНрдирд▓ рдЪрд┐рдк рдХреЗ рд╕рд╛рде рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЬреБрдбрд╝реЗ 3.3 KOhm рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдлрд░ рдЪрд┐рдк рдХреЛ 5V рд╕реЗ 3.3V рддрдХ рдПрдХ рдЖрджрд┐рдо рд╕реНрддрд░ рдХрдирд╡рд░реНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред MISO рд▓рд╛рдЗрди рдХреЗ рдЕрд▓рд╛рд╡рд╛ред рдЙрд╕рдХреА рдЖрдЙрдЯрдкреБрдЯ рдХрдо рдХреБрдВрдЬреА рд╢рд╛рдпрдж рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдЬрдореАрди рдкрд░ рдЦреАрдВрдЪ рд▓реЗрддреА рд╣реИред рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ MISO рд▓рд╛рдЗрди рдХрд╛ рд╕рдХреНрд╖рдо рд╕рд┐рдЧреНрдирд▓ рдкрд┐рди 13 рд╣реИ, рдпрд╣ рдЯреНрд░реИрдХ рд╕реЗ рдлрд╛рдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ рдФрд░

soldered
рдЫрд╡рд┐ рдКрдВрдЪрд╛рдИ

рд╕реАрдПрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдЪрдпрди рдФрд░ рд╕рдорд╛рдкреНрддрд┐ рд░реЛрдХрдиреЗрд╡рд╛рд▓рд╛ рдХреЗ рдЗрдирдкреБрдЯ (9) 74LVS125A рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдмреАрдЪред рдЕрдм, рдпрджрд┐ рдореЗрдореЛрд░реА рдХрд╛рд░реНрдб рддрдХ рдХреЛрдИ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ, рддреЛ MISO рдмрдлрд░ рдЕрдХреНрд╖рдо рд╣реИ рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдЖрдЙрдЯ рд╕рд░реНрдХрд┐рдЯ рдмреЛрд░реНрдб
рдЫрд╡рд┐ рдКрдВрдЪрд╛рдИ

рдХрд╛рдо рдкрд░ рд░рд┐рд╕реАрд╡рд░
рдЫрд╡рд┐ рдКрдВрдЪрд╛рдИ

рдШрдбрд╝реА рдХреЛ DS3231 рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, I2C рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдмрд╕ (TWI) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Arduino IDE рдкреНрд░реЛрдЧреНрд░рд╛рдо
// IMPORTANT: Adafruit_TFTLCD LIBRARY MUST BE SPECIFICALLY // CONFIGURED FOR EITHER THE TFT SHIELD OR THE BREAKOUT BOARD. // SEE RELEVANT COMMENTS IN Adafruit_TFTLCD.h FOR SETUP. //by Open-Smart Team and Catalex Team //catalex_inc@163.com //Store: http://dx.com // https://open-smart.aliexpress.com/store/1199788 //Demo Function: Display graphics, characters //Arduino IDE: 1.6.5 // Board: Arduino UNO R3, Arduino Mega2560,Arduino Leonardo // Board:OPEN-SMART UNO R3 5V / 3.3V, Arduino UNO R3, Arduino Mega2560 //3.2INCH TFT: // https://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: // https://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 #include <Adafruit_GFX.h> // Core graphics library //#include <Adafruit_TFTLCD.h> // Hardware-specific library #include <MCUFRIEND_kbv.h> MCUFRIEND_kbv tft; #include "SdFat.h" // Use the SdFat library SdFat SD; SdFile file; File myFile; #define SD_CS_PIN SS #include <SPI.h> //       SPI #include <nRF24L01.h> //      RF24 #include <RF24.h> //      nRF24L01+ RF24 radio(47, 49); #include <DS3231.h> DS3231 rtc(27, 25); Time t; uint16_t r = 6000; uint32_t k = 0; volatile unsigned long data; float leb_1; float leb_2; float leb_3; float leb_4; uint8_t pipe; int rc = 0; uint8_t time_sec_prev; uint8_t time_day_prev; //***********************************************// // If you use OPEN-SMART TFT breakout board // // Reconmmend you to add 5V-3.3V level converting circuit. // Of course you can use OPEN-SMART UNO Black version with 5V/3.3V power switch, // you just need switch to 3.3V. // The control pins for the LCD can be assigned to any digital or // analog pins...but we'll use the analog pins as this allows us to //----------------------------------------| // TFT Breakout -- Arduino UNO / Mega2560 / OPEN-SMART UNO Black // GND -- GND // 3V3 -- 3.3V // CS -- A3 // RS -- A2 // WR -- A1 // RD -- A0 // RST -- RESET // LED -- GND // DB0 -- 8 // DB1 -- 9 // DB2 -- 10 // DB3 -- 11 // DB4 -- 4 // DB5 -- 13 // DB6 -- 6 // DB7 -- 7 // Assign human-readable names to some common 16-bit color values: #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define GRAY 0x8C51 #define GRAYD 0x39E7 //Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // If using the shield, all control and data lines are fixed, and // a simpler declaration can optionally be used: // Adafruit_TFTLCD tft; uint16_t g_identifier; String dataString; //String numfileMonth ="1.txt"; char perv [] = {"2.txt"}; //String *numfileMonth="1.txt" (sizeof (numfileMonth)); /////////////////////////////////////////////////////////////////// void setup(void) { rtc.begin(); //   -    // rtc.setDOW(6); //   // rtc.setTime(22, 04, 0); // ,   24 . // rtc.setDate(4, 5, 2019); // , 29  2018. Serial.begin(2000000); ////////   tft.begin(0x65); tft.reset(); tft.setRotation(0); tft.cp437(true); ////////////////// ,  ,   tft.fillScreen(BLACK); tft.setTextColor(WHITE); tft.setTextSize(2); tft.setCursor (8, 0); tft.println ("DEVELOPERS & BUILD" ); tft.setCursor (30, 20); tft.print (utf8rus(" .." )); tft.setCursor (40, 40); tft.print (utf8rus(" .." )); delay (2000); radio.begin(); //   nRF24L01+ radio.setChannel(120); //     ( 0  127) radio.setDataRate (RF24_250KBPS); //     (RF24_250KBPS, RF24_1MBPS, RF24_2MBPS), RF24_1MBPS - 1/ 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    1  0xAABBCCDD11,    //  2    2  0xAABBCCDD22,    radio.startListening (); //  ,     // radio.stopListening (); ////////   tft.fillScreen(BLACK); tft.setCursor (8, 0); tft.setTextSize(1); ////////  SD  Serial.println("Initial SD card"); tft.println("Initial SD card"); tft.setCursor (8, 10); ////////  if (!SD.begin(SD_CS_PIN)) { Serial.println("initial failed!"); tft.fillRect ( 8 , 10 , 85 , 7 , RED); tft.setTextColor(BLACK); tft.println("Initial failed!"); return; } tft.setTextColor(WHITE); Serial.println("initialization done"); tft.println("Initialization done"); delay (2000); //////// -      t = rtc.getTime(); time_sec_prev = t.sec; time_day_prev = t.date; ////////  ,         tft.setCursor ( 180 , 0 ); //    tft.fillRect ( 178 , 0 , 65 , 7 , GRAY); //     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); //    2.txt ,       if (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); } } void loop(void) { ////////       -  if (Serial.available() > 0) { ////////    ,       File myFile = SD.open(perv); // if the file is available, write to it: if (myFile) { while (myFile.available()) { Serial.write(myFile.read()); } myFile.close(); } else { Serial.println("error opening .txt"); } } ////////  t = rtc.getTime(); tft.setTextColor(WHITE); ////////  ,      if ( time_sec_prev != t.sec) { tft.setCursor ( 120 , 0 ); //    tft.fillRect ( 118 , 0 , 50 , 7 , GRAY); //     tft.setTextSize(1); tft.print(rtc.getTimeStr()); //    time_sec_prev = t.sec; } ////////  ,     if ( time_day_prev != t.date) { tft.setCursor ( 180 , 0 ); //    tft.fillRect ( 178 , 0 , 65 , 7 , GRAY); //     tft.setTextSize(1); tft.print(rtc.getDateStr()); //    time_day_prev = t.date; } ////////  ,  if (radio.available(&pipe)) { ////////   , radio.read(&data, sizeof(data)); ////////    ,  if (pipe == 1) { ////////      //   if ( data == 0000 ) { rc = 0; } else { rc ++; } ////////       10  100-   if ( rc == 1 ) { leb_1 = data / 3600.0; } if ( rc == 2 ) { leb_2 = data / 3600.0; } if ( rc == 3 ) { leb_3 = data / 3600.0; } if ( rc == 4 ) { leb_4 = data / 3600.0; } } } r ++; k ++; //   ////////       if ( 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; } ////////     SD  10 . if ((t.min % 10 == 0) && ( t.sec == 0)) { tft.setTextSize(1); tft.setCursor(200, 10); tft.setTextColor(BLACK); ////////    .csv String dataString = String (rtc.getDateStr()) + ", "+(rtc.getTimeStr()) + ", " + (leb_1) + ", " + (leb_2) + ", " + (leb_3) + ", " + (leb_4) + ", "; ////////        myFile = SD.open(perv, FILE_WRITE); //     "2.txt" - ,    . if (myFile) { myFile.println(dataString); myFile.close(); tft.fillRect ( 198 , 8 , 42 , 10 , GREEN); tft.println("SD OK"); Serial.println("SD OK"); delay (900); // ,   13  ,     } else { tft.fillRect ( 198 , 8 , 42 , 10 , RED); tft.println("SD ERR"); Serial.println("SD ERR"); } } } 

рдЪрд░рд┐рддреНрд░ рдЯреНрд░рд╛рдВрд╕рдХреЛрдбрд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд░рдо
 /* Recode russian fonts from UTF-8 to Windows-1251 */ String utf8rus(String source) { int i,k; String target; unsigned char n; char m[2] = { '0', '\0' }; k = source.length(); i = 0; while (i < k) { n = source[i]; i++; if (n >= 0xC0) { switch (n) { case 0xD0: { n = source[i]; i++; if (n == 0x81) { n = 0xA8; break; } if (n >= 0x90 && n <= 0xBF) n = n + 0x30;//0x2F break; } case 0xD1: { n = source[i]; i++; if (n == 0x91) { n = 0xB8; break; } if (n >= 0x80 && n <= 0x8F) n = n + 0x70;//0x6F break; } } } m[0] = n; target = target + String(m); } return target; } 

Adafruit_GFX рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреНрд╡рд╛рд░рд╛ рд╕рд┐рд░рд┐рд▓рд┐рдХ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЪрд░рд┐рддреНрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдореБрдЦреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рдорд╛рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдкрдХреЛ Adafruit_GFX рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдлрд╝реЙрдиреНрдЯ рдХреЗ рд╕рд╛рде glcdfont.c рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд╕рд╛рде рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ Russification рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЖрд╕рд╛рдиреА рд╕реЗ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ, рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдкрд░рд┐рдЪрд╛рд▓рди рд╕рдордп рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдм рдХреБрдЫ рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдкрд░ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддрддреНрдХрд╛рд▓ рдХрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╢рд┐рдХрд╛рдпрдд рдирд╣реАрдВ рд╣реИред

рдкрд╣рд▓реЗ рддрддреНрд╡ рдЫрд╣ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╕рд░реНрджрд┐рдпреЛрдВ рдореЗрдВ рдмрдЪ рдЧрдП рд╣реИрдВред 9 рдореЙрдирд┐рдЯрд░ рдХреА рдЧрдИ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╡реАрдирддрдо рдбрд┐рдЬрд╝рд╛рдЗрди 5 рдорд╛рд░реНрдЪ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

Source: https://habr.com/ru/post/hi451154/


All Articles