เบฅเบฐเบšเบปเบšเบเบฒเบ™เป„เบ”เป‰เบกเบฒเบ‚เปเป‰เบกเบนเบ™เบ›เบปเบเบ„เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ (เบ•เปเปˆ)

เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเปƒเบ™เป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ™เบตเป‰ เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.
เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบชเบฐเบ”เบงเบเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบ›เบตเบ” starter เป„เบ”เป‰เบซเบฑเบ™เบญเบญเบเป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบกเบต optocoupler PC817. เปเบœเบ™เบงเบฒเบ”เบงเบปเบ‡เบˆเบญเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เป„เบ”เป‰เบกเบฒเบ‚เปเป‰เบกเบนเบ™เบ›เบปเบเบ„เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ (เบ•เปเปˆ)เบเบฐเบ”เบฒเบ™เบกเบตเบชเบฒเบกเบงเบปเบ‡เบˆเบญเบ™เบ”เบฝเบงเบเบฑเบ™, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™เบเปˆเบญเบ‡เบžเบฒเบ”เบชเบฐเบ•เบดเบ ABS, เบ‚เบฐเบซเบ™เบฒเบ” 100x100 เบกเบก. เบฎเบนเบšเบžเบฒเบšเบ‚เบญเบ‡ optocouplersเบฅเบฐเบšเบปเบšเบเบฒเบ™เป„เบ”เป‰เบกเบฒเบ‚เปเป‰เบกเบนเบ™เบ›เบปเบเบ„เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ (เบ•เปเปˆ) เป€เบกเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบกเบตเบงเบฒเบง semiconductor, เบเบฐเปเบชเบฎเบปเปˆเบงเป„เบซเบผเบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเป€เบ›เบตเบ” PC817 เปเบฅเบฐ counter เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”. เป€เบžเบทเปˆเบญเบเบปเบเป€เบงเบฑเป‰เบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง เบญเบตเบเบญเบฑเบ™เปœเบถเปˆเบ‡เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบงเบปเบ‡เบˆเบญเบ™เบ‚เบญเบ‡ optocoupler LED เปเบฅเบฐเบ•เบปเบงเบŠเบตเป‰เบšเบญเบเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ LED. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, jumper J1 เบ–เบทเบเป€เบ›เบตเบ”เปเบฅเบฐ LED1 เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปเบกเปˆเบ™ soldered เปƒเบ™.
เบชเปˆเบงเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เป€เบฎเบฑเบ”เบขเบนเปˆ เบ‚เป‰เบฒเบ‡ 1เบฅเบฐเบšเบปเบšเบเบฒเบ™เป„เบ”เป‰เบกเบฒเบ‚เปเป‰เบกเบนเบ™เบ›เบปเบเบ„เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ (เบ•เปเปˆ)เบ‚เป‰เบฒเบ‡ 2เบฅเบฐเบšเบปเบšเบเบฒเบ™เป„เบ”เป‰เบกเบฒเบ‚เปเป‰เบกเบนเบ™เบ›เบปเบเบ„เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ (เบ•เปเปˆ)เบเบฐเบ”เบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš ARDUINO MEGA 2560. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰, เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบญเบ‡เปเบ–เบงเปเบกเปˆเบ™เปƒเบŠเป‰เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบ. เบซเบ™เป‰เบฒเบˆเปเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบฅเบฐเบญเบฝเบ” 240x400, เบกเบตเบซเบ™เป‰เบฒเบˆเปเบชเปเบฒเบœเบฑเบ”เบ•เป‰เบฒเบ™เบ—เบฒเบ™เปเบฅเบฐเป€เบŠเบฑเบ™เป€เบŠเบตเบญเบธเบ™เบซเบฐเบžเบนเบก, เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบญเบธเบ›เบฐเบเบญเบ™เบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™. HX8352B.เบฅเบฐเบšเบปเบšเบเบฒเบ™เป„เบ”เป‰เบกเบฒเบ‚เปเป‰เบกเบนเบ™เบ›เบปเบเบ„เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ (เบ•เปเปˆ) เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš ICSP เปƒเบ™เบเบฐเบ”เบฒเบ™เบซเบ™เป‰เบฒเบˆเปเป„เบ”เป‰เบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปเบฅเบฐเบŠเปˆเบญเบ‡เบชเบฝเบš micro SD เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. เบ„เบงเบฒเบกเบˆเบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเป€เบ•เบปเป‰เบฒเบชเบฝเบš SD "native" เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ‚เบฑเบ”เปเบเป‰เบ‡เบเปˆเบฝเบงเบเบฑเบšเบฅเบปเบ”เป€เบก SPI. เบชเปเบฒเบฅเบฑเบšเบšเบฑเบ”เปเบŸเบฅเบ”, เป€เบ„เบทเปˆเบญเบ‡เบญเปˆเบฒเบ™เบšเบฑเบ”เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เป€เบŠเบดเปˆเบ‡เบฅเบงเบกเบกเบต stabilizer 3,3V เปเบฅเบฐเบŠเบดเบš buffer เบ—เบตเปˆเบกเบตเบชเบฒเบกเบฅเบฑเบ”เบœเบปเบ™เบœเบฐเบฅเบดเบ” 74LVS125A. เบ™เบตเป‰เปเบกเปˆเบ™เบšเปˆเบญเบ™เบ—เบตเปˆ rake เป„เบ”เป‰เบฅเปเบ–เป‰เบฒเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒ. A buffer เบชเบฒเบกเบฅเบฑเบ”, เปเบ•เปˆ E01-ML01DP5 เบซเบผเบทเป€เบ„เบทเปˆเบญเบ‡เบญเปˆเบฒเบ™เบšเบฑเบ”เป€เบฎเบฑเบ”เบงเบฝเบ. เปƒเบ™เบ„เปเบฒเป€เบซเบฑเบ™เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”, SdFat เป„เบ”เป‰เป€เบซเบฑเบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบšเปเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เบญเบทเปˆเบ™เป†. เบ•เบปเบงเปเบ›เบ‡เบฅเบฐเบ”เบฑเบšเปƒเบ™ TXS0108E เป„เบ”เป‰เบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเปเบฅเบฐเปเบ—เบ™เบ—เบตเปˆเบ”เป‰เบงเบ jumpers, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ E01-ML01DP5 เบกเบตเบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบชเบฑเบ™เบเบฒเบ™ 5V - เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบŠเปˆเบงเบ. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ oscilloscope, เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบชเบฑเบ™เบเบฒเบ™เป„เบ”เป‰เบ–เบทเบเบเบงเบ”เบžเบปเบšเบขเบนเปˆเปƒเบ™เบชเบฒเบ MISO เป€เบกเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ„เบทเปˆเบญเบ‡เบญเปˆเบฒเบ™เบšเบฑเบ”. เป€เบกเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบขเปˆเบฒเบ‡เบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡, เบกเบฑเบ™เบžเบปเบšเบงเปˆเบฒเบชเบฑเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบ™ OE 4 เบŠเปˆเบญเบ‡เบ‚เบญเบ‡ 74LVS125A เป„เบ”เป‰เบ–เบทเบ soldered เบ‡เปˆเบฒเบเป†เบเบฑเบšเบชเบฒเบเบ—เบปเปˆเบงเป„เบ›เปเบฅเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบงเบปเป‰เบฒเป„เบ”เป‰เบเปˆเบฝเบงเบเบฑเบšเบฅเบฑเบ”เบ—เบตเบชเบฒเบก. เบŠเบดเบš buffer เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ›เบ‡เบฅเบฐเบ”เบฑเบš primitive เบˆเบฒเบ 5V เป€เบ›เบฑเบ™ 3.3V เป‚เบ”เบเปƒเบŠเป‰ 3,3 Kฮฉ resistors เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ›เบฑเบ™เบŠเบธเบ”เบเบฑเบšเบชเบฒเบเบชเบฑเบ™เบเบฒเบ™. เบเบปเบเป€เบงเบฑเป‰เบ™เบชเบฒเบ MISO. เบชเบฐเบงเบดเบ”เบฅเบธเปˆเบกเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ”เบถเบ‡เบ”เบนเบ”เบชเบฑเบ™เบเบฒเบ™เบเบฑเบšเบฅเบฐเบ”เบฑเบšเบซเบ™เป‰เบฒเบ”เบดเบ™. เป‚เบ”เบเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบชเบฑเบ™เบเบฒเบ™เบเบฒเบ™เป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบ‚เบญเบ‡เบชเบฒเบ MISO เปเบกเปˆเบ™ PIN 13, เบกเบฑเบ™เบ–เบทเบเบ•เบฑเบ”เบญเบญเบเบˆเบฒเบเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเปเบฅเบฐsolderedเบฅเบฐเบšเบปเบšเบเบฒเบ™เป„เบ”เป‰เบกเบฒเบ‚เปเป‰เบกเบนเบ™เบ›เบปเบเบ„เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ (เบ•เปเปˆ)เบฅเบฐเบซเบงเปˆเบฒเบ‡เบญเบธเบ›เบฐเบเบญเบ™ 9LVS74A CS เป€เบฅเบทเบญเบเบ‚เบฒเป€เบ‚เบปเป‰เบฒ (125) เปเบฅเบฐเบ•เบปเบงเบ•เป‰เบฒเบ™เบ—เบฒเบ™เบเบฒเบ™เบขเบธเบ”. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ–เป‰เบฒเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ”เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เบšเบฑเบŸเป€เบŸเบต MISO เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เปเบฅเบฐเบšเปเปˆเปเบŠเบเปเบŠเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™เบญเบทเปˆเบ™.เปเบœเบ™เบงเบฒเบ”เบเบฐเบ”เบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบฅเบฐเบšเบปเบšเบเบฒเบ™เป„เบ”เป‰เบกเบฒเบ‚เปเป‰เบกเบนเบ™เบ›เบปเบเบ„เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ (เบ•เปเปˆ)เบ•เบปเบงเบฎเบฑเบšเปƒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เป„เบ”เป‰เบกเบฒเบ‚เปเป‰เบกเบนเบ™เบ›เบปเบเบ„เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ (เบ•เปเปˆ)DS3231 เปƒเบŠเป‰เบŠเบญเบšเปเบง I2C bus (TWI) เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบกเบ‡.
เป‚เบ„เบ‡เบเบฒเบ™ Arduino IDE// เบชเบณเบ„เบฑเบ™: เบซเปเบชเบฐเปเบธเบ” Adafruit_TFTLCD เบ•เป‰เบญเบ‡เบกเบตเบชเบฐเป€เบžเบฒเบฐ
// เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡ Shield TFT เบซเบผเบท board BREAKout.
// เป€เบšเบดเปˆเบ‡เบ„เปเบฒเป€เบซเบฑเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เปƒเบ™ Adafruit_TFTLCD.h เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡.
// เป‚เบ”เบเบ—เบตเบก Open-Smart เปเบฅเบฐเบ—เบตเบก Catalex
//[email protected]
// เบฎเป‰เบฒเบ™: dx.com
// open-smart.aliexpress.com/store/1199788
// Demo Function: เบชเบฐเปเบ”เบ‡เบเบฒเบŸเบดเบ, เบ•เบปเบงเบญเบฑเบเบชเบญเบ™
// 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:
// 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;

เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบเบฒเบงโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฅเบปเบ‡โ€‹เบ™เบฒเบกโ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹;
float leb_1;
float leb_2;
float leb_3;
float leb_4;

uint8_t เบ—เปเปˆ;
int rc = 0;

uint8_t time_sec_prev;
uint8_t time_day_prev;

//************************************************** ****************/ /
// เบ–เป‰เบฒเบ—เปˆเบฒเบ™เปƒเบŠเป‰ OPEN-SMART TFT breakout board //
// เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบžเบตเปˆเบกเบงเบปเบ‡เบˆเบญเบ™เบเบฒเบ™เปเบ›เบ‡เบฅเบฐเบ”เบฑเบš 5V-3.3V.
// เปเบ™เปˆเบ™เบญเบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ OPEN-SMART UNO Black เบ—เบตเปˆเบกเบตเบชเบฐเบงเบดเบ”เป„เบŸ 5V / 3.3V,
// เบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™ 3.3V.
// pins เบ„เบงเบšเบ„เบธเบกเบชเปเบฒเบฅเบฑเบš LCD เบชเบฒเบกเบฒเบ”เบ–เบทเบเบกเบญเบšเบซเบกเบฒเบเปƒเบซเป‰เบ”เบดเบˆเบดเบ•เบญเบ™เบซเบผเบท
// pins analog ... เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเปƒเบŠเป‰ pins analog เบเป‰เบญเบ™เบงเปˆเบฒเบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒ
//โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”โ€”-|
// TFT Breakout - Arduino UNO / Mega2560 / OPEN-SMART UNO Black
// 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-bit เบ—เบปเปˆเบงเป„เบ›:
#เบเบณเบ™เบปเบ” BLACK 0x0000
#define BLUE 0x001F
#เบเบณเบ™เบปเบ” RED 0xF800
#define เบชเบตเบ‚เบฝเบง 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#เบเบณเบ™เบปเบ” YELLOW 0xFFE0
#เบเปเบฒเบ™เบปเบ”เบชเบตเบ‚เบฒเบง 0xFFFF
#define GREY 0x8C51
#เบเบณเบ™เบปเบ” GRAYD 0x39E7

// Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
// เบ–เป‰เบฒเปƒเบŠเป‰เป„เบชเป‰, เบชเบฒเบเบ„เบงเบšเบ„เบธเบกเปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ–เบทเบเปเบเป‰เป„เบ‚, เปเบฅเบฐ
// เบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ—เบตเปˆเบ‡เปˆเบฒเบเบเบงเปˆเบฒเบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเป„เบ”เป‰:
// Adafruit_TFTLCD tft;
uint16_t g_identifier;

String dataString;
//String numfileMonth = "1.txt" ;
char perv [] = { "2.txt"} ;
//String *numfileMonth="1.txt" (sizeof (numfileMonth));
///////////////////////////////////////////////// //////////////////

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ void (void) {

rtc.begin();

// เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ, uncomment เป€เบชเบฑเป‰เบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™
// 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(เบˆเบดเบ‡);
/////////////////// เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบŠเบทเปˆ, เบญเบธเบ›เบฐเบเบญเบ™เป€เบชเบตเบก, เบŠเบทเปˆเบญเบปเบ‡เบเบฒเบ™
tft.fillScreen(เบชเบตเบ”เบณ);
tft.setTextColor(WHITE);
tft.setTextSize(2);
tft.setCursor(8, 0);
tft.println("เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒ เปเบฅเบฐเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡");
tft.setCursor(30, 20);
tft.print(utf8rus("Constructor V.V." ));
tft.setCursor(40, 40);
tft.print(utf8rus("Turner 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 เบ—เปเปˆเบ—เบตเปˆเบกเบตเบ•เบปเบงเบฅเบฐเบšเบธ 1 เป€เบ„เบทเปˆเบญเบ‡เบชเบปเปˆเบ‡เบชเบฑเบ™เบเบฒเบ™ 0xAABBCCDD11, เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™
// เป€เบ›เบตเบ”เบ—เปเปˆ 2 เบ”เป‰เบงเบเบ•เบปเบงเบชเบปเปˆเบ‡ ID 2xAABBCCDD0 เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™
radio.startListening(); // เป€เบ›เบตเบ”เป€เบ„เบทเปˆเบญเบ‡เบฎเบฑเบš, เป€เบฅเบตเปˆเบกเบŸเบฑเบ‡เบ—เปเปˆเป€เบ›เบตเบ”
// radio.stopListening();
//////// เบœเบปเบ™เบญเบญเบเบกเบฒเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™
tft.fillScreen(เบชเบตเบ”เบณ);
tft.setCursor(8, 0);
tft.setTextSize(1);
//////// เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡ SD card
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;
//////// Forcibly output the date so as not to wait for the date to change for display
tft.setCursor(180, 0); // เบเปเบฒเบ™เบปเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบ•เบปเบงเบเบฐเบžเบดเบš
tft.fillRect(178, 0, 65, 7, เบชเบตเป€เบ—เบปเบฒ); // clearing the time output area
tft.setTextSize(1);
tft.print(rtc.getDateStr());
////////Output เบŠเบทเปˆเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบ„เบงเบšเบ„เบธเบก
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(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);
}
}

loop loop (เป‚เบกเบ„เบฐ) {
//////// เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบกเบตเบขเบนเปˆเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ—เบตเปˆเบˆเบฐเบญเบญเบเบšเบฑเบ™เบ—เบถเบเป„เบ›เบซเบฒ COM port monitor
เบ–เป‰เบฒ (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(WHITE);
//////// เบ–เป‰เบฒเป€เบงเบฅเบฒเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบฐเปเบ”เบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เป‚เบกเบ‡เปƒเบซเบกเปˆ
เบ–เป‰เบฒ (time_sec_prev != t.sec) {
tft.setCursor(120, 0); // เบเปเบฒเบ™เบปเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เบ•เบปเบงเบเบฐเบžเบดเบš
tft.fillRect(118, 0, 50, 7, เบชเบตเป€เบ—เบปเบฒ); // clearing the time output area
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)) {
//////// เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบฎเบฑเบš buffer เป€เบ•เบฑเบกเบซเบผเบทเบšเปเปˆ,
radio.read(&data, sizeof(data));
//////// เบ–เป‰เบฒเบ—เบตเปˆเบขเบนเปˆเป€เบ„เบทเปˆเบญเบ‡เบชเบปเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบกเปˆเบ™เบกเบตเบขเบนเปˆ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™
เบ–เป‰เบฒ (เบ—เปเปˆ == 1) {
//////// เบฅเปเบ–เป‰เบฒเบเบฒเบ™ synchronizing เบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡เบชเบนเบ™เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”
// เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ•เบฑเบ™เบ‚เปเป‰เบกเบนเบ™
เบ–เป‰เบฒ (เบ‚เปเป‰เบกเบนเบ™ == 0000) {
rc = 0;
} else {
rc++;
}
//////// เบเบฒเบ™โ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เบเบฒเบ™โ€‹เบ™เบฑเบšโ€‹เบ„เปˆเบฒโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ„เบดเบ”โ€‹เป„เบฅเปˆโ€‹เบžเบงเบโ€‹เป€เบ‚เบปเบฒโ€‹เปƒเบ™ 10th เปเบฅเบฐ 100ths เบ‚เบญเบ‡โ€‹เบŠเบปเปˆเบงโ€‹เป‚เบกเบ‡
เบ–เป‰เบฒ (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++; // เบžเบฝเบ‡เปเบ•เปˆ counter
//////// เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเป„เบฅเบเบฐเป€เบงเบฅเบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™
เบ–เป‰เบฒ (r >= 6500) {
tft.setTextSize(2);
tft.fillRect(0, 41, 180, 64, เบชเบตเป€เบ—เบปเบฒ);
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 เบ™เบฒเบ—เบต.
เบ–เป‰เบฒ ((t.min %10 == 0) && ( t.sec == 0)) {
tft.setTextSize(1);
tft.setCursor(200, 10);
tft.setTextColor(เบชเบตเบ”เบณ);
///////// เบเบฒเบ™เบชเป‰เบฒเบ‡เบชเบฐเบ•เบฃเบดเบ‡เปƒเบ™เบฎเบนเบšเปเบšเบš .csv
String dataString = String (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");
}
}
}เป‚เบ„เบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เบ•เบปเบงเบญเบฑเบเบชเบญเบ™/* Recode เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบžเบฒเบชเบฒเบฅเบฑเบ”เป€เบŠเบเบˆเบฒเบ UTF-8 เป€เบ›เบฑเบ™ Windows-1251 */

String utf8rus(เปเบซเบผเปˆเบ‡เบชเบฐเบ•เบฃเบดเบ‡)
{
int i,k;
String เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบ;
unsigned 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; target = target + String(m);
}
เป€เบ›เบปเป‰เบฒเปเบฒเบเบเบฑเบšเบ„เบทเบ™;
เป‚เบ›เบฃเปเบเบกเบเบฒเบ™เบ›เปˆเบฝเบ™เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบชเบณเบฅเบฑเบšเบœเบปเบ™เบœเบฐเบฅเบดเบ” Cyrillic เป‚เบ”เบเปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” Adafruit_GFX เปเบกเปˆเบ™เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเบขเบนเปˆเปƒเบ™เป‚เบŸเบ™เป€เบ”เบตเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป‚เบ›เบฃเปเบเบฃเบกเบซเบผเบฑเบ. เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ›เปˆเบฝเบ™เป„เบŸเบฅเปŒ glcdfont.c เปƒเบ™ Adafruit_GFX เบ”เป‰เบงเบเบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบกเบฑเบ™เป€เบ›เบฑเบ™ เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบš Russification เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเป„เบ”เป‰เบ‡เปˆเบฒเบเปƒเบ™เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”.
เป€เบžเบทเปˆเบญเบชเบฐเบซเบผเบธเบš, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเป€เบงเบปเป‰เบฒเบงเปˆเบฒเบฅเบฐเบšเบปเบšเบกเบตเบŠเบตเบงเบดเบ”เบขเบนเปˆเบ•เบฒเบกเบ„เบงเบฒเบกเบ„เบฒเบ”เบซเบงเบฑเบ‡, เบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเป€เบงเบฅเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบเบญเบšเบขเบนเปˆเปƒเบ™ breadboards, เบšเปเปˆเบกเบตเบเบฒเบ™เบฎเป‰เบญเบ‡เบ—เบธเบเบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เบเปˆเบฝเบงเบเบฑเบšเบงเบฝเบเบ‡เบฒเบ™. เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เปเบฒเบญเบดเบ”เป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบเบซเบผเบฒเบเบเบงเปˆเบฒเบซเบปเบเป€เบ”เบทเบญเบ™เปเบฅเบฐเป„เบ”เป‰เบฅเบญเบ”เบŠเบตเบงเบดเบ”เบˆเบฒเบเบฅเบฐเบ”เบนเบซเบ™เบฒเบง. เบเบฒเบ™เบญเบญเบเปเบšเบšเบซเบฅเป‰เบฒเบชเบธเบ” เบกเบฑเบ™โ€‹เป„เบ”เป‰โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบš 9 เบซเบ™เปˆเบงเบโ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบ™เบฑเบšโ€‹เบ•เบฑเป‰เบ‡โ€‹เปเบ•เปˆโ€‹เบงเบฑเบ™โ€‹เบ—เบต 5 เป€เบ”เบทเบญเบ™โ€‹เบกเบตโ€‹เบ™เบฒโ€‹เปเบฅเบฐโ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบฅเบปเบ‡โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹เบขเปˆเบฒเบ‡โ€‹เป€เบ›เบฑเบ™โ€‹เบ—เบฒเบ‡โ€‹เบเบฒเบ™โ€‹เป‚เบ”เบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบกเบฑเบ™โ€‹.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™