Arduino - сделай сам (страница 2)

Галерея
serg_42
s

Новокузнецк
6404 / 3634 раза

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
D

Мурманск
105 / 34 раза

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

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

serg_42
s

Новокузнецк
6404 / 3634 раза

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

DominiSantus
D

Мурманск
105 / 34 раза

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

DominiSantus
D

Мурманск
105 / 34 раза

Проблема оказалась проще, чем казалось.
Все было в том, что при старте Ардуинка, считывала из памяти(уж своей или часиков не знаю, своей наверное) время компиляции, каждый раз, пока я не додумался закомментировать эту часть кода и перекомпилировать. Конечно, за время компиляции(когда выставлял время по новой текущее) потерялось около 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
s

Новокузнецк
6404 / 3634 раза

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

DominiSantus
D

Мурманск
105 / 34 раза

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

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

serg_42
s

Новокузнецк
6404 / 3634 раза

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

DominiSantus
D

Мурманск
105 / 34 раза

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

DominiSantus
D

Мурманск
105 / 34 раза

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


  • Похожие темы