์ด ์ฌ์ดํธ์์ ์์ํ์ธ์
์คํํฐ ์ผ๊ธฐ์ ๋ํ ์ ๋ณด๋ฅผ ๊ฒ์ํ๋ ๊ฐ์ฅ ํธ๋ฆฌํ ์ต์
์ PC817 ์ตํ ์ปคํ๋ฌ๋ฅผ ์ฌ์ฉํ ์ต์
์ด์์ต๋๋ค. ํ๋ก๋๋ณด๋์๋ ์ธ ๊ฐ์ ๋์ผํ ํ๋ก๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ ๋ชจ๋ ๊ฒ์ด 100x100mm ํฌ๊ธฐ์ ABS ํ๋ผ์คํฑ ์์์ ๋ค์ด ์์ต๋๋ค. ๊ด์ปคํ๋ฌ ์ฌ์ง ๋ฐ๋์ฒด ๋ฐธ๋ธ๊ฐ ์๋ ์๋ ์ฅ์น์ ์ฐ๊ฒฐํ๋ฉด ๋์ถ ์ ๋ฅ๊ฐ PC817์ ์ด ์ ๋๋ก ์ถฉ๋ถํ๋ฉฐ ์นด์ดํฐ๊ฐ ์๋ชป ํธ๋ฆฌ๊ฑฐ๋ฉ๋๋ค. ๊ทธ๋ฌํ ์ํฉ์ ๋ฐฐ์ ํ๊ธฐ ์ํด
์์ ๋ถ๋ถ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ธก๋ฉด 1์ธก๋ฉด 2ARDUINO MEGA 2560์ ์ฐ๊ฒฐ๋ ๊ฐ๋ฐ ๋ณด๋. ์ด๋ฅผ ์ํด ๋์ ์ด์ค ํ ์ปค๋ฅํฐ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ ํญ๋ง ๋ฐฉ์ ํฐ์น์คํฌ๋ฆฐ๊ณผ ์จ๋ ์ผ์๋ฅผ ๊ฐ์ถ 240x400 ํด์๋์ ํ๋ฉด์ด ์ ๋ณด ํ์ ์ฅ์น๋ก ์ฌ์ฉ๋ฉ๋๋ค. HX8352B. ๋ํ ์คํฌ๋ฆฐ ๋ณด๋์ ICSP์ ๋ํ ์ปค๋ฅํฐ๊ฐ ์ ๊ฑฐ๋๊ณ ๋ง์ดํฌ๋ก SD ์ฌ๋กฏ์ด ์ฌ์ฉ๋์ง ์์ต๋๋ค. ์ฌ์ค์ SPI ๋ฒ์ค์ ์ถฉ๋๋ก ์ธํด "๋ค์ดํฐ๋ธ" SD ์์ผ์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ํ๋์ ์นด๋์ ๊ฒฝ์ฐ 3,3V ์์ ๊ธฐ์ ์ธ ๊ฐ์ง ์ถ๋ ฅ ์ํ 74LVS125A๋ฅผ ๊ฐ์ถ ๋ฒํผ ์นฉ์ด ํฌํจ๋ ๋ณ๋์ ์นด๋ ๋ฆฌ๋๊ฐ ์ฌ์ฉ๋์์ต๋๋ค. ๊ฐํด๊ฐ ๋๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ๊ณณ์ด ๋ฐ๋ก ์ฌ๊ธฐ์๋ค. 01์ํ ๋ฒํผ์ด์ง๋ง E01-ML5DP0108 ๋๋ ์นด๋ ๋ฆฌ๋๊ฐ ์๋ํ์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๊ธ์์ SdFat๋ ๋ค๋ฅธ ์ฅ์น์์ ๋นํธํ์ฑ์ ๋ํ ๊ฒฝ๊ณ ๋ฅผ ํ์ธํ์ต๋๋ค. TXS01E์ ๋ ๋ฒจ ๋ณํ๊ธฐ๊ฐ ์ ๊ฑฐ๋๊ณ ์ ํผ๋ก ๊ต์ฒด๋์์ต๋๋ค. E01-ML5DP5๋ 4V ์ ํธ์ ๋ด์ฑ์ด ์์ง๋ง ๋์์ด ๋์ง ์์์ต๋๋ค. ์ค์ค๋ก์ค์ฝํ๋ฅผ ์ฌ์ฉํ์ฌ ์นด๋ ๋ฆฌ๋๊ธฐ๊ฐ ์ฐ๊ฒฐ๋์์ ๋ MISO ๋ผ์ธ์์ ์ ํธ ์์ค์ด ๊ฐ์ง๋์์ต๋๋ค. ๋ฉด๋ฐํ ์กฐ์ฌํ ๊ฒฐ๊ณผ 74LVS125A์ OE 5 ์ฑ๋ ํ์ฑํ ์ ํธ ์
๋ ฅ์ ๋จ์ํ ๊ณตํต ์์ด์ด์ ๋ฉ๋๋์์ผ๋ฉฐ ์ธ ๋ฒ์งธ ์ํ์ ๋ํด์๋ ๋งํ ์ ์๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค. ๋ฒํผ ์นฉ์ ์ ํธ์ ๊ณผ ์ง๋ ฌ๋ก ์ฐ๊ฒฐ๋ 3.3Kฮฉ ์ ํญ์ ์ฌ์ฉํ์ฌ 3,3V์์ 13V๊น์ง์ ๊ธฐ๋ณธ ๋ ๋ฒจ ๋ณํ๊ธฐ๋ก ์ฌ์ฉ๋์์ต๋๋ค. MISO ๋ผ์ธ์ ์ ์ธํ๊ณ . ์ถ๋ ฅ ํ๋จ ์ค์์น๋ ์๋ง๋ ์ ํธ๋ฅผ ์ ์ง ๋ ๋ฒจ๋ก ์ ๋ํ์ ๊ฒ์
๋๋ค. MISO ๋ผ์ธ์ ํ์ฑํ ์ ํธ๊ฐ ํ XNUMX์ด๋ผ๊ณ ํ๋จํ ํ ํธ๋์์ ๋ถ๋ฆฌ๋์ด๋ฉ๋9LVS74A CS ์ฅ์น ์ ํ ์
๋ ฅ ํ(125)๊ณผ ์ข
๋จ ์ ํญ ์ฌ์ด์ ์์ต๋๋ค. ์ด์ ๋ฉ๋ชจ๋ฆฌ ์นด๋์ ๋ํ ์ก์ธ์ค๊ฐ ์์ผ๋ฉด MISO ๋ฒํผ๊ฐ ๋นํ์ฑํ๋์ด ๋ค๋ฅธ ์ฅ์น์ ์๋์ ๋ฐฉํดํ์ง ์์ต๋๋ค.๊ฐ๋ฐ ๋ณด๋ ๋ค์ด์ด๊ทธ๋จ์์ ๊ธฐ ์๋ ์คDS3231์ ์ํํธ์จ์ด I2C ๋ฒ์ค(TWI)๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ก์ ์ฐ๊ฒฐํฉ๋๋ค.
์๋์ด๋
ธ IDE ํ๋ก๊ทธ๋จ// ์ค์: Adafruit_TFTLCD ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ตฌ์ฒด์ ์ผ๋ก ์ง์ ๋์ด์ผ ํฉ๋๋ค.
// TFT ์ด๋ ๋๋ ๋ธ๋ ์ดํฌ์์ ๋ณด๋์ฉ์ผ๋ก ๊ตฌ์ฑ๋์์ต๋๋ค.
// ์ค์ ์ ์ํด Adafruit_TFTLCD.h์ ๊ด๋ จ ์ค๋ช
์ ์ฐธ์กฐํ์ธ์.
//Open-Smart ํ ๋ฐ Catalex ํ ์์ฑ
//[์ด๋ฉ์ผ ๋ณดํธ]
//๊ฐ๊ฒ:
//
//๋ฐ๋ชจ ๊ธฐ๋ฅ: ๊ทธ๋ํฝ, ๋ฌธ์ ํ์
//์๋์ด๋
ธ IDE: 1.6.5
// ๋ณด๋: Arduino UNO R3, Arduino Mega2560, Arduino Leonardo
// ๋ณด๋: OPEN-SMART UNO R3 5V / 3.3V, Arduino UNO R3, Arduino Mega2560
//3.2์ธ์น TFT:
//
//์คํ ์ค๋งํธ UNO R3 5V / 3.3V:
//
#ํฌํจํ๋ค // ํต์ฌ ๊ทธ๋ํฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
//#ํฌํจํ๋ค // ํ๋์จ์ด ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
#ํฌํจํ๋ค
MCUFRIEND_kbv tft;
#include "SdFat.h" // SdFat ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ
Sd์ง๋ฐฉ SD;
Sdํ์ผ ํ์ผ;
ํ์ผ 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 ๋ธ๋ ์ดํฌ์์ ๋ณด๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ //
// 5V-3.3V ๋ ๋ฒจ ๋ณํ ํ๋ก๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
// ๋ฌผ๋ก 5V/3.3V ์ ์ ์ค์์น๊ฐ ์๋ OPEN-SMART UNO Black ๋ฒ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
// 3.3V๋ก ์ ํํ๋ฉด ๋ฉ๋๋ค.
// LCD์ ์ ์ด ํ์ ๋ชจ๋ ๋์งํธ ๋๋ ํ์ ํ ๋น๋ ์ ์์ต๋๋ค.
// ์๋ ๋ก๊ทธ ํ...๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์๋ ๋ก๊ทธ ํ์ ์ฌ์ฉํ์ฌ ๋ค์ ์์
์ ์ํํ ์ ์์ต๋๋ค.
//โโโโโโโโโโโโโ-|
// 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 ์ ์
#๋
น์ 0x07E0 ์ ์
#์ฌ์ด์ธ 0x07FF ์ ์
#๋ง์ ํ 0xF81F ์ ์
#๋
ธ๋์ 0xFFE0 ์ ์
#ํฐ์ 0xFFFF ์ ์
#GRAY 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));
////////////////////////////////////////////////// /////////////////
void setup (void) {
rtc.begin();
// ์๊ฐ์ ์ค์ ํ๋ ค๋ฉด ํ์ํ ์ค์ ์ฃผ์์ ํด์ ํ์ธ์.
// rtc.setDOW(6); // ์์ผ
// rtc.setTime(22, 04, 0); // 24์๊ฐ ํ์์ ์๊ฐ์
๋๋ค.
// rtc.setDate(4๋
5์ 2019์ผ); // ๋ ์ง, 29๋
2018์ XNUMX์ผ
Serial.begin (2000000);
//////// ํ๋ฉด ์ด๊ธฐํ
tft.begin(0x65);
tft.reset();
tft.setRotation(0);
tft.cp437(์ฐธ);
//////////////////์ด๋ฆ, ์ฅ๋น๋ถ์ํ, ๊ธฐ๊ด๋ช
์ถ๋ ฅ
tft.fillScreen(BLACK);
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);
๋ผ๋์ค.์์(); // ์์
์์ 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๊ฐ์ ํ์ดํ๋ฅผ ์ฝ๋๋ค.
// ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ ค๋ฉด ์ก์ ๊ธฐ ID๊ฐ 2xAABBCCDD2์ธ ํ์ดํ 0๋ฅผ ์ฝ๋๋ค.
radio.startListening(); // ์์ ๊ธฐ๋ฅผ ์ผ๊ณ ์ด๋ฆฐ ํ์ดํ ๋ฃ๊ธฐ๋ฅผ ์์ํฉ๋๋ค.
// radio.stopListening();
////////์๋น์ค ์ ๋ณด ์ถ๋ ฅ
tft.fillScreen(BLACK);
tft.setCursor(8, 0);
tft.setTextSize(1);
////////SD ์นด๋ ์ด๊ธฐํ ์์
Serial.println("์ด๊ธฐ SD ์นด๋");
tft.println("์ด๊ธฐ SD ์นด๋");
tft.setCursor(8, 10);
////////์นด๋ ์ด๊ธฐํ ์ค
if (!SD.begin(SD_CS_PIN)) {
Serial.println("์ด๊ธฐํ ์คํจ!");
tft.fillRect(8, 10, 85, 7, RED);
tft.setTextColor(BLACK);
tft.println("์ด๊ธฐ ์คํจ!");
๋ฐํ;
}
tft.setTextColor(WHITE);
Serial.println("์ด๊ธฐํ ์๋ฃ");
tft.println("์ด๊ธฐํ ์๋ฃ");
์ง์ฐ (2000);
////////์๊ฐ๊ณผ ๋ ์ง๋ฅผ ์ฝ์ด์ ๋ณ์์ ํ ๋น
t = rtc.getTime();
time_sec_prev = t.์ด;
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);
} ๋ค๋ฅธ {
myFile = SD.open(perv, FILE_WRITE); // 2.txt ํ์ผ์ด ์กด์ฌํ์ง ์์ผ๋ฉด ์์ฑ๋ฉ๋๋ค.
myFile.close();
tft.println(perv);
Serial.println(perv);
}
}
void loop (void) {
////////COM ํฌํธ ๋ชจ๋ํฐ์ ๋ก๊ทธ ์ถ๋ ฅ ์์ฒญ ์ ๋ฌด ํ์ธ
if (Serial.available() > 0) {
if (1 == Serial.read());
////////"1"์ด ์น์ธ๋๋ฉด ์ถ๋ ฅ์ด ๋ฉ๋๋ค.
ํ์ผ myFile = SD.open(perv);
// ํ์ผ์ด ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉด ํ์ผ์ ์๋๋ค.
if (myFile) {
๋์(myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
}
๋ค๋ฅธ {
Serial.println(".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.์ด;
}
////////๋ ์ง๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ์ ๋ ์ง๋ฅผ ํ์ํฉ๋๋ค.
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(๋ฐ์ดํฐ));
////////ํ์ํ ์ก์ ๊ธฐ ์ฃผ์๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ
if (ํ์ดํ == 1) {
////////XNUMX์ ๋๊ธฐํ ์ํ์ค๊ฐ โโ๊ฒฐ์ ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
//๋ฐ์ดํฐ ๋ธ๋ก์ ์์
if (๋ฐ์ดํฐ == 0000) {
RC = 0;
} ๋ค๋ฅธ {
rc++;
}
////////์นด์ดํฐ ๊ฐ์ ๊ธฐ๋กํ๊ณ 10๋ถ์ 100, XNUMX๋ถ์ XNUMX์๊ฐ ๋จ์๋ก ๊ณ์ฐ
if (rc == 1) {
leb_1 = ๋ฐ์ดํฐ / 3600.0;
}
if (rc == 2) {
leb_2 = ๋ฐ์ดํฐ / 3600.0;
}
if (rc == 3) {
leb_3 = ๋ฐ์ดํฐ / 3600.0;
}
if (rc == 4) {
leb_4 = ๋ฐ์ดํฐ / 3600.0;
}
}
}
r++;
k++; // ๊ทธ๋ฅ ์นด์ดํฐ
//////// ํน์ ์ฃผ๊ธฐ๋ก ๋ฐ์ดํฐ ์
๋ฐ์ดํธ
if ( r >= 6500) {
tft.setTextSize(2);
tft.fillRect(0, 41, 180, 64, GRAYD);
Serial.println("๋ ๋ฒ ๋ํค XNUMX์ธ");
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์ ๋ก๊ทธ์ ๋ฐ์ดํฐ๋ฅผ ์๋๋ค.
if ((t.min % 10 == 0) && ( t.sec == 0)) {
tft.setTextSize(1);
tft.setCursor(200, 10);
tft.setTextColor(BLACK);
////////.csv ํ์์ผ๋ก ๋ฌธ์์ด ์์ฑ
๋ฌธ์์ด dataString = ๋ฌธ์์ด (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, ๋
น์);
tft.println("SD OK");
Serial.println("SD ์ ์");
์ง์ฐ(900); // ์ง์ฐ, ๊ทธ๋ ์ง ์์ผ๋ฉด 13์ด๊ฐ ์ง๋ ๋๊น์ง XNUMX๊ฐ์ ๋์ผํ ํ๋
๊ฐ์ ๊ธฐ๋กํฉ๋๋ค.
} ๋ค๋ฅธ {
tft.fillRect(198, 8, 42, 10, RED);
tft.println("SD ERR");
Serial.println("SD ์ค๋ฅ");
}
}
}๋ฌธ์ ๋ณํ ํ๋ก๊ทธ๋จ/* ๋ฌ์์์ด ๊ธ๊ผด์ UTF-8์์ Windows-1251๋ก ๋ค์ ์ฝ๋ฉ */
๋ฌธ์์ด utf8rus(๋ฌธ์์ด ์์ค)
{
int i,k;
๋ฌธ์์ด ๋์;
๋ถํธ ์๋ ๋ฌธ์ n;
char m[2] = { '0', ' ' };
k = ์์ค.๊ธธ์ด(); ๋๋ = 0;
๋์ (i < k) {
n = ์์ค[i]; ๋++;
if (n >= 0xC0) {
์ค์์น (n) {
์ผ์ด์ค 0xD0: {
n = ์์ค[i]; ๋++;
if (n == 0x81) { n = 0xA8; ๋ถ์์ง๋ค; }
if (n >= 0x90 && n <= 0xBF) n = n + 0x30;//0x2F
ํ๋ค;
}
์ผ์ด์ค 0xD1: {
n = ์์ค[i]; ๋++;
if (n == 0x91) { n = 0xB8; ๋ถ์์ง๋ค; }
if (n >= 0x80 && n <= 0x8F) n = n + 0x70;//0x6F
ํ๋ค;
}
}
}
m[0] = n; ํ๊ฒ = ํ๊ฒ + ๋ฌธ์์ด(m);
}
๋ฐํ ๋์;
}Adafruit_GFX ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ํค๋ฆด์ด ์ถ๋ ฅ์ฉ ๋ฌธ์ ํธ๋์ค์ฝ๋ฉ ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ณธ ํ๋ก๊ทธ๋จ๊ณผ ๋์ผํ ํด๋์ ๋ฐฐ์น๋ฉ๋๋ค. ๋ํ Adafruit_GFX์ glcdfont.c ํ์ผ์ ๋ค๋ฅธ ๊ธ๊ผด๋ก ๋ฐ๊ฟ์ผ ํฉ๋๋ค.
์์ฝํ๋ฉด ์์คํ
์ด ๊ธฐ๋์ ๋ถ์ํ๊ณ ์ฅ๋น ์๋ ์๊ฐ์ ๋ชจ๋ํฐ๋งํ๋ ๊ฒ์ด ๋ ์ฌ์์ก์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ๋ธ๋ ๋๋ณด๋์ ์กฐ๋ฆฝ๋์ด ์์์๋ ๋ถ๊ตฌํ๊ณ ์์
์ ๋ํ ์ฆ๊ฐ์ ์ธ ๋ถ๋ง์ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์์๋ XNUMX๊ฐ์ ์ด์ ์๋ํ์ผ๋ฉฐ ๊ฒจ์ธ์๋ ์ด์ ๋จ์์ต๋๋ค.
์ถ์ฒ : habr.com