Обсуждаем электронику на колесах. Нужен увлажнитель воздуха для Камаза? Вам сюда.
Ответить

Re: часы ардуино ds3231 max7219 ds18b20

Вс дек 11, 2022 15:04:17

Скажите пожалуйста, что Вы использовали на фальшпанель? Какой светофильтр или тонировку?


из коробки от CD дисков вырезал и затонировал авто тонировкой (у ребят из автосервиса взял обрезки).

"Детская игровая кухня своими руками" супер!!! :beer:

Re: часы ардуино ds3231 max7219 ds18b20

Вс дек 11, 2022 18:01:26

Хм, у меня много пьезоизлучателей разных видов, все пикают очень тихо.

Добавлено after 36 seconds:
Скажите пожалуйста, что Вы использовали на фальшпанель? Какой светофильтр или тонировку?


из коробки от CD дисков вырезал и затонировал авто тонировкой (у ребят из автосервиса взял обрезки).

"Детская игровая кухня своими руками" супер!!! :beer:


Ооо, спасибо за отзыв и за совет =)

Добавлено after 13 minutes 26 seconds:
Всё, нашёл регулировку громкости

int dutyH = 500; // 10 to silent, 500-regular в файле audio.h

Подключил без резистора, так как с ним появляется дребезжание, без него чисто и громко как надо.

Добавлено after 2 hours 40 minutes:
Ммм, а не подскажите, где примерно можно смотреть скорость анимации на больших часах, чтобы цифры немного быстрее скользили?
И было бы неплохо реализовать программное включение-отключение почасового звука в настройках.

Re: часы ардуино ds3231 max7219 ds18b20

Вс дек 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 ");


уберите // и будет каждый час ... :)))


если в настройках вкл/выкл
добавить переменную скажем "kuku"
Код:
//---------- Инициализируем переменные-------------------------------------------------------------------------------
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
  }


и написать if (kuku != 0){кукуем каждый час} //сзесь сами думайте пикнуть раз или три раза или музычку сыграть
а в настройках добавит еще пункт к примеру так

Код:
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();                                                             //
}   



как-то так может че напутал :wink:
Последний раз редактировалось Serzh2000 Вс дек 11, 2022 19:48:50, всего редактировалось 3 раз(а).

Re: часы ардуино ds3231 max7219 ds18b20

Вс дек 11, 2022 19:31:38

Вот спасибище так спасибище =) Будем делать =)))

Re: часы ардуино ds3231 max7219 ds18b20

Вс дек 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); // скорость смены цифры
}

Re: часы ардуино ds3231 max7219 ds18b20

Вс дек 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); // скорость смены цифры
}


О, ДА! Это именно то, стало намного комфортней. СПАСИБО!

Добавлено after 2 minutes 22 seconds:
По поводу вкл-откл почасового сигнала, вроде все работает, только пока не могу добиться постоянного свечения в настройках ВКЛ и ВЫКЛ, они появляются и пропадают во время нажатия кнопок

Код:
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();                                                             //
}

Re: часы ардуино ds3231 max7219 ds18b20

Вс дек 11, 2022 20:57:54

попробуй refreshAll();(очистка экрана) вынести за действие счетчика нахождения в меню

Код:
   EEPROM.update(3, kuku);                                                          //
  }   
  playExit();
  refreshAll();                                                            //
}

Re: часы ардуино ds3231 max7219 ds18b20

Вс дек 11, 2022 21:07:48

попробуй refreshAll();(очистка экрана) вынести за действие счетчика нахождения в меню

Код:
   EEPROM.update(3, kuku);                                                          //
  }   
  playExit();
  refreshAll();                                                            //
}


Увы, нет, уже пробовал, при таком раскладе в меню горит Сигнал и нет обновления дисплея, т.е. я не вижу изменений вкл или выкл

Re: часы ардуино ds3231 max7219 ds18b20

Пн дек 12, 2022 17:47:56

Увы, нет, уже пробовал

получилось?

Re: часы ардуино ds3231 max7219 ds18b20

Пн дек 12, 2022 20:02:23

Увы, нет, уже пробовал

получилось?

нет, пока никак

Re: часы ардуино ds3231 max7219 ds18b20

Пн дек 12, 2022 20:12:23

выложи свой скетч, подумаем я тоже подумаю.

Re: часы ардуино ds3231 max7219 ds18b20

Пн дек 12, 2022 20:26:38

Вот скетч, спасибо
Вложения
simple-clock.zip
(29.41 KiB) Скачиваний: 44

Re: часы ардуино ds3231 max7219 ds18b20

Пн дек 12, 2022 21:10:18

попробуй

Добавлено after 6 minutes 57 seconds:
Код:
 //=============== Корректировка времени RTC модуля - в полночь на  -5 secs============
  if(hour==23&&minute==0&&second==0&&lastDay!=day){                     // Если наступил новый день, то
    lastDay=day;                                                        // сбрасываем переменную ластдей что бы больше проверка в этот день не выполнялась
    second=1;                                                           // корректируем секунды на +1 секунд
    setRTCTime();                                                       // записываем новое время в RTC модуль
  }


у вас в скетче стоит коррекция прибавлять каждый день секунду. это вам надо? у вас часы отстают?
Вложения
simple-clock.zip
(50.55 KiB) Скачиваний: 41

Re: часы ардуино ds3231 max7219 ds18b20

Пн дек 12, 2022 21:24:45

попробуй

Добавлено after 6 minutes 57 seconds:
Код:
 //=============== Корректировка времени RTC модуля - в полночь на  -5 secs============
  if(hour==23&&minute==0&&second==0&&lastDay!=day){                     // Если наступил новый день, то
    lastDay=day;                                                        // сбрасываем переменную ластдей что бы больше проверка в этот день не выполнялась
    second=1;                                                           // корректируем секунды на +1 секунд
    setRTCTime();                                                       // записываем новое время в RTC модуль
  }


у вас в скетче стоит коррекция прибавлять каждый день секунду. это вам надо? у вас часы отстают?


Пока не знаю, включил чтобы понаблюдать за поведением =)

Сейчас попробую, спасибо =)

Добавлено after 3 minutes 54 seconds:
Попробовал, вроде отлично работает, за исключением одного момента, когда вхожу в Установки -> Сигнал, то табло пустое, но при нажатии кнопок Вкл и Выкл начинают работать как надо, надо загрузить настройку из eeprom и высветить ее, если я правильно понимаю

А хотя, все отлично, это было при первом запуске, после последующих перезапусков все стало отображаться, спасибо Вам большое и низкий поклон!

Re: часы ардуино ds3231 max7219 ds18b20

Пн дек 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(); 

нет не надо это я ошибся в одну и туже ячейку записал и куку и яркость
исправил.
Вложения
simple-clock.zip
(70.89 KiB) Скачиваний: 46

Re: часы ардуино ds3231 max7219 ds18b20

Пн дек 12, 2022 21:47:23

Наистрашнейшая благодарность =)))

Вроде всё работает как хотелось, только причешу немного по звуку, потестировать недельку и можно делать корпус =)

Re: часы ардуино ds3231 max7219 ds18b20

Ср дек 14, 2022 00:01:07

Ничего не понимаю, перестал работать почасовой сигнал, вроде всё проверил, не хочет.

Вот так, без условия работает:

Код:
      //if (kuku != 0){ 
        if(hour>=CHIME_START&&hour<CHIME_END&&minute==0&&second==0&&secFr==0) playChime();
      //}

Re: часы ардуино ds3231 max7219 ds18b20

Ср дек 14, 2022 10:39:41

Serial.print(kuku);
вставьте эти строки в скетч и посмотрите в мониторе порта чему равно куку, может нулю потому и нет сигнала.

Re: часы ардуино ds3231 max7219 ds18b20

Ср дек 14, 2022 10:53:46

Serial.print(kuku);
вставьте эти строки в скетч и посмотрите в мониторе порта чему равно куку, может нулю потому и нет сигнала.


В принципе пробовал, но никаких данных не выводится. Ладно, вечером еще покумекаю.

Re: часы ардуино ds3231 max7219 ds18b20

Ср дек 14, 2022 10:55:03

??? странно
Ответить