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

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

Вложения

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

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

Проходящий мимо
02.08.2018
185
36
38
#68
@Александр Симонов, а не подскажите по доброте душевной что написать в скетче что бы часы, допустим, с 7 утра светили ярко, а с 21-00 на минимум?
Для запросов типа "сделайте за меня" есть раздел "Ищу разработчика" на этом форуме. Любой школьник вам напишет за 100р.

Если есть время и желание разобраться самому, то начните с канала Заметки Ардуинщика, хотя бы первые уроки.
 
28.06.2019
17
0
1
Москва
#69
Для запросов типа "сделайте за меня" есть раздел "Ищу разработчика" на этом форуме. Любой школьник вам напишет за 100р.

Если есть время и желание разобраться самому, то начните с канала Заметки Ардуинщика, хотя бы первые уроки.
я пытался. слишком много вопросов возникает в процессе изучения. а в сборнике команд ардуино некоторых слов почему то нет. я про те что встретились мне в скетче часов. но все ровно спасибо. буду изучать
 
14.07.2019
1
0
1
#70
Моя версия скетча часов. Один светодиод на сегмент. Две мигающие точки (секунды).
Автоматическое изменение яркости ступенчато, опрос датчика раз в 3 секунды.
Изменение цвета ступенчато, потенциометром. В дальнейшем, есть желание сделать изменения цвета потенциометром плавно, но знаний пока не хватает. И как я понимаю, здесь желающих помочь безвозмездно нет.
Ссылка
 
28.03.2019
2
0
1
#71
Добрый день, а где найти правильную схему подключения датчика температуры и фоторезистора? В скетче порт стоит А3 а не D3 как на схеме
 
28.06.2019
17
0
1
Москва
#72
друзья подскажите вот у меня в часа участок кода отвечающий за авторегулировку яркости. как мне сдвинуть границы срабатывания в нем. что бы темнели часы сильнее. а то они даже в полной темноте считают что есть немного света.

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); // установить новую яркость
}
}
};
 
#73
new_bright = map(analogRead(BRI_PIN), 0, bright_constant, min_bright, max_bright);
тут считываемое значение яркости приводится к сотв. значению яркости для проекта. считается что значение между 0 и bright_constant, если в полной темноте (а светодиод никакой в фоторезистор не светит ?) есть какое то значение больше 0, то и получается, что где то что то светит. если вместо 0 поставить то самое значение, что дает фоторезистор в полной темноте, то как раз должны получить минимальное значение яркости
 
28.06.2019
17
0
1
Москва
#74
@Старик Похабыч, в мониторе порта показывает 10 -15 ... если рукой закрыть то будет ноль. но яркость все ровно не уменьшается. до необходимого минимума.заметил что если часы в полной темноте выключить и включить то яркость встает на минимум прям как мне и надо. но если по светить на них. то набирают яркость и больше не опускаются до нужного предела.
 
#75
Тогда надо ковырять фильтр
new_bright_f = new_bright_f * coef + new_bright * (1 - coef);

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

И еще вариант уменьшить значение min_bright , если возможно
 
Последнее редактирование:
#76
@Старик Похабыч, еще заметил что если просто проверяю фоторезистор отдельным скетчем то показания меняются в зависимости от света. а в скетче часов всегда монитор показывает 17. но часы меняют яркость от освещения все ровно. и что бы я не делал минимальная яркость через фоторрезистоор больше минимальной если без него
 
#78
@Старик Похабыч, подключил как на картинке в начале темы. брал питание и от самой ардуины и от внешнего блока. сейчас попробую сделать делитель по 5 вольтам. или другой резистор поставлю. подключил я точно правильно. яркость то регулирует.
 
#80
даже не знаю как сформулировать. а изза какого нибудь глюка диоды могут светиться тусклее чем может выставить ардуино? я ради проверки сделал вот такой скетч. и с ним получается все ровно ярче чем светят мои часы после перезагрузки в полной темноте.
#include <Adafruit_NeoPixel.h>

#define LED_COUNT 30

#define LED_PIN 13
byte NowBrigtness = 1;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
// put your setup code here, to run once:
strip.begin(); // запускаем адресные светодиоды
strip.setBrightness(NowBrigtness); // устанавливаем яркость светодиодной ленты
strip.show();
}

void loop() {
// put your main code here, to run repeatedly:
for (int i = 0; i < LED_COUNT; i++)
{
strip.setPixelColor(i, strip.Color(0, 255, 0)); // Красный цвет.
}
// Передаем цвета ленте.
strip.show();
// Ждем 500 мс.
delay(500);
// Выключаем все светодиоды.
//for (int i = 0; i < LED_COUNT; i++)
{
// strip.setPixelColor(i, strip.Color(0, 0, 0)); // Черный цвет, т.е. выключено.
}
// Передаем цвета ленте.
strip.show();
// Ждем 500 мс.
delay(500);
}