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

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

Сообщение Serzh2000 »

а сколько вольт на фоторезисторе при мини/максимальном освещении? может шунтовое сопротивление подобрать нужно !

Добавлено after 3 hours 58 minutes 44 seconds:
мне самому интересно стало авто яркость попробовать.
собрал макетку, но не нашёл нормального фоторезистора ... поигрался с вашей прошивкой..., да фигня какая-то
замерил напряжение на фоторезисторе при максимальном освещении 0,01 - 0,23
минимальном освещении 3,2 - 3,98
по яркости дисплея особо на глаз не видно " яркость= 9 или 7"
поэтому яркость разделил на три части максимум=10, срдне=4, и темно=0.
https://www.youtube.com/shorts/ZE8IY9L9LbE
Вложения
simple-clock_BRIGHT.zip
(85.53 КБ) 186 скачиваний
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

Отличное решение, вечером попробую. А больше то и не надо, днём ярко, вечером потемнее и ночью совсем темно. Спасибо Вам что откликнулись на проблему.

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

Сообщение Serzh2000 »

Отличное решение,
но не интересное :)))
вот еще одно решение - на экране показывает какая яркость точкой, внизу точка минимум. ( чтобы в порт монитора постоянно не глядеть)

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

    //---------------шкала яркости на десплее для отладки, потм удалить--------------------------
    if (BRIGHT==0) setCol(0, 0x80);
    if (BRIGHT==3) setCol(0, 0x40);
    if (BRIGHT==5) setCol(0, 0x20);
    if (BRIGHT==8) setCol(0, 0x10);
    if (BRIGHT==10)setCol(0, 0x08);
у меня какой-то фоторезистор "чудной", так что цифры придется вам самому подобрать от скольких до скольких и какой яркостью светить :shock:

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

 int ledLevel = analogRead(BRIGHT_PIN);               // измеряем на ножке А0 напряжение 
    if (ledLevel>451)                  BRIGHT=0;
    if (ledLevel<450 && ledLevel>301)  BRIGHT=3;
    if (ledLevel<300 && ledLevel>251)  BRIGHT=5;
    if (ledLevel<250 && ledLevel>101)  BRIGHT=8;
    if (ledLevel<100)                  BRIGHT=10;
Вложения
simple-clock_BRIGHT.zip
(86.25 КБ) 172 скачивания
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

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

Сообщение Serzh2000 »

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

Сообщение SeGAD »

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

Сообщение Serzh2000 »

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

Сообщение SeGAD »

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

Сообщение Serzh2000 »

ну не знаю, а я так вполне доволен вторым решением все отрабатывает просто класс!!!
https://www.youtube.com/shorts/7SFq-YBx_4o
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

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

Сообщение Serzh2000 »

а попробуйте сделать два режима

включите одну лампочку в комнате и в мониторе порта посмотрите чему равна минимальное значение ledLevel.
у меня в мониторе вот так
СпойлерledLevel-111 BRIGHT-10 analogRead-113
ledLevel-104 BRIGHT-10 analogRead-113
ledLevel-112 BRIGHT-10 analogRead-116
ledLevel-127 BRIGHT-10 analogRead-104
ledLevel-119 BRIGHT-10 analogRead-107
ledLevel-116 BRIGHT-10 analogRead-111
ledLevel-105 BRIGHT-10 analogRead-112
ledLevel-123 BRIGHT-10 analogRead-112
ledLevel-127 BRIGHT-10 analogRead-111
ledLevel-108 BRIGHT-10 analogRead-113
маленько прибавил

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

  int ledLevel = analogRead(BRIGHT_PIN);               // измеряем на ножке А0 напряжение 
    if (ledLevel>451)                  BRIGHT=0;
    if (ledLevel<450)                  BRIGHT=10;
    sendCmdAll(CMD_INTENSITY, BRIGHT);                   // посылаем команду на изменение яркости
ledLevel<450 это будет яркий режим BRIGHT-10
а все что выше ledLevel>451 режим темно BRIGHT=0;

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

Сообщение SeGAD »

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

Сообщение Serzh2000 »

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

Сообщение SeGAD »

Да, прикольная штукенция получилась, я правда еще не основательно за неё взялся, весь в заботах, но на выходных попробую посерьезней вникнуть )))
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

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

Сообщение SeGAD »

int ledLevel = analogRead(BRIGHT_PIN); // измеряем на ножке А0 напряжение
if (ledLevel>451) BRIGHT=0;
if (ledLevel<450 && ledLevel>301) BRIGHT=3;
if (ledLevel<300 && ledLevel>251) BRIGHT=5;
if (ledLevel<250 && ledLevel>101) BRIGHT=8;
if (ledLevel<100) BRIGHT=10;

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

Сообщение Serzh2000 »

Как настроить уровень яркости под каждый уровень BRIGHT?
что значит каждый уровень?
если я правильно понял.
светишь на фоторезистор смотришь в монеторе порта ledLevel у меня ledLevel=0.
закрываешь пальцем фоторезистор смотришь в монеторе порта ledLevel у меня ledLevel=700.
и делишь этот промежуток на столько частей сколько вы хотите получить градаций яркости.
вы про это?
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

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

Сообщение Serzh2000 »

но вот между этими уровнями интенсивность яркости почти незаметны, они есть, но так себе,
так выберете сколько градаций BRIGHT яркости вам нужно.
хотелось бы подстроить интенсивность яркости табло под каждый уровень BRIGHT.
диапазон показаний фоторезистора от 0 до 700 единиц, вот и присваивайте BRIGHT (яркости) значения
со скольких единиц включится BRIGHT<N и до скольких будет действовать BRIGHT>N
например if (ledLevel<450 && ledLevel>301) BRIGHT=3;
Открыл глаза
Аватара пользователя
Сообщения: 70
Зарегистрирован: Ср дек 07, 2022 21:01:11

Сообщение SeGAD »

Всё, разобрался, сама матрица не очень плавно передает интенсивность яркости. На нижних порогах 0-3 более-менее, а дальше просто светит ярко и изменения незначительны. Сделал просто по Вашему совету, автоматический режим День-Ночь. Для настенных часов, думаю, более чем достаточно. Спасибо Вам помощь =)

Добавлено after 6 minutes 17 seconds:
И еще вопросик, какой процент светопропускаемости тонировки Вы использовали?
Ответить

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