#include <RTClib.h>
#include <SoftwareSerial.h>
#include <Wire.h>
RTC_DS1307 RTC;
// Массив со словами
char* myNumeral[]={"\132\105\122\117", // ноль - 0 (zero)
"\117\116\105", //одна - 1 (one)
"\124\127\117", //две - 2 (two)
"\124\110\122\105\105", //три - 3 (three)
"\106\117\125\122", //четыре - 4 (four)
"\106\111\126\105", //пять - 5 (five)
"\123\111\130", //шесть - 6 (six)
"\123\105\126\105\116", //семь - 7 (seven)
"\105\111\107\110\124", //восемь - 8 (eight)
"\116\111\116\105", //девять - 9 (nine)
"\124\105\116", // десять - 10 (ten)
"\105\114\105\126\105\116", //одиннадцать - 11 (eleven)
"\124\127\105\114\126\105", // двенадцать - 12 (twelve)
"\124\110\111\122\124\105\105\116", //тринадцать - 13 (thirteen)
"\106\117\125\122\124\105\105\116", //четырнадцать - 14 (fourteen)
"\106\111\106\124\105\105\116", // пятнадцать - 15 (fifteen)
"\123\111\130\124\105\105\116", //шестнадцать - 16 (sixteen)
"\123\105\126\105\116\124\105\105\116", // семнадцать - 17 (seventeen)
"\105\111\107\110\124\105\105\116", //восемнадцать - 18 (eighteen)
"\116\111\116\105\124\105\105\116", //девятнадцать - 19 (nineteen)
"\124\127\105\116\124\131", // двадцать - 20 (twenty)
"\124\110\111\122\124\131", // тридцать - 21 (thirty)
"\106\117\122\124\131", //сорок - 22 (forty)
"\106\111\106\124\131", //пятьдесят - 23 (fifty)
"\117\116\105", // один - 24 (one)
"\124\127\117", // два - 25 (two)
"\117\140\103\114\117\103\113", // часов - 26 (0'CLOCK)
"\227\200\221", // час - 27
"\227\200\221\200", // часа - 28
"\214\210\215\223\222", // минут - 29
"\214\210\215\223\222\200", // минута - 30
"\115\111\116\125\124\105\123", // минуты - 31 (minutes)
"\115\111\116", // мин - 32 (min)
"\115\117\116\104\101\131", // понедельник - 33 (monday)
"\124\125\105\123\104\101\131", // вторник - 34 (tuesday)
"\127\105\104\116\105\123\104\101\131", // среда - 35 (wednesday)
"\124\110\125\122\123\104\101\131", // четверг - 36 (thursday)
"\106\122\111\104\101\131", //пятница - 37 (friday)
"\123\101\124\125\122\104\101\131", // суббота - 38 (saturday)
"\123\125\116\104\101\131", // воскресенье - 39 (sunday)
"\112\101\116", // января - 40 (jan)
"\106\105\102", // февраля - 41 (feb)
"\115\101\122", // марта - 42 (mar)
"\101\120\122", // апреля - 43 (apr)
"\115\101\131", // мая - 44 (may)
"\112\125\116", // июня - 45 (jun)
"\112\125\114", // июля - 46 (jul)
"\101\125\107", // августа - 47 (aug)
"\123\105\120", // сентября - 48 (sep)
"\117\103\124", // октября - 49(oct)
"\116\117\126", // ноября - 50 (nov)
"\104\105\103", // декабря - 51 (dec)
"\131\105\101\122" // год - 52 (year)
};
String stringOne, stringTwo, stringThree, stringFour, stringFive, stringSix, stringHour, stringMin,
stringHourd,stringHourdd, stringMind,stringMindd, stringSecd, stringSecdd, stringPerd,
stringDaty, stringVtor, stringdday,stringDatyd, stringddayy, stringdmonth, stringdmonthh, stringGod, stringGodn; // эту фигню объявил для сборки времени словами из массива
SoftwareSerial mySerial(11, 10); // RX, TX
const int buttonPin = 2; // на второй вывод повесил кнопку выбора варианта отображения времени
const int buttonChplus = 3; // на третий вывод повесил кнопку коррентировки час+
const int buttonChminus = 4; // на четвертый вывод повесил кнопку коррентировки час-
const int buttonMinplus = 5; // на пятый вывод повесил кнопку коррентировки минуты+
const int buttonMinminus = 6; // на шестой вывод повесил кнопку коррентировки минуты-
const int buttonSeknol = 7; // на седьмой вывод повесил кнопку коррентировки секунды в ноль
const int buttonDispleysbros = 8; // на восьмой вывод повесил кнопку сброса дисплея
const int buttonCorrHour = 12; // на двенадцатом выводе переключатель корректировки час минута секунда
const int buttonCorrDay = 9; // на двенадцатом выводе переключатель корректировки дней месяца года
int den, mec, god, dday,agod,ygod,mgod; // для вычисления дня недели
int yar, mesyac, denec, chas, minuta, sekunda; // для коррентировки
int korrektwrem; // коррекция ошибки часов реального времени
void setup()
{
// Инициализируем последовательный интерфейс и ждем открытия порта:
Serial.begin(9600);
while (!Serial)
{
; // ожидаем подключения к последовательному порту. Необходимо только для Leonardo
}
Serial.println("Goodnight moon!");
mySerial.begin(9600);
{
Serial.begin(57600);
Wire.begin();
RTC.begin();
mySerial.write(0x1B); //_________________________Первый уровень яркости
mySerial.write(0x2A);
mySerial.write(0x01);
//RTC.adjust(DateTime(2018, 2, 5, 19, 16, 0)); // задаём год/ месяц/ дата/ часы/ минуты/ секунды
}
{
pinMode(buttonPin, INPUT_PULLUP); // вывод этот объявим входом для варианта отображения впемени
pinMode(buttonChplus, INPUT_PULLUP); // и этот вывод объявим входом для корректироки час +
pinMode(buttonChminus, INPUT_PULLUP); // и этот вывод объявим входом для корректировки час -
pinMode(buttonMinplus, INPUT_PULLUP); // и этот вывод объявим входом для корректировки минута +
pinMode(buttonMinminus, INPUT_PULLUP); // и этот вывод объявим входом для корректировки минута -
pinMode(buttonSeknol, INPUT_PULLUP); // и этот вывод объявим входом для корректировки секунда в 0
pinMode(buttonDispleysbros, INPUT_PULLUP); // и этот вывод объявим входом для сброса дисплея
pinMode(buttonCorrHour, INPUT_PULLUP); // и этот вывод объявим входом для полодения тумблера коррекция времени часминсек
pinMode(buttonCorrDay, INPUT_PULLUP); // и этот вывод объявим входом для полодения тумблера коррекция времени деньмесяцгод
}
}
void loop() // run over and over
{
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
// mySerial.print("\f"); // для тестирования
DateTime now = RTC.now();
{
yar = now.year(); // присваиваем переменным значения года
mesyac = now.month(); // месяца
denec = now.day(); // дня
chas = now.hour(); // часа
minuta = now.minute(); // минуты
sekunda = now.second(); // и секунды
}
int buttonStatehour = digitalRead(buttonCorrHour); // считываем состояние тумблера корректировки часминсек
if (buttonStatehour == LOW) // если низкая, корректируем время часминсек
{int buttonStatehp = digitalRead(buttonChplus); //настройка времени кнопками + час
if (buttonStatehp == LOW){
chas = chas + 1;
RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda));
delay(50);
}
int buttonStatehm = digitalRead(buttonChminus); //настройка времени кнопками - час
if (buttonStatehm == LOW){
chas = chas - 1;
RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda));
delay(50);
}
int buttonStatemp = digitalRead(buttonMinplus); //настройка времени кнопками + минуты
if (buttonStatemp == LOW){
minuta = minuta + 1;
RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda));
delay(50);
}
int buttonStatemm = digitalRead(buttonMinminus); //настройка времени кнопками - минуты
if (buttonStatemm == LOW){
minuta = minuta - 1;
RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda));
delay(50);
}
int buttonStatesn = digitalRead(buttonSeknol); //настройка времени кнопками секунда в ноль
if (buttonStatesn == LOW){
sekunda = 0;
RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda));
delay(50);
}
int buttonStateds = digitalRead(buttonDispleysbros); //сбросить дисплей
if (buttonStateds == LOW){
mySerial.print("\f");
delay(50);
}
}
int buttonStateday = digitalRead(buttonCorrDay); // считываем состояние тумблера корректировки деньмесяцгод
if (buttonStateday == LOW) // если низкая, можно корректировать время деньмесяцгод
{
int buttonStatehp = digitalRead(buttonChplus); //настройка времени кнопками + год
if (buttonStatehp == LOW){
yar = yar + 1;
RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda));
delay(50);
}
int buttonStatehm = digitalRead(buttonChminus); //настройка времени кнопками - год
if (buttonStatehm == LOW){
yar = yar - 1;
RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda));
delay(50);
}
int buttonStatemp = digitalRead(buttonMinplus); //настройка времени кнопками + день
if (buttonStatemp == LOW){
denec = denec + 1;
RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda));
delay(50);
}
int buttonStatemm = digitalRead(buttonMinminus); //настройка времени кнопками - день
if (buttonStatemm == LOW){
denec = denec - 1;
RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda));
delay(50);
}
int buttonStatesn = digitalRead(buttonSeknol); //настройка времени кнопками + месяц
if (buttonStatesn == LOW){
mesyac = mesyac + 1;
RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda));
delay(50);
}
int buttonStateds = digitalRead(buttonDispleysbros); //сбросить дисплей
if (buttonStateds == LOW){
mySerial.print("\f");
delay(50);
}
}
if (chas == 19 && minuta == 03 && sekunda == 30 && korrektwrem == 0 ) // корректировка часов реального времени
{
sekunda = sekunda - 7; korrektwrem = korrektwrem + 1 ;RTC.adjust(DateTime(yar, mesyac, denec, chas, minuta, sekunda)); // на 7 секунд
};
if (chas == 19 && minuta == 03 && sekunda == 59 )
{
korrektwrem = 0;
}
int buttonState = digitalRead(buttonPin); // считываем состояние кнопки
if (buttonState == HIGH) { // если высокая, время словами - иначе вся информация
switch (now.hour()) { //собираем первую строку
case 0: stringOne = myNumeral[0]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " "; break;
case 1: stringOne = myNumeral[24]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 3: stringOne = myNumeral[3]; stringThree = myNumeral[28]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 4: stringOne = myNumeral[4]; stringThree = myNumeral[28]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 5: stringOne = myNumeral[5]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 6: stringOne = myNumeral[6]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 7: stringOne = myNumeral[7]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 8: stringOne = myNumeral[8]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 9: stringOne = myNumeral[9]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 10: stringOne = myNumeral[10]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 11: stringOne = myNumeral[11]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 12: stringOne = myNumeral[12]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 13: stringOne = myNumeral[13]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 14: stringOne = myNumeral[14]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 15: stringOne = myNumeral[15]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 16: stringOne = myNumeral[16]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 17: stringOne = myNumeral[17]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 18: stringOne = myNumeral[18]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 19: stringOne = myNumeral[19]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 20: stringOne = myNumeral[20]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringThree + " ";break;
case 21: stringOne = myNumeral[20]; stringTwo = myNumeral[1]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringTwo + " " + stringThree + " ";break;
case 22: stringOne = myNumeral[20]; stringTwo = myNumeral[2]; stringThree = myNumeral[26]; stringHour = " " + stringOne + " " + stringTwo + " " + stringThree + " ";break;
case 23: stringOne = myNumeral[20]; stringTwo = myNumeral[3]; stringThree = myNumeral[26]; stringHour = "" + stringOne + "" + stringTwo + "" + stringThree + "";break;
}
switch (now.minute()) { // собираем вторую строку
case 0: stringFour = myNumeral[0]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 1: stringFour = myNumeral[1]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 2: stringFour = myNumeral[2]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 3: stringFour = myNumeral[3]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 4: stringFour = myNumeral[4]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 5: stringFour = myNumeral[5]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 6: stringFour = myNumeral[6]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 7: stringFour = myNumeral[7]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 8: stringFour = myNumeral[8]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 9: stringFour = myNumeral[9]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 10: stringFour = myNumeral[10]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 11: stringFour = myNumeral[11]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 12: stringFour = myNumeral[12]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 13: stringFour = myNumeral[13]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 14: stringFour = myNumeral[14]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 15: stringFour = myNumeral[15]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 16: stringFour = myNumeral[16]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 17: stringFour = myNumeral[17]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 18: stringFour = myNumeral[18]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 19: stringFour = myNumeral[19]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 20: stringFour = myNumeral[20]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 21: stringFour = myNumeral[20]; stringFive = myNumeral[1];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break;
case 22: stringFour = myNumeral[20]; stringFive = myNumeral[2];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 23: stringFour = myNumeral[20]; stringFive = myNumeral[3];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 24: stringFour = myNumeral[20]; stringFive = myNumeral[4];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 25: stringFour = myNumeral[20]; stringFive = myNumeral[5];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 26: stringFour = myNumeral[20]; stringFive = myNumeral[6];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break;
case 27: stringFour = myNumeral[20]; stringFive = myNumeral[7];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 28: stringFour = myNumeral[20]; stringFive = myNumeral[8];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 29: stringFour = myNumeral[20]; stringFive = myNumeral[9];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 30: stringFour = myNumeral[21]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 31: stringFour = myNumeral[21]; stringFive = myNumeral[1];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix; break;
case 32: stringFour = myNumeral[21]; stringFive = myNumeral[2];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 33: stringFour = myNumeral[21]; stringFive = myNumeral[3];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 34: stringFour = myNumeral[21]; stringFive = myNumeral[4];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 35: stringFour = myNumeral[21]; stringFive = myNumeral[5];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 36: stringFour = myNumeral[21]; stringFive = myNumeral[6];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break;
case 37: stringFour = myNumeral[21]; stringFive = myNumeral[7];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 38: stringFour = myNumeral[21]; stringFive = myNumeral[8];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 39: stringFour = myNumeral[21]; stringFive = myNumeral[9];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 40: stringFour = myNumeral[22]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 41: stringFour = myNumeral[22]; stringFive = myNumeral[1];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 42: stringFour = myNumeral[22]; stringFive = myNumeral[2];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 43: stringFour = myNumeral[22]; stringFive = myNumeral[3];stringSix = myNumeral[31]; stringMin = "\n" + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 44: stringFour = myNumeral[22]; stringFive = myNumeral[4];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 45: stringFour = myNumeral[22]; stringFive = myNumeral[5];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 46: stringFour = myNumeral[22]; stringFive = myNumeral[6];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 47: stringFour = myNumeral[22]; stringFive = myNumeral[7];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 48: stringFour = myNumeral[22]; stringFive = myNumeral[8];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 49: stringFour = myNumeral[22]; stringFive = myNumeral[9];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 50: stringFour = myNumeral[23]; stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringSix + " "; break;
case 51: stringFour = myNumeral[23]; stringFive = myNumeral[1];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 52: stringFour = myNumeral[23]; stringFive = myNumeral[2];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break;
case 53: stringFour = myNumeral[23]; stringFive = myNumeral[3];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break;
case 54: stringFour = myNumeral[23]; stringFive = myNumeral[4];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break;
case 55: stringFour = myNumeral[23]; stringFive = myNumeral[5];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break;
case 56: stringFour = myNumeral[23]; stringFive = myNumeral[6];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix + " "; break;
case 57: stringFour = myNumeral[23]; stringFive = myNumeral[7];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break;
case 58: stringFour = myNumeral[23]; stringFive = myNumeral[8];stringSix = myNumeral[32]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break;
case 59: stringFour = myNumeral[23]; stringFive = myNumeral[9];stringSix = myNumeral[31]; stringMin = "\n " + stringFour + " " + stringFive + " " + stringSix; break;
}
mySerial.println(stringHour); //печать первой строки
mySerial.print(stringMin); // печать второй строки
delay(500);
}
else {
den = now.day();
mec = now.month();
god = now.year();
agod = (14 - mec) / 12;
ygod = god - agod;
mgod = mec + 12 * agod - 2;
dday = ( den + ygod + (ygod / 4) - ( ygod / 100 ) + (ygod / 400 ) + (31 * mgod) / 12) %7; // вычисление дня недели
//Serial.print(dday);
stringHourdd = now.hour(); stringMindd = (now.minute());stringSecdd = now.second(), stringDatyd = now.day(), stringGod = now.year(), stringGodn = myNumeral[52] ;
switch (dday) { // блок имени дня недели
case 0: stringdday = stringddayy + " "; stringddayy =myNumeral[39]; break;
case 1: stringdday = stringddayy + " "; stringddayy =myNumeral[33]; break;
case 2: stringdday = stringddayy + " "; stringddayy =myNumeral[34]; break;
case 3: stringdday = stringddayy + " "; stringddayy = myNumeral[35]; break;
case 4: stringdday = stringddayy + " "; stringddayy = myNumeral[36]; break;
case 5: stringdday = stringddayy + " "; stringddayy = myNumeral[37]; break;
case 6: stringdday = stringddayy + " "; stringddayy = myNumeral[38]; break;
}
switch (now.month()) { // блок имени месяца
case 1: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[40]; break;
case 2: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[41]; break;
case 3: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[42]; break;
case 4: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[43]; break;
case 5: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[44]; break;
case 6: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[45]; break;
case 7: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[46]; break;
case 8: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[47]; break;
case 9: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[48]; break;
case 10: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[49]; break;
case 11: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[50]; break;
case 12: stringdmonth = stringdmonthh + " "; stringdmonthh = myNumeral[51]; break;
}
if (now.hour() < 10) // это нолики перед часами до 10
{
stringHourd = '0' + stringHourdd;
}
else
{
stringHourd = stringHourdd;
}
if (now.minute() < 10) // это нолики перед минутами до 10
{
stringMind = '0' + stringMindd;
}
else
{
stringMind = stringMindd;
}
if (now.second() < 10) // это нолики перед секундами до 10
{
stringSecd = '0' + stringSecdd;
}
else
{
stringSecd = stringSecdd;
}
if (now.day() < 10) // это нолики перед датой до 10
{
stringDaty = '0' + stringDatyd;
}
else
{
stringDaty = stringDatyd;
}
stringPerd = stringHourd + ':' + stringMind + ':' + stringSecd + " " + stringdday; // собираем первую строку
stringVtor = "\r\n" + stringDaty + " " + stringdmonth + stringGod + " " + stringGodn; // собираем вторую строку
mySerial.println(stringPerd); // печатаем первую строку
mySerial.print(stringVtor); // а это вторую
delay(100);
}
}