РАДИОСХЕМЫ



РАДИОФОРУМЫ


СХЕМЫ И СТАТЬИ



  • Страница 1 из 1
  • 1
Архив - только для чтения
Форум радиолюбителей » СХЕМЫ » МИКРОСХЕМЫ » Бинарные часы - проверка заряда батарейки. (бинарные часы, вопрос, заряд батареи.)
Бинарные часы - проверка заряда батарейки.
Пн, 25.09.2017, 17:32 | Сообщение # 1        
S77
аватар
  Постов: 18   ОК 
Добрый день.
Собираю бинарные часы по этой схеме:

Но с некоторыми изменениями(ниже). Из-за чего пришлось изменить микруху на AtMega48PA.

Итак, изменения.
Часы предполагаются наручными. Есть только часы и минуты. В связи с чем, выбрал микро который работает на максимально низком напряжении из возможных. Очень остро стоит вопрос о питании. Ибо стало ясно, что батарейки RC2032 хватает на 3 часа непрерывной работы только минутных диодов, если включать часовые то и того меньше.
Поэтому отображение времени делается по нажатию кнопки и горят они 5 секунд.

Вопрос вот в чем заключается. Тот факт, что когда батарейку надо будет менять(а это надо еще как-то понять), то при замене время я так понимаю встанет. Конечно занятие это пятисекундное, но все же. Из-за этого появилась идея сделать питание от двух независимых друг от друга батареек. Т.е. сначала питание идет только от одной, и когда она разряжается до критического значения начинает работать вторая, которая до этого "спала".
Под каждую из батареек сделать по светодиоду который загорается, когда она села.(все равно на минуты надо 6 диодов, и на часы 4(12часов), то можно 2 индикатора поместить рядом, чтобы смотрелось более-менее).

Или вообще не стоит с этим заморачиваться?
Только сейчас мысль пришла, а что если питать диод напрямую от батарейки и от степени его свечения прикидывать уровень ее заряда?
Я бы не спрашивал. если место не было бы ограниченно. Планируемые размеры 4х3(длинная часть перпендикулярна руке) или 4х4.
Суммарно получается 11 светодиодов(6 минуты 5 часы) 3 смд кнопки, и кварц, батарейки с другой стороны(если использовать вариант с двумя то можно вместо 2032 использовать 1632).

P.S. С точки зрения кода на СИ. Я делаю вечный цикл, в котором проверяю не нажата ли кнопка вызова и если да то отображаю. При этом цикл подсчета времени работает всегда?
P.P.S. Схема честно скомунизжена, просветите пожалуйста можно ли ссылки на ютуб давать.
Файлы: 1528710.png(201.2 Kb) · 0965923.png(144.2 Kb)
Вт, 26.09.2017, 12:16 | Сообщение # 2        
nolpofaze
аватар
  Постов: 442   Друзья 
Подойти к изготовлению часов и энергосбережению, с другой стороны, хотя бы использовать часовой кварц для счета времени, и не использовать высокие частоты работы контроллера, использовать режимы пониженного энергопотребления, всё это снижает потребление энергии.
Вт, 26.09.2017, 13:51 | Сообщение # 3        
S77
аватар
  Постов: 18   ОК 
nolpofaze, кварц ставлю на 32,768 кГц стандартный часовой.
В микросхемах серии "Р" присутствует пониженное энергопотребление. Но как я понял есть, что-то вроде "спящего" режима, в котором оно еще меньше. Тогда два вопроса. Как его включить и, если его включить, то разве отсчет времени не остановится?
Вт, 26.09.2017, 14:06 | Сообщение # 4        
nolpofaze
аватар
  Постов: 442   Друзья 
Если контроллер будет работать на этой частоте (32 кГц) то будет потреблять около 20 мкА при питании 1,8В. А по поводу использования спящих режимов надо курить даташит, там все есть, в том числе и примеры, в том числе и на Си.
Ср, 27.09.2017, 00:42 | Сообщение # 5        
S77
аватар
  Постов: 18   ОК 
nolpofaze, Почитал даташиты. Понял что для понижения энергопотребления нужен будет Power-Save мод.
И не подскажите где почитать про биты? Которые позволяют все это проворачивать, а то все мои запросы гуглу почему-то наталкивают на сайты с Fuse-битами, сомневаюсь, что это одно и тоже.
Ср, 27.09.2017, 06:33 | Сообщение # 6        
nolpofaze
аватар
  Постов: 442   Друзья 
S77, всё тот же даташит:) А по поводу включения режима, в ассемблере аврки есть инструкция SLEEP (сон, если хотите), при ее включении таймер2 в асинхронном режиме работает, время считает, для включения надо установить бит AS2 регистра ASSR. Опять же, все есть в даташите, или поисковик "асинхронный таймер АВР".
Ср, 27.09.2017, 07:24 | Сообщение # 7        
краб
аватар
  Постов: 4404   Друзья 
Цитата S77 ()
Собираю бинарные часы

smile В чем фишка таких часов,чтобы мозг держать всегда в наряжении двоично-десятичным кодом,особенно если с секундами часы,или я отстал от жизни smile
Ср, 27.09.2017, 08:27 | Сообщение # 8        
nolpofaze
аватар
  Постов: 442   Друзья 
краб, да может студент, схема сфоткана с доски smile
Ср, 27.09.2017, 17:58 | Сообщение # 9        
краб
аватар
  Постов: 4404   Друзья 
Цитата nolpofaze ()
может студент

smile Наверное партийное задание,год начался
Чт, 28.09.2017, 01:54 | Сообщение # 10        
Egour
аватар
  Постов: 916   Друзья 
Цитата S77 ()
Тот факт, что когда батарейку надо будет менять(а это надо еще как-то понять), то при замене время я так понимаю встанет.

Никуда оно не встанет, для питания МК на время замены батарейки достаточно электролитического конденсатора на несколько десятков мкФ. А от ионистора микроконтроллер в режиме пониженного энергопотребления может питаться многие часы.
Чт, 28.09.2017, 06:35 | Сообщение # 11        
nolpofaze
аватар
  Постов: 442   Друзья 
Цитата S77 ()
когда батарейку надо будет менять(а это надо еще как-то понять)

ну есть же АЦП, пускай он и меряет.
Пт, 29.09.2017, 00:34 | Сообщение # 12        
S77
аватар
  Постов: 18   ОК 
Короче за время курения даташитов и прочих раздумий набежало опять несколько вопросов.
Чтобы мне установить CKSEL = 1001 нужно сделать так?
CKSEL3 галочку
CKSEL2 пусто
CKSEL1 пусто
CKSEL0 галочку
Подразумевая что галочка 0, а ее отсутствие 1.
И тогда я опираясь на разделы 13.2.3(стр.53) и 13.5(стр.56) ставлю кварц на 32,762кГц и подключаю к ноге XTAIL1 и XTAIL2 кондеры по 6pF? Я просто не понял, что такое System Osc и Timer Osc. Да и смотря на другие схемы в интернете многие ставят в пределах 12-22pF.

Теперь про сон.
Мне нужно, чтобы мк просыпался по нажатию кнопки. Т.е. я вставил батарейку мк начал считать время, диоды при этом не горят. Нажал кнопку, светодиоды загорелись, прогорели 5 секунд и отключились. Мк опять ушел в сон. Я так понял, во время сна время считает асинхронный таймер(Timer2). Непонятно только на что он опирается.


Исходя из этой схемы я не совсем понял разницу между двумя зелеными прямоугольниками. Отличие Crystal Oscillator от Low-Frequency Crystal Oscillator в том, что второй специально сделан по 32,768кГц, а на первый можно вешать все, что душе угодно?
Пробудить мк из спячки можно только(стр.65):
Переполнением второго таймера, т.е. мк просыпается через определенные промежутки времени, что мне не подходит.
Есть какая-то страшная вещь PCINT. Она как я понял во время сна и смотрит не изменилось ли состояние на ногах. И если изменилось то надо просыпаться. Портов с этим PCINT - 23. Т.е. с помощью каждого из них я могу проверять прерывания?
Цитата с хабра:
Цитата
Действительно щас залез в даташиты… PCINT у 48/88 на все ножки) и прерываний на них всех не одно, а 4 =)

Или все же могу только 4? И как этот товарищ понял, что именно 4? Куда глядеть в даташите? В пункте 16.1(стр.84) только 3 PCINT'а указанно.
INT вроде подходят потому что смотрят изменения уровня с 1 на 0 или наоборот. Но их всего два.
WDT тоже не подходит ввиду того, что это тоже таймер. Не тот, что Timer2, но все же.
TWI Adress Match это вообще не понятно что.

В полвторого ночи, нет сил, чтобы вникнуть.
Ладно я пока спать завтра допишу, что не успел или забыл сейчас.
Файлы: 3229391.png(108.1 Kb)
Пт, 29.09.2017, 06:49 | Сообщение # 13        
nolpofaze
аватар
  Постов: 442   Друзья 
S77,
В ASSR пишешь AS2 (асинхронная работа timer2)
Цитата S77 ()
кондеры по 6pF
как бы вроде и не надо, кварц на
Цитата S77 ()
XTAIL1 и XTAIL2
, корпус кварца заземлить.
Контроллер работает на частоте по умолчанию, но все основное время спит, втихаря щёлкая таймером 2, изредка выходя из комы чтоб добавить 1 секунду или показать время.
1)на инт вешаешь кнопку, по которой будут загораться/тухнуть светодиоды, в прерывании по INT0,INT1 обрабатываешь тык на кнопку;
2)в прерывании по переполнению таймера 2 (раз в секунду, переполнение происходит на 256 тик, предделитель таймера2 ставим 128) выполняешь счет времени.
Можно как-то так, только надо следить, чтобы контроллер успевал прожевывать счет времени, между пробуждением и спячкой асинхронный таймер должен отработать несколько своих тактов и выполнить все свои дела.
Вс, 01.10.2017, 15:58 | Сообщение # 14        
S77
аватар
  Постов: 18   ОК 
т.е. алгоритм выглядит так
подаю питание
спим
просыпаемся каждую секунду по прерыванию таймера2 но с небольшой задержкой
заснули
если нажали кнопку проснулись с целью включить диоды, но на ход таймера это не влияет
Просто если он просыпается по прерыванию вторго таймера, то разве не будут диоды мигать каждую секунду?

Походу придется делать проверку условия каким образом мк проснулся.
Плюс ко всему, при прекращении питания сбрасывается время.
Пн, 02.10.2017, 07:50 | Сообщение # 15        
nolpofaze
аватар
  Постов: 442   Друзья 
S77, 1) почитай про прерывания; 2) подпрограммы (функции) на каждое прерывание свои.
В подпрограмме (функции) где считается время, наверное, нету смысла зажигать светодиоды. Проснулся прибавил единицу, протупил 3-4 такта, уснул.
По инту, проснулся, зажег светодиоды, выждал время (1-2-3-4-5... секунд), уснул.
Это если все обрабатывать в прерываниях. Да и на такое простое устройство, нет смысла городить, что-то сложное.
Форум радиолюбителей » СХЕМЫ » МИКРОСХЕМЫ » Бинарные часы - проверка заряда батарейки. (бинарные часы, вопрос, заряд батареи.)
  • Страница 1 из 1
  • 1
Поиск:

Внимание! Форум переехал на Tehnodium.ru



© 2010-2022 "Радиосхемы". All Rights Reserved  Почта  PDA