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

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

Ср дек 14, 2022 11:00:30

??? странно


Тоже так подумал, может монитор порта шалит, потому что иногда отваливается порт с ошибкой

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

Ср дек 14, 2022 18:23:20

посмотрел код вроде все в порядке...

kuku = 1;
if (kuku != 0){

if(hour>=CHIME_START&&hour<CHIME_END&&minute==0&&second==0&&secFr==0) playChime();
Serial.print("kuku");
}
Serial.println(kuku);// прочитали куку


если вставить это в код в мониторе порта должно писаться kuku1
это так?

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

Ср дек 14, 2022 18:29:25

посмотрел код вроде все в порядке...

kuku = 1;
if (kuku != 0){

if(hour>=CHIME_START&&hour<CHIME_END&&minute==0&&second==0&&secFr==0) playChime();
Serial.print("kuku");
}
Serial.println(kuku);// прочитали куку


если вставить это в код в мониторе порта должно писаться kuku1
это так?


Скоро приеду домой, проверю, спасибо

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

Ср дек 14, 2022 18:30:35

нашли почему не работает?
а я наверно понял!
Код:
   if (kuku==0)   showString(8, "Drk");
     if (kuku==1)   showString(8, "Dsrk");     

:)))
Вложения
simple-clock.zip
(50.55 KiB) Скачиваний: 54

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

Ср дек 14, 2022 22:22:44

Я заметил, что после изменения состояния в установках и выхода оттуда значение переменной не сохраняется. ПОстоянно идёт 1.

Один момент, похоже что заработало, тестирую...

Да, похоже что всё работает, спасибо Вам большое за помощь!!!

Добавлено after 1 hour 13 minutes 46 seconds:
Еще небольшую проблемку увидел в работе режиме автояркости, примерно при среднем свете раз в некоторое время свечение часов немного притухает, потом возвращается в нормальный свет, это происходит раз или два в минуту, периодичность зацикленная. Есть некоторые подозрения что это проблема в секции ВКЛЮЧЕНИЕ режима регулировки яркости День/Ночь

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

Чт дек 15, 2022 18:18:47

Еще небольшую проблемку увидел в работе режиме автояркости, примерно при среднем свете раз в некоторое время свечение часов немного притухает, потом возвращается в нормальный свет, это происходит раз или два в минуту, периодичность зацикленная. Есть некоторые подозрения что это проблема в секции ВКЛЮЧЕНИЕ режима регулировки яркости День/Ночь


чет я не допонял на каком режиме стоит (чему равен brightSet==?)

Код:
 if(brightSet==17){//---------- ВКЛЮЧЕНИЕ режима регулировки яркости День/Ночь

      if (month==1||month==2||month==3){DAY_START=7;}        // в янворе, феврале,марте циферблат включится на полную яркость в 7 часов
      if (month==4||month==5){DAY_START=6;}                  // в апреле, мае циферблат включится на полную яркость в 6 часов
      if (month==6||month==7||month==8){DAY_START=5;}        // в июне, июле, августе циферблат включится на полную яркость в 5 часов
      if (month==9||month==10){DAY_START=6;}                 // в сентябре, октябре циферблат включится на полную яркость в 6 часов
      if (month==11||month>12){DAY_START=7;}                 // в ноябре, декабре циферблат включится на полную яркость в 7 часов
     
   
    if(hour>=DAY_START&&hour<DAY_END&&(minute!=lastMin)){                 // каждую минуту проверяем ночной режим или дневной
      sendCmdAll(CMD_INTENSITY, 10);                                       // посылаем команду на изменение яркости на 10
      lastMin=minute;                                                     //
    }                                                                     //
    else if(minute!=lastMin){                                             //
      sendCmdAll(CMD_INTENSITY, 0);                                       // посылаем команду на изменение яркости на 0
      lastMin=minute;                                                     //
    }                                                                     //
  }               


этот режим? или авто?

Код:
if(brightSet==16){//---------- ВКЛЮЧЕНИЕ режима автоматической регулировки яркости
    if(secFr==0){                                                         // Проверка и изменение яркости каждую секунду
      int ledLevel=map(analogRead(BRIGHT_PIN), 1023, 0, 0, 15);           // Считываем показания с фоторезистора и преводим их к виду от 0 до 12
      ledLevel=constrain(ledLevel, 0, 12);                                // ограничиваем верхнее значение ledLevel до 12
      sendCmdAll(CMD_INTENSITY, ledLevel);                                // Отсылаем команду на установку яркости экрана
    }                                                                     //
  }           

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

Чт дек 15, 2022 20:32:05

Режим Автояркости. День-Ночь и Ручная настройка яркости работают хорошо.

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

Чт дек 15, 2022 21:28:37

brightSet==16. фоторезистор стоит какой?

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

Чт дек 15, 2022 21:40:53

https://aliexpress.ru/item/686753265.ht ... 7451385188

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

Пт дек 16, 2022 07:47:24

вставляйте в код Serial.println(ledLevel);delay(10);

Код:
 if(brightSet==16){//---------- ВКЛЮЧЕНИЕ режима автоматической регулировки яркости
    if(secFr==0){                                                         // Проверка и изменение яркости каждую секунду
      int ledLevel=map(analogRead(BRIGHT_PIN), 1023, 0, 0, 15);           // Считываем показания с фоторезистора и преводим их к виду от 0 до 12
      ledLevel=constrain(ledLevel, 0, 12);                                // ограничиваем верхнее значение ledLevel до 12
      sendCmdAll(CMD_INTENSITY, ledLevel);                                // Отсылаем команду на установку яркости экрана
      Serial.println(ledLevel);delay(10);
    }                                                                     //
  }   


и будем смотреть в мониторе порта ledLevel ... при минимальном освещении, при максимальном и где эти цифры/яркость прыгает.

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

Пт дек 16, 2022 17:07:36

Пока вроде в порядке, вечером еще буду смотреть, так как этот баг в основном вечером при вечернем свете появляется.

Добавлено after 5 hours 38 minutes 28 seconds:
Вот, при вечернем свете, вечером, начались скачки.
Вложения
2022-12-16_160639.png
(10.18 KiB) Скачиваний: 52

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

Пт дек 16, 2022 17:47:59

а фоторезистор другим заменить нет возможности?

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

Пт дек 16, 2022 18:00:32

а фоторезистор другим заменить нет возможности?


Есть, но из той же партии

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

Пт дек 16, 2022 18:05:56

из одно партии может 5 брак ,а 5 норм. попробуйте другой.
а 1,2 в мониторе порта это в комнате свет выключен (18 часов темно) или при включенном свете.
вообще https://arduinomaster.ru/program/analogread/
https://www.arduino.cc/reference/en/lan ... /math/map/
может поиграться с минимальным значением не 0 ,а 2 поставить
Код:
 if(secFr==0){                                                         // Проверка и изменение яркости каждую секунду
      int ledLevel=map(analogRead(BRIGHT_PIN), 1023, 0, 0, 15);           // Считываем показания с фоторезистора и приводим их к виду от 0 до 12

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

Пт дек 16, 2022 18:28:24

1 и 2 это горит 1 лампа из 3-х, неяркая. Поставил другой, светить матрица стала ярче, на том фоторезисторе отсутствовала капелька, которая играет роль защиты и линзы. Слежу за поведением.

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

Сб дек 17, 2022 16:00:13

ну как дела с яркостью, я тут подумал может изменить дискретность типа разделить диапазон 0-1023 не 0-15,
Код:
int ledLevel=map(analogRead(BRIGHT_PIN), 1023, 0, 0, 15);           // Считываем показания с фоторезистора и приводим их к виду от 0 до 12

а скажем 0-10, что скажете?

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

Сб дек 17, 2022 18:11:21

вместо ledLevel=constrain(ledLevel, 0, 12); сделал ledLevel=constrain(ledLevel, 0, 10);, вроде пока ничиего так работает

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

Сб дек 17, 2022 19:07:26

вместо ledLevel=constrain(ledLevel, 0, 12); сделал ledLevel=constrain(ledLevel, 0, 10);

я думаю это не верное решение... у автора часов яркость регулируется от 0 - 12 .
если поставить 10 яркость не будет максимальной.
наверно правильнее сделать здесь
Код:
int ledLevel=map(analogRead(BRIGHT_PIN), 1023, 0, 0, 15);           // Считываем показания с фоторезистора и приводим их к виду от 0 до 12

int ledLevel=map(analogRead(BRIGHT_PIN), 1023, 0, 0, 10);

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

Сб дек 17, 2022 19:28:06

Согласен, я спорол чушь, попробую Ваш вариант

Добавлено after 3 minutes 25 seconds:
Хм, сделал, пока работа стабильная, смотрим дальше =)

Хм, всё таки некоторые изменения яркости присутствуют

Хотя мне кажется они стали менее заметны

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

Пн дек 19, 2022 22:55:48

Хм, совсем нехорошо работает автояркость. Вот пример видео, камера не передает самого изменения, но по засветам можно определить когда яркость меняется, в самом начале не смотрите, настраивался автофокус.

https://drive.google.com/file/d/135zgTa ... sp=sharing

Хотя есть подозрение что сам фоторезитсор надо размещать не мордой в люстру, на например в потолок, т.е. избегать прямого попадания света от света =) Поменял положение фоторезистора, вроде стало норм. Наблюдаем дальше =)

Попробовал проверить фонариком, изменяя интенсивность падения света, такой баг начинает появляться при определенном световом потоке.
Ответить