ARDUINO Часы на ГРИ v1. Обсуждение проекта

какпопалович

✩✩✩✩✩✩✩
10 Мар 2020
6
0
в 22 заводская колибровка а в 11 какое вышло но там есть резюк им можно вопрос в цене 80 грн разбег 11 и 22
 

rico1271

✩✩✩✩✩✩✩
22 Фев 2020
12
1
technotrasher, я установил Вашу прошивку на часы из поста 1317. Работает нормально.
Но можно просьбу доработки, я надеюсь доработка несложная, а я, к сожалению, в программировании не силен.
В прошивке от Гайвера при установке часов необходимо установить часы, минуты. Затем при выходе из режима установки часов
секунды сбрасывались на ноль. Была возможность достаточно точно настроить время.
В Вашей прошивке при выходе из режима настройки секунды не сбрасываются. Можно настроить часы, минуты.
А секунды какие есть такие и остаются. Можно ли в Вашей прошивке сделать так, что бы секунды сбрасывались на ноль
при выходе из режима настройки часов. Спасибо!
Р.S. Глюки какие-то, вчера вечером время поменялось, первый раз если не ошибаюсь на 11-43, второй раз на 10-00, само собой, ничего не делал. Часы показывают только время, в прошивке вроде все поменял, убрал отображение температуры, влажности и прочего. Сегодня еще понаблюдаю.
 

poty

★★★★★★✩
19 Фев 2020
2,987
895
@какпопалович, точность резистором не поправить. Можно в данный конкретный момент выставить на выходе DHT-11 точную температуру, но АЦП не термокомпенсирован и имеет довольно грубые ступени преобразования, в результате показания будут уходить. Если брать на Али, то разница не стоит проблем. Тут каждый решает для себя сам.
 

technotrasher

★★★★✩✩✩
14 Ноя 2019
501
223
technotrasher, я установил Вашу прошивку на часы из поста 1317. Работает нормально.
Но можно просьбу доработки, я надеюсь доработка несложная, а я, к сожалению, в программировании не силен.
В прошивке от Гайвера при установке часов необходимо установить часы, минуты. Затем при выходе из режима установки часов
секунды сбрасывались на ноль. Была возможность достаточно точно настроить время.
В Вашей прошивке при выходе из режима настройки секунды не сбрасываются. Можно настроить часы, минуты.
А секунды какие есть такие и остаются. Можно ли в Вашей прошивке сделать так, что бы секунды сбрасывались на ноль
при выходе из режима настройки часов. Спасибо!
Р.S. Глюки какие-то, вчера вечером время поменялось, первый раз если не ошибаюсь на 11-43, второй раз на 10-00, само собой, ничего не делал. Часы показывают только время, в прошивке вроде все поменял, убрал отображение температуры, влажности и прочего. Сегодня еще понаблюдаю.
элементарно, если почиать и изучить скетч. измените и будет нуль. rtc.settime(0, hrs, mins); Я тоже в программировании не силен. поэтому стремлюсь все изучить сам.
Есть глюк с установкой времени вручную. дело в том, что время, что отображается - это одно, а время в модуле - это другое. так вот - когда меняется время вручную - его нужно не забыть в модуль отправить. и не только отправить, а ещё убедиться, что оно туда записалось. я изучу этот баг.
 

mrokabes

✩✩✩✩✩✩✩
3 Окт 2019
16
0
@technotrasher, красиво неплохо . погодная станция на 50% ты забыл туда впеньдюртить дозиметр и как там его дачик проверки канцерогенов в воздухе к стати ситоимость его где то 2000 целковых у наших друзей
 

poty

★★★★★★✩
19 Фев 2020
2,987
895
@mrokabes, тут я поддержу technotrasher (если это не шутка юмора у Вас): у него была сбалансированная идея и он её реализовал. Остаётся только апплодировать. Расширение функциональности без увеличения возможностей отображения - тупиковый путь. Я уже в том, что сделано с трудом бы ориентировался: отображаются разные цифры, об их значении можно только догадываться (если не знаешь). Сама по себе сменяемость "наборов" мне не очень понятна и импонирует, но вот реализовано так. И, я считаю, это отличным результатом!
 

Firefox3860

✩✩✩✩✩✩✩
14 Янв 2019
10
0
Самара
Люди, а сталкивался ли кто-нибудь с такой проблемой? Датчик ds18b20 через некоторое время работы часов начал иногда вместо нормальных показаний температуры выдавать значение -127.00. То есть сначала он работал всегда нормально, но примерно через 2 недели началось такое.
Сам датчик во влагозащитном метеллическом корпусе изначально был вынесен на длинном проводе через окно на улицу. Там же висит и сейчас, я ничего не менял. Реализацию его работы я дописывал в гайверовскую прошивку сам.
Ещё я заметил, что эта проблема уходит, если отключить внешнее питание (12 В) и оставить ардуину подключенной к компу через usb. Тогда показания всегда нормальные. Но при подключении питания -127 градусов выводится примерно в 3-4 случаях из 10. Может, наводки от генератора так влияют? Но почему тогда сначала такого не было?
 

poty

★★★★★★✩
19 Фев 2020
2,987
895
Скорее всего дело в недостаточной ёмкости конденсаторов или их отсутствии. На длинных линиях нужно ставить конденсаторы в начале и в конце линии параллельно питанию. Также нужно обеспечить близкое расположение проводов сигнала и земли, чтобы предотвратить проникание импульсных помех с +5В.
Какую библиотеку использовали для DS18? Как работает?
 
  • Лойс +1
Реакции: Firefox3860

Chumniy_Doc

✩✩✩✩✩✩✩
18 Мар 2020
12
0
Можно ли портировать все фишки часов второй версии, на первую? По типу перемотки, случайного глюка и тп.
Сам в программировании практически 0, мб кто-то делал уже порт эффектов и поделится скетчем?
 

Firefox3860

✩✩✩✩✩✩✩
14 Янв 2019
10
0
Самара
Скорее всего дело в недостаточной ёмкости конденсаторов или их отсутствии. На длинных линиях нужно ставить конденсаторы в начале и в конце линии параллельно питанию. Также нужно обеспечить близкое расположение проводов сигнала и земли, чтобы предотвратить проникание импульсных помех с +5В.
Спасибо, я не знал, что надо ставить конденсаторы. Значит, всё таки помехи пролезают?
У меня есть конденсаторы на 0.1, мкФ, 510 пФ -керамические, ну и все электролитовые, которые используются на плате (10, 4.7 мкФ). Какой из них лучше подойдёт на эту линию?

Какую библиотеку использовали для DS18? Как работает?
Библиотеки поставил OneWire и DallasTemperature версии 3.8.0. Работают хорошо, в DallasTemperature много удобных функций для управления датчиком.
 

poty

★★★★★★✩
19 Фев 2020
2,987
895
@Firefox3860, я по схеме достаточно активно прошёлся, у меня по ней много вопросов возникает именно с точки зрения адекватной работы источников питания. Не привык критиковать, поэтому не буду сейчас говорить обо всех проблемах. Но о ряде - скажу:
- параллельно C10 лучше бы поставить любой неэлектролитический конденсатор - частоты переключения и крутизна фронтов/спадов довольно большие, электролитический конденсатор с таким не справится; достаточно относительно небольшого (0,01-0,1мкФ прямо на ножки C10, обращаю внимание - напряжение должно быть не меньше 300В, лучше - больше); (в идеале - также увеличить ёмкость C10 и поблизости от входной высоковольтной линии на оптроны поставить ещё один плёночный конденсатор)
- я бы поставил плёночный конденсатор 0,1-0,5мкФ прямо на ножки 1, 2 LM7805 (по хорошему, конечно, перед ним поставить хотя бы небольшое сопротивление или индуктивность, но заставлять резать дорожки не призываю), увеличил бы C4 и C2;
- обычное всем известное правило - размещать небольшой плёночный или керамический конденсатор 0,1-1мкФ как шунт питания вблизи ножек питания микросхем; у нас таких мест несколько: вход в Ардуино (27 пин по схеме, 29 пин земля), VCC-GND DS3231, VCC-GND DHT22 или VDD-GND DS18B20 - смотря что стоит; так как у Вас длинная линия до DS18B20, то поставить конденсатор вместо DS18B20 (между VDD и GND), а второй конденсатор - непосредственно на ножках 1 и 3 термометра (так как DS18B20 можно соединять параллельно, то легко оставить один DS18 прямо на плате, а второй - вынести на проводах: получится измерение и температуры в помещении и температуры на улице - изменения в коде чисто косметические).
 
Изменено:

Firefox3860

✩✩✩✩✩✩✩
14 Янв 2019
10
0
Самара
А где именно на плате C10 и C4? Я что-то не нахожу там таких обозначений. Или смотрю куда-то не туда?

так как у Вас длинная линия до DS18B20, то поставить конденсатор вместо DS18B20 (между VDD и GND), а второй конденсатор - непосредственно на ножках 1 и 3 термометра
Значит, у меня сейчас припаян провод к плате на место ds18. Нужно прямо в этом месте параллельно ему припаять один конденсатор, а второй - на конце провода, рядом с датчиком, так? А больше 1 мкФ ставить не имеет смысла?
Датчик ds18 у меня один только, при этом DHT22 тоже на плате запаян - в комнате измеряет.
 

poty

★★★★★★✩
19 Фев 2020
2,987
895
где именно на плате C10 и C4?
Все номера даны по принципиальной схеме в первом сообщении этой темы.
Датчик ds18 у меня один только, при этом DHT22 тоже на плате запаян - в комнате измеряет.
Вообще-то оба этих датчика подключены на один вход Ардуино и используют разные протоколы. По факту предполагалось, что будет использоваться ЛИБО DHT22, либо DS18. Удивлён, что у Вас так, параллельно, работает. Можете попробовать вынуть DHT22 для пробы? Может, это он с ума так сходит при получении неизвестной для него последовательности.
у меня сейчас припаян провод к плате на место ds18. Нужно прямо в этом месте параллельно ему припаять один конденсатор, а второй - на конце провода, рядом с датчиком, так? А больше 1 мкФ ставить не имеет смысла?
Да, про конденсаторы - именно так. Первый конденсатор значительно уменьшит ВЧ импульсы от БП, если таковые будут, которые поступают на длинные провода, второй - обеспечит небольшой запас энергии для питания DS18, если провалы в питании будут несколько длиннее.
Допишу: больше 1 мкФ смысла ставить нет, но если есть только больше, то хуже не будет.
 
Изменено:
  • Лойс +1
Реакции: Firefox3860

Firefox3860

✩✩✩✩✩✩✩
14 Янв 2019
10
0
Самара
Все номера даны по принципиальной схеме в первом сообщении этой темы.
Ага, нашёл.
Вообще-то оба этих датчика подключены на один вход Ардуино и используют разные протоколы.
Разве к одному? На схеме ведь сигнал от DHT22 подключен к D2, а сигнал от DS18 - к D11. Или я не так понял?
Вынуть уже не получится, он четырьмя ногами припаян.

За рекомендации по конденсаторам спасибо, буду пробовать :)
 

какпопалович

✩✩✩✩✩✩✩
10 Мар 2020
6
0
день добрый кто сталкивался идет писк на кондере 60в и сильно греется

мтк может быть виновен ? к неме дороги
 

poty

★★★★★★✩
19 Фев 2020
2,987
895
Разве к одному? На схеме ведь сигнал от DHT22 подключен к D2, а сигнал от DS18 - к D11.
Извиняюсь, моя ошибка. Схемы рядом не было, ориентировался на описание и на память - память подвела. :) Тогда точно DHT22 выпаивать не нужно.
Есть ли возможность в принципе померить напряжения?
идет писк на кондере 60в и сильно греется
Скорее - проблема в индуктивности. Либо индуктивность мала, либо ток, на который она рассчитана. Если есть писк, значит генератор работает на очень низкой частоте, Стоит посмотреть на ёмкость C8.
 

Firefox3860

✩✩✩✩✩✩✩
14 Янв 2019
10
0
Самара
Есть ли возможность в принципе померить напряжения?
Да, вольтметр есть. Я думаю, надо наверно измерить напряжение на конце провода, а то вдруг там от 5 вольт уже мало что остаётся, и датчику не хватает...
 

poty

★★★★★★✩
19 Фев 2020
2,987
895
почемугреется с10 ?
Не видел платы, возможно, нагревает что-то рядом стоящее. Если греется действительно он, то, возможно, большая утечка или ESR (некачественный конденсатор). Какое на нём, кстати, напряжение?
540 чего?
 

какпопалович

✩✩✩✩✩✩✩
10 Мар 2020
6
0
@poty, 540 pf, заменил 34063 свист ушол кондер грется перестал(теплый) , а 840 аж дымит (тоже проверил и заменил ) напряжение было 72в стало 6в на кондере
 

poty

★★★★★★✩
19 Фев 2020
2,987
895
Если греется IRF840 и напряжение на конденсаторе маленькое - скорее всего либо T2, либо MC34063, либо всё та же индуктивность.
 

SL.y

★✩✩✩✩✩✩
22 Мар 2020
146
42
Уважаемые знатоки. Мне не нужны датчики влажности и температуры. В программировании не очень. Но очень хочу сделать на часы перебор всех катодов. Вот что удалось написать самостоятельно, но я не могу пришить это к v1.3. Помогите пожалуйста.
void loop() {
int a[]={0,0,0,0,0,0};
show(a);
delay(100);
int b[]={1,1,1,1,1,1};
show(b);
delay(100);
int c[]={2,2,2,2,2,2};
show(c);
delay(100);
int d[]={3,3,3,3,3,3};
show(d);
delay(100);
int e[]={4,4,4,4,4,4};
show(e);
delay(100);
int f[]={5,5,5,5,5,5};
show(f);
delay(100);
int g[]={6,6,6,6,6,6};
show(g);
delay(100);
int h[]={7,7,7,7,7,7};
show(h);
delay(100);
int i[]={8,8,8,8,8,8};
show(i);
delay(100);
int j[]={9,9,9,9,9,9};
show(j);
delay(100);
}