Вс дек 11, 2022 15:04:17
Скажите пожалуйста, что Вы использовали на фальшпанель? Какой светофильтр или тонировку?
Вс дек 11, 2022 18:01:26
Скажите пожалуйста, что Вы использовали на фальшпанель? Какой светофильтр или тонировку?
Вс дек 11, 2022 19:25:52
И было бы неплохо реализовать программное включение-отключение почасового звука в настройках.
//=============== Бить куранты (chime) каждый час=======================
// if(hour>=CHIME_START&&hour<CHIME_END&&minute==0&&second==0&&secFr==0) playChime(); showString(32, " ghbdtn Dfy.if ");
//---------- Инициализируем переменные-------------------------------------------------------------------------------
OneWire oneWire(ONE_WIRE_PIN);
bool alarme=false; // флаг включенного будильника Нужен для отображения разного стиля точек на бигклоке)))
int dx=0; // начальные координаты на светодиодной матрице
int dy=0; // --//--
int alarmCnt=0; // 0 - не воспроизводим мелодию звонка. если больше "0" - то это количество проиграшей мелодии
int h1,h0,m1,m0,s1,s0,secFr,lastSec=1,lastMin=0; // h1 - десятки часов, h0 - еденицы часов и так далее, secFr- минутный цикл,
int d1, d0, mn1, mn0, y1, y0, dw, lastDay=-1; // d1 - десятки дней, d0 - еденицы дней и так далее...
int lasth1, lasth0 ,lastm1, lastm0 ,lasts1 , lasts0 ;
int mode, prevMode; // моде - режим вывода на экран, превмоде - предыдущий режим
int stx=1, sty=1; // напавление смещения для скачущего дисплея
int st=1; // направление смещения экранов -1 или +1
int disp, prevDisp; // номер текущего дисплея и предыдущего дисплея
int kuku // для пиканья каждый час
void eeprom () {
if (EEPROM.read(INIT_ADDR) != INIT_KEY) { // первый запуск
EEPROM.write(INIT_ADDR, INIT_KEY); // записали ключ
int brightSet = 16; // яркость экрана 0-15, 16-автоматическая рег., 17-день/ночь
int mode = 0; // моде - режим вывода на экран
int kuku=0; // кукушка каждый час =0 выключена
EEPROM.update(0, brightSet); // записали по адресу 0
EEPROM.update(1, mode); // записали по адресу 1
EEPROM.update(2, kuku); // записали по адресу 2
}
switch(setMode){ // Выводим на экран надпись в соответствии с режимом
case 1: showString(1, "Dhtvz"); break; // Печатаем "Время";
case 2: showString(1, "Lfnf"); break; // Печатаем "Дата";
case 3: showString(0, "Ytltkz"); break; // Печатаем "Неделя";
case 4: showString(0, "<elbkmybr"); break; // Печатаем "Будильник";
case 5: showString(0, "Zhrjcnm"); break; // Печатаем "Яркость";
case 6: showString(0, "rereirf"); break; // Печатаем "кукушка";
if(key == 3) { //
playSound(AUDIO_PIN,1500,60); //
switch(setMode){ //
case 1: setUpTime(); break; //
case 2: setUpData(); break; //
case 3: setUpDoW(); break; //
case 4: setUpAlarm(); break; //
case 5:brightDisp() ; break; //
default:setkuku() ; break;
}
void setkuku(){ //
int i; //
now=millis(); // сбарсываем переменную счета таймера в (миллис)
while(millis()-now<timerMenu){ // запускаем таймер
clrAll(); //
i=((millis()-now)/350%2); // создаем переменную которая меняет значение с периодом 3 Гц.
klav(); // Опрашиваем клавиши 0- не нажаты, 1-3 клавиши нажаты
if(key==1){ //
playExit(); return; //выход
} //
if(key==2){ // вкл куку
kuku=1; //
} //
if(key==3){ // выкл куку
kuku=0; //
} //
if(kuku==0){ //
showString(0, "dsrk re"); // выводим "выкл ку"
}
if(kuku > 0){ //
showString(0, "drk re"); // выводим "вкл ку"
EEPROM.update(3, kuku);
refreshAll(); //
}
playExit(); //
}
Вс дек 11, 2022 19:31:38
Вс дек 11, 2022 19:36:44
Ммм, а не подскажите, где примерно можно смотреть скорость анимации на больших часах, чтобы цифры немного быстрее скользили?
if (m0 != lastm0)
for (int shag = 0; shag < 10; shag++ ) { // для того чтобы отрисовать цифру состаящую из 12 точек (или шагов как правильно?)
showDigit( m0 * 10 + shag, 25, dig6x8m); // dig6x8m - указатель на масив данных (смотрим вкладку "fonts.h")
showDigit(lastm1, 18, dig6x8);
showDigit(lasth0, 8, dig6x8);
if (lasth1 > 0) showDigit(lasth1, lasth1 == 2 ? 1 : 2, dig6x8);
refreshAll();
delay(90); // скорость смены цифры
}
Вс дек 11, 2022 19:53:35
Ммм, а не подскажите, где примерно можно смотреть скорость анимации на больших часах, чтобы цифры немного быстрее скользили?
if (m0 != lastm0)
for (int shag = 0; shag < 10; shag++ ) { // для того чтобы отрисовать цифру состаящую из 12 точек (или шагов как правильно?)
showDigit( m0 * 10 + shag, 25, dig6x8m); // dig6x8m - указатель на масив данных (смотрим вкладку "fonts.h")
showDigit(lastm1, 18, dig6x8);
showDigit(lasth0, 8, dig6x8);
if (lasth1 > 0) showDigit(lasth1, lasth1 == 2 ? 1 : 2, dig6x8);
refreshAll();
delay(90); // скорость смены цифры
}
void setkuku(){ //
int i; //
now=millis(); // сбарсываем переменную счета таймера в (миллис)
while(millis()-now<timerMenu){ // запускаем таймер
clrAll(); //
i=((millis()-now)/350%2); // создаем переменную которая меняет значение с периодом 3 Гц.
klav(); // Опрашиваем клавиши 0- не нажаты, 1-3 клавиши нажаты
if(key==1){ //
playExit(); return; //выход
} //
if(key==2){ //
kuku=1; //
showString(8, "Drk"); // ВКЛ
} //
if(key==3){ //
kuku=0; //
showString(8, "Dsrk"); // ВЫКЛ
} //
//
EEPROM.update(3, kuku);
refreshAll(); //
}
playExit(); //
}
Вс дек 11, 2022 20:57:54
EEPROM.update(3, kuku); //
}
playExit();
refreshAll(); //
}
Вс дек 11, 2022 21:07:48
EEPROM.update(3, kuku); //
}
playExit();
refreshAll(); //
}
Пн дек 12, 2022 17:47:56
Увы, нет, уже пробовал
Пн дек 12, 2022 20:02:23
Пн дек 12, 2022 20:12:23
Пн дек 12, 2022 20:26:38
Пн дек 12, 2022 21:10:18
//=============== Корректировка времени RTC модуля - в полночь на -5 secs============
if(hour==23&&minute==0&&second==0&&lastDay!=day){ // Если наступил новый день, то
lastDay=day; // сбрасываем переменную ластдей что бы больше проверка в этот день не выполнялась
second=1; // корректируем секунды на +1 секунд
setRTCTime(); // записываем новое время в RTC модуль
}
Пн дек 12, 2022 21:24:45
//=============== Корректировка времени RTC модуля - в полночь на -5 secs============
if(hour==23&&minute==0&&second==0&&lastDay!=day){ // Если наступил новый день, то
lastDay=day; // сбрасываем переменную ластдей что бы больше проверка в этот день не выполнялась
second=1; // корректируем секунды на +1 секунд
setRTCTime(); // записываем новое время в RTC модуль
}
Пн дек 12, 2022 21:41:48
надо загрузить настройку из eeprom и высветить ее, если я правильно понимаю
// ---------- загрузить данные из eeprom ----------
brightSet = EEPROM.read(0); // прочитали яркость
mode = EEPROM.read(1); // прочитали режим
kuku = EEPROM.read(2); // прочитали куку
}
if(brightSet==17){ //
showString(12, "L|Y"); // выводим "Д/Н"
sendCmdAll(CMD_INTENSITY, 10); //
} //
EEPROM.update(0, brightSet);
refreshAll(); //
}
playExit();
Пн дек 12, 2022 21:47:23
Ср дек 14, 2022 00:01:07
//if (kuku != 0){
if(hour>=CHIME_START&&hour<CHIME_END&&minute==0&&second==0&&secFr==0) playChime();
//}
Ср дек 14, 2022 10:39:41
Ср дек 14, 2022 10:53:46
Ср дек 14, 2022 10:55:03