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

Обсуждаем электронику на колесах. Нужен увлажнитель воздуха для Камаза? Вам сюда.
Ответить
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

[uquote="Serzh2000",url="/forum/viewtopic.php?p=4336351#p4336351"]??? странно[/uquote]

Тоже так подумал, может монитор порта шалит, потому что иногда отваливается порт с ошибкой
Реклама
Опытный кот
Аватара пользователя
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Сообщение Serzh2000 »

посмотрел код вроде все в порядке...
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
это так?
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

[uquote="Serzh2000",url="/forum/viewtopic.php?p=4336641#p4336641"]посмотрел код вроде все в порядке...
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
это так?[/uquote]

Скоро приеду домой, проверю, спасибо
Опытный кот
Аватара пользователя
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Сообщение Serzh2000 »

нашли почему не работает?
а я наверно понял!

Код: Выделить всё

   if (kuku==0)   showString(8, "Drk");
     if (kuku==1)   showString(8, "Dsrk");     
:)))
Вложения
simple-clock.zip
(50.55 КБ) 137 скачиваний
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

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

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

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

Добавлено after 1 hour 13 minutes 46 seconds:
Еще небольшую проблемку увидел в работе режиме автояркости, примерно при среднем свете раз в некоторое время свечение часов немного притухает, потом возвращается в нормальный свет, это происходит раз или два в минуту, периодичность зацикленная. Есть некоторые подозрения что это проблема в секции ВКЛЮЧЕНИЕ режима регулировки яркости День/Ночь
Реклама
Опытный кот
Аватара пользователя
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Сообщение Serzh2000 »

Еще небольшую проблемку увидел в работе режиме автояркости, примерно при среднем свете раз в некоторое время свечение часов немного притухает, потом возвращается в нормальный свет, это происходит раз или два в минуту, периодичность зацикленная. Есть некоторые подозрения что это проблема в секции ВКЛЮЧЕНИЕ режима регулировки яркости День/Ночь
чет я не допонял на каком режиме стоит (чему равен 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);                                // Отсылаем команду на установку яркости экрана
    }                                                                     //
  }           
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

Режим Автояркости. День-Ночь и Ручная настройка яркости работают хорошо.
Опытный кот
Аватара пользователя
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Сообщение Serzh2000 »

brightSet==16. фоторезистор стоит какой?
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

Опытный кот
Аватара пользователя
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Сообщение Serzh2000 »

вставляйте в код 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 ... при минимальном освещении, при максимальном и где эти цифры/яркость прыгает.
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

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

Добавлено after 5 hours 38 minutes 28 seconds:
Вот, при вечернем свете, вечером, начались скачки.
Вложения
2022-12-16_160639.png
(10.18 КБ) 163 скачивания
Опытный кот
Аватара пользователя
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Сообщение Serzh2000 »

а фоторезистор другим заменить нет возможности?
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

[uquote="Serzh2000",url="/forum/viewtopic.php?p=4337755#p4337755"]а фоторезистор другим заменить нет возможности?[/uquote]

Есть, но из той же партии
Опытный кот
Аватара пользователя
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Сообщение Serzh2000 »

из одно партии может 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
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

1 и 2 это горит 1 лампа из 3-х, неяркая. Поставил другой, светить матрица стала ярче, на том фоторезисторе отсутствовала капелька, которая играет роль защиты и линзы. Слежу за поведением.
Опытный кот
Аватара пользователя
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Сообщение Serzh2000 »

ну как дела с яркостью, я тут подумал может изменить дискретность типа разделить диапазон 0-1023 не 0-15,

Код: Выделить всё

int ledLevel=map(analogRead(BRIGHT_PIN), 1023, 0, 0, 15);           // Считываем показания с фоторезистора и приводим их к виду от 0 до 12
а скажем 0-10, что скажете?
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

вместо ledLevel=constrain(ledLevel, 0, 12); сделал ledLevel=constrain(ledLevel, 0, 10);, вроде пока ничиего так работает
Опытный кот
Аватара пользователя
Сообщения: 867
Зарегистрирован: Пт фев 27, 2015 12:00:53
Откуда: Рязанская область

Сообщение Serzh2000 »

вместо 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);
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

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

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

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

Хотя мне кажется они стали менее заметны
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

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

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

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

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

Вернуться в «АвтоМотоВело»