serg_42
Аватара пользователя

Arduino - сделай сам - стр. 2

DominiSantus lir 2032 аккумулятора, время останавливается при выключении из розетки, приходится перепрошивать, для установки времени, надо скорее осваивать составление меню, для установки времени, и таймеров...
Чё то я в проблему вникнуть не могу :nez-nayu:
Батарейка же CR2032 (судя по фото) в модуле часов стоит, значит часы обязаны продолжать тикать.
Или имелось ввиду время включения/выключения реле?
На фото не видно, если часы на чипе DS1307 - то можно прямо в них (там порядка пятидесяти 8-разрядных регистров бесхозных, которые сидят на батарейке), если часы на DS3231 - то храненить EEPROM ATMeg-и. Для этого надо подключить хидер EEPROM.h.
Второй вариант более предпочтителен, ибо универсальный.
Что касаемо настройки - это дело вкуса. Не так уж часто надо менять время "включить/выключить".
Я у себя просто в loop-e просматриваю Serial-порт и проверяю а не пришли ли с Serial-порта какие либо команды.
У меня они обычные, текстовые, типа DOS-овских:
"date 13 04 18" - выставить на календаре дату 13.04.2018 (кстати - сегодня пятница, 13, блин... :sh_ok: )
"time 09 19 35" - выставить на часах время 09:19:35
"relay1 01 09 19" - включать реле 1 в 09:19
"relay1 00 19 19" - выключать реле 1 в 19:19
"relay2 01 10 20" - включать реле 2 в 10:20
"relay2 00 11 35" - выключать реле 2 в 11:35
и т.д. и т.п.
А уж отправить эту команду можно как угодно (с ноутбука по USB шнуру, по блютузу, по WiFi)
DominiSantus
Аватара пользователя

Время включения, выключения оно помнит, но при отключении от питания не тикает, запоминает время отключения от сети и потом тикает с той минуты.
Cr2032 стоит, но толи она мертвая толи ещё что. Модуль часов дс 3231 стоит. Может её не хватает чтоб Часы тикали?

А подробнее можно про запись а еепром?
На данный момент время таймера лежит вообще напрямую в прошивке.
serg_42
Аватара пользователя

DominiSantus запоминает время отключения от сети и потом тикает с той минуты.
DominiSantus На данный момент время таймера лежит вообще напрямую в прошивке.
Тут есть какое-то противоречие. :nez-nayu: Скетч надо глянуть...
По поводу EEPROM можно просто погуглить "EEPROM Ардуино".
Тут выложил свои исходники (файл Jebo_Light.ino).
Там всё откомментировано.
Если что не понятно - спрашивайте.
На дисплее это выглядит вот так:
DominiSantus
Аватара пользователя

Не совсем точно выразился, не время, там я просто читаю время из часов и сверяю значение часа, если оно в диапазоне от до часов то включаю свет, если нет то выключаю.
Более сложные алгоритмы пока не нужны:) потом добавлю что то.
А Часы просто останавливаются, но не сбрасываются...
DominiSantus
Аватара пользователя

Проблема оказалась проще, чем казалось.
Все было в том, что при старте Ардуинка, считывала из памяти(уж своей или часиков не знаю, своей наверное) время компиляции, каждый раз, пока я не додумался закомментировать эту часть кода и перекомпилировать. Конечно, за время компиляции(когда выставлял время по новой текущее) потерялось около 5-10(вряд ли больше) секунд, но теперь часики тикают даже отключенные от питания, на 2032 батарейке.

Пока использую такой приём:

int Hours_start = 10;
int hours_fin = 20;

Int h_now = int(time.gettime(“H”));

If (hours_start >= h_now && hours_start <= hours_fin) { включаю} else { выключаю}

Одна проблема, кривые руки, пока перепаивал контакты на релюшке, убил ее... не знаю или релюшку или только посадочное место для gnd контакта(его точно, слезло полностью, может и соседние дорожки зацепил). Буду теперь на этой релюшке тренироваться с паяльником(никогда раньше его в руках не держал, школа не в счёт)...
Завтра поеду в радиомаг:)
serg_42
Аватара пользователя

DominiSantus Буду теперь на этой релюшке тренироваться с паяльником(никогда раньше его в руках не держал,
DominiSantus
Аватара пользователя

Действие третье:

Переставил релюшку, заодно укоротил часть проводов и места спайки закрыл термоусадкой.
Выявил: контрастность дисплея надо уменьшать.
Попробую 3 пин(лсд), посадить на аналоговый ардуинки (обязательно ШИМ, или можно любой?), и уменьшить контраст вдвое, а на вечер вообще до минимума и на ночь.
Ну и думаю весь жгут проводов(а я посадил светильник напрямую к коробочке, без управляемой розетки), запихать в клемники(на зажимах такие видел, как на колонках), чтоб ее легко в разрыв ставить/снимать, если унести на прошивку вдруг надо или на другое устройство.
Но пока ещё предстоит упаковка всего этого в коробочку....
Пока взял распаечную коробку 10х10, убрал все внутренние выступы, придётся отрезать центральный туннель(под саморез, который ее соединяет) и крепить по ходу на горячие сопли, или что-то думать.
Попробую на будущее нарисовать коробку и распечатать, но это ещё очень не скоро.
serg_42
Аватара пользователя

DominiSantus Попробую 3 пин(лсд), посадить на аналоговый ардуинки (обязательно ШИМ, или можно любой?),
Низяяя..... :-):
..
https://youtu.be/V6C8-4g7u5Q
...
.... ибо ток светодиода подсветки слишком велик. ATmega рано или поздно "сгорит" (40 мА - предельный ток одного пина, 100 мА - максимальны суммарный ток по всем пинам).
В принципе, можно регулировать подсветку дисплея ШИМ-ом и обязательно через резистор (Ом на 200 или около того).
Я не стал заморачиваться - просто впаял резистор на 150 Ом вместо джампера подсветки дисплея:
DominiSantus и уменьшить контраст вдвое
Имеется ввиду "яркость"?
Контрастность дисплея регулируется "крутилкой" на его заднице.
DominiSantus
Аватара пользователя

Значит ШИМ буду осваивать, а крутилки то у меня нету.
То есть надо посадить 200(220?) Ом на контрастную 3 ногу экрана, и пихнуть ее в ШИМ пин какой-либо, а туда давать плавающие значения и смотреть как оно получится, так?
DominiSantus
Аватара пользователя

А, стоп, контраст на 3 ноге, а яркость же отдельно на 15,16 диодом... точно.
Мне в принципе надо яркость уменьшать, немного.