Большие часы на адресных светодиодах WS2812B

Александр Симонов

★★★★✩✩✩
2 Авг 2018
741
208
Смотришь определение функции digitout
1561889325315.png
Функция отображает цифры. Первый параметр -- позиция цифры, второй -- цифра (хотя по факту, полистав ниже, видно, что не только цифры можно показывать).
 

valek

✩✩✩✩✩✩✩
28 Июн 2019
17
1
Москва
digitout (16, 13 ); // отрисовываем "-" (выставляем черные точки) то есть цифра 13 соответсвует блоку case 13 ?
 

valek

✩✩✩✩✩✩✩
28 Июн 2019
17
1
Москва
простите не вставил часть кода) digitout (0, time.Hours / 10 ); // отрисовываем цифры (выставляем черные точки). вот тут цифра 10. а в блоке отображения цифр нет блока под цифрой 10. там нумерация 1.2.3.4.5.6.7.8.9.0.11.12 и тд это правильно?
 

Александр Симонов

★★★★✩✩✩
2 Авг 2018
741
208
простите не вставил часть кода) digitout (0, time.Hours / 10 ); // отрисовываем цифры (выставляем черные точки). вот тут цифра 10. а в блоке отображения цифр нет блока под цифрой 10. там нумерация 1.2.3.4.5.6.7.8.9.0.11.12 и тд это правильно?
Там не цифра 10, там текущий час, разделенный на 10. Деление целочисленное, т.е. дробная часть результата отбрасывается.
 

valek

✩✩✩✩✩✩✩
28 Июн 2019
17
1
Москва
@Александр Симонов, не могли бы вы посмотреть скетч. а точнее подскажите что убрать/добавить что бы раздельтельные точны в часах были одного цвета что и цифры. этот код в самом низу скетча. и еще у меня почему то в температуре отображается символ С без нижнего сегмента. не могу понять почему.
 

Вложения

jokir1971

✩✩✩✩✩✩✩
2 Июл 2019
1
0
Всем добра! Помогите советом - собрал часы, все отлично, но есть проблема. Утром отключил часы от сети, а вечером при включении часы показали время, отстающее на час с лишним. Как я понимаю RTC 3231 не корректно сработали от 2032. Как с этим жить???
 

Александр Симонов

★★★★✩✩✩
2 Авг 2018
741
208
@Александр Симонов, а не подскажите по доброте душевной что написать в скетче что бы часы, допустим, с 7 утра светили ярко, а с 21-00 на минимум?
Для запросов типа "сделайте за меня" есть раздел "Ищу разработчика" на этом форуме. Любой школьник вам напишет за 100р.

Если есть время и желание разобраться самому, то начните с канала Заметки Ардуинщика, хотя бы первые уроки.
 

valek

✩✩✩✩✩✩✩
28 Июн 2019
17
1
Москва
Для запросов типа "сделайте за меня" есть раздел "Ищу разработчика" на этом форуме. Любой школьник вам напишет за 100р.

Если есть время и желание разобраться самому, то начните с канала Заметки Ардуинщика, хотя бы первые уроки.
я пытался. слишком много вопросов возникает в процессе изучения. а в сборнике команд ардуино некоторых слов почему то нет. я про те что встретились мне в скетче часов. но все ровно спасибо. буду изучать
 

Dimsim

✩✩✩✩✩✩✩
14 Июл 2019
1
0
Моя версия скетча часов. Один светодиод на сегмент. Две мигающие точки (секунды).
Автоматическое изменение яркости ступенчато, опрос датчика раз в 3 секунды.
Изменение цвета ступенчато, потенциометром. В дальнейшем, есть желание сделать изменения цвета потенциометром плавно, но знаний пока не хватает. И как я понимаю, здесь желающих помочь безвозмездно нет.
Ссылка
 

Игорь2019ok

✩✩✩✩✩✩✩
28 Мар 2019
3
0
Добрый день, а где найти правильную схему подключения датчика температуры и фоторезистора? В скетче порт стоит А3 а не D3 как на схеме
 

valek

✩✩✩✩✩✩✩
28 Июн 2019
17
1
Москва
друзья подскажите вот у меня в часа участок кода отвечающий за авторегулировку яркости. как мне сдвинуть границы срабатывания в нем. что бы темнели часы сильнее. а то они даже в полной темноте считают что есть немного света.

void BrightnessCheck() {
if (auto_bright) { // если включена адаптивная яркость
if (millis() - bright_timer > 100) { // каждые 100 мс
bright_timer = millis(); // сброить таймер
new_bright = map(analogRead(BRI_PIN), 0, bright_constant, min_bright, max_bright); // считать показания с фоторезистора, перевести диапазон
new_bright = constrain(new_bright, min_bright, max_bright);
new_bright_f = new_bright_f * coef + new_bright * (1 - coef);
strip.setBrightness(new_bright_f); // установить новую яркость
}
}
};
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,320
1,319
Москва
new_bright = map(analogRead(BRI_PIN), 0, bright_constant, min_bright, max_bright);
тут считываемое значение яркости приводится к сотв. значению яркости для проекта. считается что значение между 0 и bright_constant, если в полной темноте (а светодиод никакой в фоторезистор не светит ?) есть какое то значение больше 0, то и получается, что где то что то светит. если вместо 0 поставить то самое значение, что дает фоторезистор в полной темноте, то как раз должны получить минимальное значение яркости
 

valek

✩✩✩✩✩✩✩
28 Июн 2019
17
1
Москва
@Старик Похабыч, в мониторе порта показывает 10 -15 ... если рукой закрыть то будет ноль. но яркость все ровно не уменьшается. до необходимого минимума.заметил что если часы в полной темноте выключить и включить то яркость встает на минимум прям как мне и надо. но если по светить на них. то набирают яркость и больше не опускаются до нужного предела.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,320
1,319
Москва
Тогда надо ковырять фильтр
new_bright_f = new_bright_f * coef + new_bright * (1 - coef);

Для начала просто отключить его. Как этот фильтр работает есть у Алекса на видео, я с ним не разбирался, так что если после отключения будет нормально работать (как хотелось бы) то следует подобрать нужный coef

И еще вариант уменьшить значение min_bright , если возможно
 
Изменено:

valek

✩✩✩✩✩✩✩
28 Июн 2019
17
1
Москва
@Старик Похабыч, еще заметил что если просто проверяю фоторезистор отдельным скетчем то показания меняются в зависимости от света. а в скетче часов всегда монитор показывает 17. но часы меняют яркость от освещения все ровно. и что бы я не делал минимальная яркость через фоторрезистоор больше минимальной если без него