У меня работает ОНО. Я сначала поставил туда обычную батарейку 2032, напряжением 3 вольта. И не мог понять, почему часы при отключении от USB останавливаются.
После замены батареи на штатный аккумулятор LIR 2032 напряжением 3,6 вольта часы стали работать. Однако, я заметил отставание примерно секунд на 20 в месяц.
Пока мне это не актуально, руки дойдут - займусь исследованиями этого феномена. А пока что заказал модуль RTC более новой модели. Точно не помню, какая. Но хай буде... :-)
Несколько дней пытаюсь запустить модуль. Дополнительная EEPROM с адресом 0x50 отлично пишется и читается. DS1307 на сканере шины присутствует 0x68. Менял кварц. Рассматривал схему. Пришёл к выводу, что батарея подключена неправильно. Она должна быть подсоединина в точку соединения R4 и R6. В этом случае логика схемы становится нормальной. Батарея вешается на ногу м.с. как в мануале. Выводится на контакт ВАТТ. При извлечении батареи на ноге м.с. остается напряжение с делителя R4 - R6. Главное в батарею не прёт ток через маленький резистор R5 и она не потечёт через пару недель. Переделал. Закоротил перед вставкой батарею не на долго, что бы сбросить набранные 4 вольта. Сейчас на ней 3.3 вольта. Часы при чтении любого адреса отдают 0x7D. Что то дёргают на шине, но время не отдают.
Дико извеняюсь что пишу сдесь, но думаю создавать новую тему ради такого вопроса не целесообразно.
Пожалуйста подскажите как сделать так, что бы вместо отображения секунд на LCD 16x2 заменить на мигающие двоеточие... Понимаю, что это как то просто, но я ступоре :( Подскажите пожалуйста как это описать в коде.
Сейчас это выглядет так 16:51:37 что в полне нормально, но хотесь бы 16:51 где " : " мигает в такт секунд.
1. Считали значение секунд. 2. Сверили с переменной для хранения. 3. Если равно - возврат п.1.
4. Если не равно - запомнили в переменную. 5 Проверили переменную "флаг".
6. Если опущен - поднять. 6.1 Печатаем в позицию ":". 6.2 Вернулись п.1.
7. Если поднят - опустить. 7.1 Печатаем в позицию " ". 7.2 Вернулись п.1
Удаляете свою либу из arduino-1.0.3\libraries или перемещаете ее куда нибудь, качаете вот эту либу и туда же в arduino-1.0.3\librariesраспаковываете, перезапускаете IDE. Подключать исключительно к А4 и А5, не забываем про подтягивающие резисторы, если таковых нет не модуле.
Максим день добрый. Не могли бы Вы перезалить данную библиотеку. Ссылка не рабочая.
Удаляете свою либу из arduino-1.0.3\libraries или перемещаете ее куда нибудь, качаете вот эту либу и туда же в arduino-1.0.3\librariesраспаковываете, перезапускаете IDE. Подключать исключительно к А4 и А5, не забываем про подтягивающие резисторы, если таковых нет не модуле.
Максим день добрый. Не могли бы Вы перезалить данную библиотеку. Ссылка не рабочая.
Огромная просьба Максиму, также всем у кого есть данная библиотека. Не могли бы перезалить данную библиотеку, очень нужна. Буду признателен.
Используя RTClib, датированную 1 июля 2014, наткнулся на интересный эффект: если автоматически устанавливать из скетча время с помощью функции rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); - то часы встают при переходе питания на батарейку. Если выставить часы по-старинке, то дальнейшее использование в скетче этой библиотеки (других функций RTClib) - не вызывает никаких глюков с часами.
Как раз именно эта проблема у меня. Часы устанавливаются по времени загрузки скетча. После отключения питания платы ардуины, или при перезагрузке - начинают отсчет времени и даты с момента загрузки скетча. Подскажите, что значит "по-старинке"? Совсем уже достал этот модуль (
// include the library code:
#include <LiquidCrystal.h>
#include <Wire.h>
#include "RTClib.h"
// LCD пин управления яркостью
#define PWM_LED_PIN 3
// LCD другие пины
#define PIN_LCD_RS 39
#define PIN_LCD_EN 41
#define PIN_LCD_D4 43
#define PIN_LCD_D5 45
#define PIN_LCD_D6 47
#define PIN_LCD_D7 49
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd( PIN_LCD_RS, PIN_LCD_EN, PIN_LCD_D4, PIN_LCD_D5, PIN_LCD_D6, PIN_LCD_D7 );
RTC_DS1307 RTC;
void setup() {
analogWrite( PWM_LED_PIN, 20 ); //установка яркости экрана дисплея
lcd.begin(16, 2); //настройка дисплея - 16x02
// lcd.print("House4u sol.proj"); //выводим приветсвие
// lcd.setCursor(0, 1); //перевод курсора на 2 строку
Wire.begin();
RTC.begin();
RTC.adjust(DateTime(__DATE__, __TIME__));
}
void loop()
{
lcd.setCursor(0, 0);
DateTime now = RTC.now();
lcd.print(now.year(), DEC);
lcd.print('/');
if (now.month() < 10) lcd.print('0');
lcd.print(now.month(), DEC);
lcd.print('/');
if (now.day() < 10) lcd.print('0');
lcd.print(now.day(), DEC);
lcd.setCursor(0, 1);
if (now.hour()<10) lcd.print('0');
lcd.print(now.hour(), DEC);
lcd.print(':');
if (now.minute()<10) lcd.print('0');
lcd.print(now.minute(), DEC);
lcd.print(':');
if (now.second()<10) lcd.print('0');
lcd.print(now.second(), DEC);
// lcd.print(" ");
delay(990); //задержка 1 секунда
}
Часы никуда не встают. Просто скеч их прописывает при старте.
по старинке это когда время не скечем выставляется а берется откуда-то, например запрашивает через сериал у компа...
Часы никуда не встают. Просто скеч их прописывает при старте. по старинке это когда время не скечем выставляется а берется откуда-то, например запрашивает через сериал у компа...
Вы хотите сказать, что строчка
RTC.adjust(DateTime(__DATE__, __TIME__));
постоянно устанавливает время в часах? Но тогда скажите ,почему после перезаливки скетча с закомментированной строкой не приводит ни к чему? Всё так-же при перезагрузке платы или откл питания питания часы далее не считают время.
Только что Проводил очередной эксперимент с комментированием строки 28 кода.
Результат: Часы СТОЯЛИ все время, пока было отключено питание ардуины... Аппаратная часть?
Измерил напряжение на аккумуляторе (Li-ion LIR2032 3.6v) и ужаснулся - вольтметр показывает 4,25 (!) вольт. При этом когда проверял заряд аккума сразу после получения посылки - батарея показывала около 3,8в. Ардуинка стояла подключенной к сети около суток. Еду за обычной батарейкой - посмотрим как себя поведет модуль в комплекте с ней.
...
Обычная батарейка 3,36в - результат тот-же. Часы стоят при отсутствии питания ардуино (скетч заливал из стандартной библиотеки DS1307RTC. SetTime и ReadTest )
По поводу того что модуль засыпает при отключении питания Arduino (соответственно и модуля) при исправном аккумуляторе:
закорачивание резистора R6 или изменение его номиналов ни к чему хорошему не приводит. У меня при этом перестали устанавливаться дата и время (записываться в память). Все проблемы от вывода BAT модуля. Если его не подключать, то таймер прекрасно работает от батарейки. Подключать его надо скорее всего через транзисторный ключ, чтобы исключить его подключение к выводу Arduino в выключенном состоянии. Сейчас над этим работаю, хоть ит заказал себе тоже DS3231 на замену.
Да в том то и дело что нет никаких подмыканий. Изначально на минусовой точке от батареи был плохой контакт - пропаял. Но это не мешало заряжаться аккумулятору, что уже странно.
Резисторы R4:R6 представляют собой банальный делитель напряжения, ну типа чтобы не спалить, поэтому нельзя его закорачивать. Но даже с закороченным не работает (я сначала пробовал уменьшать номинал R6). Только если отсоединить BAT. Пробовал через транзистор, но ситуация та же - при выключении таймер замирает. Ну не реле же туда ставить, хотя это реальный выход. Я пока пробовал на биполярниках, теперь попробую на мосфетах, может это что-то даст.
А я не морочился и заменил на обычную CR2032, цепь заряда ликвидировал, резистор с нижнего плеча выпаял. Работает как часы))). Ну на кой там заряд, не понимаю. Через 10 лет, что аккуму, что батарее все равно кирдык придет. И проверьте напряжения на ноге для батареи на DS-ке. Для корректной работы вроде в 1,25 раза должно быть меньше, чем напряжение питания (в коэффициенте могу ошибатся).
P/S проверьте, когда часы останавливаются, нет ли напряжения на ноге питания DS-ки. Если оно присутствует и примерно равно напряжению резервного, то там собака и порылась.
bwn, на 8 ноге DS 0,0028В. Во включенном состоянии напряжение аккумулятора 4,35В, на выводе BAT(3) имеем 3,129В и в выключенном соответственно 4,376 и 3,067.
Судя по тому что при извлечении цепи заряда и делителя, и установке CR2032 все работает отлично, то причиной может являться только диод который имеет утечку в обратном направлении что приводит к небольшой подпитке VCC DS1307. Как-то так. Попробую заменить диод на какой-нибудь другой.
bwn, на 8 ноге DS 0,0028В. Во включенном состоянии напряжение аккумулятора 4,35В, на выводе BAT(3) имеем 3,129В и в выключенном соответственно 4,376 и 3,067.
Судя по тому что при извлечении цепи заряда и делителя, и установке CR2032 все работает отлично, то причиной может являться только диод который имеет утечку в обратном направлении что приводит к небольшой подпитке VCC DS1307. Как-то так. Попробую заменить диод на какой-нибудь другой.
Я бы его вообще выкинул, а поставил обычную батарейку. Цепь заряда там весьма гнусно сделана.
Теперь и заряжает и тикает при отключении. Всего-то надо поменять резистор и добавить диод в Tiny RTC и вывод BAT к ARDUINO подключать надо тоже через диод.
Добрый день, подскажите как настроить дату, точнее год в микросхеме DS1307. Мне необходимо прописать первые две цифры. Почему по умолчанию ставятся 20 в скетче. Попробовал перевести дату на компе на 1985- ничего не получилось, при этом год получился 2081. Проблема в том что имеется сервисный прибор для проверки аккумуляторов с отчетностью и генерацией кодов неисправности. Стандартно в нём подводится только время, а дата зашита как в кассовых аппаратах, чтоб небыло махинаций. Само собой наши специалисты пытались нае..ь систему, незнаю что делали, было до моего прихода на работу, теперь прибор не включается, точнее включается, но пишет неправильно установлена дата и выключается. Попытался через стандартны скетч ардуино настроить, но всё кроме года настраивается, а вместо первых цифр 20 получаются хаотичные знаки(№;"%?) Судя по даташиту в микросхеме только две ячейки для года- последние цифры, как реализовано это в скетче? почему не переводится на 19хх
добавлено: затем читаешь файл README.TXT библиотеки DS1302RTC и понимаешь, что изменил системное время - нужно сделать RTC.set(now()); для записи в микросхему часов.
*не знаю, зачем я за тебя читаю описалово к библиотекам
--------------------------------------------------------------------------------
The set(time_t t) method sets the RTC to the given time_t value.
The example below first sets the system time (maintained by the Time library) to
a hard-coded date and time, then sets the RTC from the system time. The
setTime(hr, min, sec, day, month, year) function comes from the Time library.
setTime(23, 31, 30, 13, 2, 2009); //set the system time to
//23h31m30s on 3Feb2009
RTC.set(now()); //set the RTC from the system time
Function return zero if operation successful.
--------------------------------------------------------------------------------
Привет всем, с новм годом. Я снова со своей проблемой, год так и не получилось адекватно настроить
Нашёл вот такой пример
//Подключаем библиотеки:
#include <Time.h>
#include <Wire.h>
#include <DS1307RTC.h>
void setup() {
setSyncProvider(RTC.get);
//Устанавливаем время в формате:
//Часы, минуты, секунды, день, месяц, год
setTime(12,11,59,1,1,2016);
//Применяем:
RTC.set(now());
}
void loop()
{
delay(100);
}
всё компилируется и загружается, в мониторе последовательного порта всё идёт отлично. При подключении модуля часов к прибору, часы идут не верно- на 8 часов больше и год начальные цифры- хаотичные знаки. Время и так в приборе настраивается, а вот с годом проблема.
поигравшись с числами года 1990, 2010 или вообще три знака 015 модуль начинает выводить хаотичные даты. По описанию библиотеки модуль должен принимать даты от 1970 до 2100 каким командами это реализовано? помогите
Dimatkz, в принципе сам чип по даташиту понимает год от 0 до 99. Всё остальное -личные художества написателей библиотек. Можно записать год без левых библиотек, собссно это всего 4 команды:
Wire.beginTransmission(0x68); // адрес чипа
Wire.write(0x06); //адрес регистра с годом
Wire.write(16); // пишем в него 16 (2016)
Wire.endTransmission(); // конец записи
это нужно выполнить один раз :) И в заголовке нужно подтянуть библу #include "Wire.h" И Wire.begin(); в сетапе.
А каким образом программа понимает что сейчас не 1900, а 2000 год? У меня имеется прибор- тестер акб- сервисный прибор, в котором не меняется дата, только время. кто то до меня пытался сменить дату и прибор завис, при включении пишет что ненастроено время и время и дпльше не пускает. При замыкании линий данных на микросхеме времени во время включения, прибор запускается со сбросом всех настроек, при этом можно поменять время , язык меню, но дата и год не хотят меняться- прибор перезагружается и при этом год отображается , спереди два хаотичных символа и текущий год, при изменении года- передние символы так же меняются. Пробовал менять год и после этого считывал информацию с находящейся радом EEPROM, после этого сравнивал, если не менять никакие другие настройки в меню тестера то дампы идентичные, получается первые цифры завязаны на эту микруху, в ней то же имеется внутренняя память но как с ней работать, как сравнить данные?
Если не составляет труда, то можно помочь с написанием скетча дл вывода инфы с 9 по 56 адрес содержимого микросхемы в монитор данных, возможно там что то меняется и непонятные передние символы там найдутся.
Убрал (коротнул) R6 и естественно все заработало.
Думаю так и оставить.
Ночь пролежало без питания, при включении отставание часов не замечено (до секунды).
Непонятно одно зачем ТАКОЕ решение сделали китайцы!
И есть ли кто-то у кого ОНО работает без исключения R6!
У меня работает ОНО. Я сначала поставил туда обычную батарейку 2032, напряжением 3 вольта. И не мог понять, почему часы при отключении от USB останавливаются.
После замены батареи на штатный аккумулятор LIR 2032 напряжением 3,6 вольта часы стали работать. Однако, я заметил отставание примерно секунд на 20 в месяц.
Пока мне это не актуально, руки дойдут - займусь исследованиями этого феномена. А пока что заказал модуль RTC более новой модели. Точно не помню, какая. Но хай буде... :-)
Я заказал себе такой:
http://www.ebay.com/itm/400503978923
Вроде кварц внутри с термостабилизацией. Деньги те же!
Проверю отпишусь!
P.S. на сколько я понял из прочитанного в Инете то бибилиотеки от ds1307 подходят к DS3231.
Кстати хочу вот, что спросить:
есть бибилиотеки разные, а вот как найти их описание?
Очень мало кто из авторов в архивы к библиотекам кладет развернутое описание процедур, функций, переменных и т.д.
Вообщем вопрос в том как оптимальней искать эти даташиты к библиотекам
Заранее СПС.
Я заказал себе такой:
http://www.ebay.com/itm/400503978923
Вроде кварц внутри с термостабилизацией. Деньги те же!
Проверю отпишусь!
P.S. на сколько я понял из прочитанного в Инете то бибилиотеки от ds1307 подходят к DS3231.
Кстати хочу вот, что спросить:
есть бибилиотеки разные, а вот как найти их описание?
Очень мало кто из авторов в архивы к библиотекам кладет развернутое описание процедур, функций, переменных и т.д.
Вообщем вопрос в том как оптимальней искать эти даташиты к библиотекам
Заранее СПС.
Библиотеки совместимы, но не 100%.
Даташит на библу вы вряд ли найдете, в ней есть файл keyword, в нем перечень допустимых команд, дальше методом тыка.
для DS3231 предлагаю такой подход и модифицированную библиотеку.
http://forum.amperka.ru/threads/%D0%A7%D0%B0%D1%81%D1%8B-ds-3231.4688/#p...
Еще пример использования
http://forum.amperka.ru/threads/rtc1307-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D...
Вот тоже есть на что посмотреть!
http://www.rinkydinkelectronics.com/library.php
Причем с отличными МАНУАЛАМИ!!!!!
БОльшая часть кода по моей первой ссылке разжевана здесь
http://wiki.amperka.ru/%D0%B2%D1%80%D0%B5%D0%BC%D1%8F:rtc-%D0%B8%D0%BD%D...
Я просто адаптировал его под DS3231.
Вторая ссылка - просто пример того, что можно сделать на основе ядра по первой ссылке.
Несколько дней пытаюсь запустить модуль. Дополнительная EEPROM с адресом 0x50 отлично пишется и читается. DS1307 на сканере шины присутствует 0x68. Менял кварц. Рассматривал схему. Пришёл к выводу, что батарея подключена неправильно. Она должна быть подсоединина в точку соединения R4 и R6. В этом случае логика схемы становится нормальной. Батарея вешается на ногу м.с. как в мануале. Выводится на контакт ВАТТ. При извлечении батареи на ноге м.с. остается напряжение с делителя R4 - R6. Главное в батарею не прёт ток через маленький резистор R5 и она не потечёт через пару недель. Переделал. Закоротил перед вставкой батарею не на долго, что бы сбросить набранные 4 вольта. Сейчас на ней 3.3 вольта. Часы при чтении любого адреса отдают 0x7D. Что то дёргают на шине, но время не отдают.
Дико извеняюсь что пишу сдесь, но думаю создавать новую тему ради такого вопроса не целесообразно.
Пожалуйста подскажите как сделать так, что бы вместо отображения секунд на LCD 16x2 заменить на мигающие двоеточие... Понимаю, что это как то просто, но я ступоре :( Подскажите пожалуйста как это описать в коде.
Сейчас это выглядет так 16:51:37 что в полне нормально, но хотесь бы 16:51 где " : " мигает в такт секунд.
Еще раз извеняюсь за такой вопрос :)
1. Считали значение секунд. 2. Сверили с переменной для хранения. 3. Если равно - возврат п.1.
4. Если не равно - запомнили в переменную. 5 Проверили переменную "флаг".
6. Если опущен - поднять. 6.1 Печатаем в позицию ":". 6.2 Вернулись п.1.
7. Если поднят - опустить. 7.1 Печатаем в позицию " ". 7.2 Вернулись п.1
Алгоритм такой.
Спасибо Максим! Работает.
Удаляете свою либу из arduino-1.0.3\libraries или перемещаете ее куда нибудь, качаете вот эту либу и туда же в arduino-1.0.3\libraries распаковываете, перезапускаете IDE. Подключать исключительно к А4 и А5, не забываем про подтягивающие резисторы, если таковых нет не модуле.
Максим день добрый. Не могли бы Вы перезалить данную библиотеку. Ссылка не рабочая.
Удаляете свою либу из arduino-1.0.3\libraries или перемещаете ее куда нибудь, качаете вот эту либу и туда же в arduino-1.0.3\libraries распаковываете, перезапускаете IDE. Подключать исключительно к А4 и А5, не забываем про подтягивающие резисторы, если таковых нет не модуле.
Максим день добрый. Не могли бы Вы перезалить данную библиотеку. Ссылка не рабочая.
Огромная просьба Максиму, также всем у кого есть данная библиотека. Не могли бы перезалить данную библиотеку, очень нужна. Буду признателен.
Удалил, как продублировавшееся. (Не нашел функции удаления сообщений)
Используя RTClib, датированную 1 июля 2014, наткнулся на интересный эффект: если автоматически устанавливать из скетча время с помощью функции rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); - то часы встают при переходе питания на батарейку. Если выставить часы по-старинке, то дальнейшее использование в скетче этой библиотеки (других функций RTClib) - не вызывает никаких глюков с часами.
Как раз именно эта проблема у меня. Часы устанавливаются по времени загрузки скетча. После отключения питания платы ардуины, или при перезагрузке - начинают отсчет времени и даты с момента загрузки скетча. Подскажите, что значит "по-старинке"? Совсем уже достал этот модуль (
Часы никуда не встают. Просто скеч их прописывает при старте.
по старинке это когда время не скечем выставляется а берется откуда-то, например запрашивает через сериал у компа...
Закомментируйте 28 строку и посмотрите, что будет.
Закомментируйте 28 строку и посмотрите, что будет.
Ничего не будет. нужно добавить пару строчек кода. Брать с сериала время и дату и править.
Вы хотите сказать, что строчка
RTC.adjust(DateTime(__DATE__, __TIME__));
постоянно устанавливает время в часах? Но тогда скажите ,почему после перезаливки скетча с закомментированной строкой не приводит ни к чему? Всё так-же при перезагрузке платы или откл питания питания часы далее не считают время.
Закомментируйте 28 строку и посмотрите, что будет.
Прошу меня послать.. :)
по нужному адресу (ссылке), где этому научиться
Я понимаю что гугл стал очень сложным...
http://playground.arduino.cc/code/time
Только что Проводил очередной эксперимент с комментированием строки 28 кода.
Результат: Часы СТОЯЛИ все время, пока было отключено питание ардуины... Аппаратная часть?
Измерил напряжение на аккумуляторе (Li-ion LIR2032 3.6v) и ужаснулся - вольтметр показывает 4,25 (!) вольт. При этом когда проверял заряд аккума сразу после получения посылки - батарея показывала около 3,8в. Ардуинка стояла подключенной к сети около суток. Еду за обычной батарейкой - посмотрим как себя поведет модуль в комплекте с ней.
...
Обычная батарейка 3,36в - результат тот-же. Часы стоят при отсутствии питания ардуино (скетч заливал из стандартной библиотеки DS1307RTC. SetTime и ReadTest )
Ур-р-р-а-а-а-а! Заработало!
Сделал как в посте http://arduino.ru/forum/programmirovanie/ds1307-pokazyvayut-strannoe-vremya-kotoroe-stoit?page=2#comment-109188 - Низкий поклон FlyTortoise
Замерил напряжения самой батареи (вынул из модуля) = 3,5 V
Вы не могли бы замерить напряжение батареи после пары суток работы ардуинки с подключенным питанием? А то у меня показало 4,25в. За аккум страшно.
По поводу того что модуль засыпает при отключении питания Arduino (соответственно и модуля) при исправном аккумуляторе:
закорачивание резистора R6 или изменение его номиналов ни к чему хорошему не приводит. У меня при этом перестали устанавливаться дата и время (записываться в память). Все проблемы от вывода BAT модуля. Если его не подключать, то таймер прекрасно работает от батарейки. Подключать его надо скорее всего через транзисторный ключ, чтобы исключить его подключение к выводу Arduino в выключенном состоянии. Сейчас над этим работаю, хоть ит заказал себе тоже DS3231 на замену.
Проверьте пож. устройство на наличие подмыканий после того как Вы закоротили R6.
Все должно работать с закороткой вместо R6!
Это видно по схеме ОДНОЗНАЧНО!
Возможно банальная токопроводящая соринка где то попала или сопля в момент закоротки.
Ну должно работать и все тут )))))))))
Да в том то и дело что нет никаких подмыканий. Изначально на минусовой точке от батареи был плохой контакт - пропаял. Но это не мешало заряжаться аккумулятору, что уже странно.
Резисторы R4:R6 представляют собой банальный делитель напряжения, ну типа чтобы не спалить, поэтому нельзя его закорачивать. Но даже с закороченным не работает (я сначала пробовал уменьшать номинал R6). Только если отсоединить BAT. Пробовал через транзистор, но ситуация та же - при выключении таймер замирает. Ну не реле же туда ставить, хотя это реальный выход. Я пока пробовал на биполярниках, теперь попробую на мосфетах, может это что-то даст.
А я не морочился и заменил на обычную CR2032, цепь заряда ликвидировал, резистор с нижнего плеча выпаял. Работает как часы))). Ну на кой там заряд, не понимаю. Через 10 лет, что аккуму, что батарее все равно кирдык придет. И проверьте напряжения на ноге для батареи на DS-ке. Для корректной работы вроде в 1,25 раза должно быть меньше, чем напряжение питания (в коэффициенте могу ошибатся).
P/S проверьте, когда часы останавливаются, нет ли напряжения на ноге питания DS-ки. Если оно присутствует и примерно равно напряжению резервного, то там собака и порылась.
bwn, на 8 ноге DS 0,0028В. Во включенном состоянии напряжение аккумулятора 4,35В, на выводе BAT(3) имеем 3,129В и в выключенном соответственно 4,376 и 3,067.
Судя по тому что при извлечении цепи заряда и делителя, и установке CR2032 все работает отлично, то причиной может являться только диод который имеет утечку в обратном направлении что приводит к небольшой подпитке VCC DS1307. Как-то так. Попробую заменить диод на какой-нибудь другой.
bwn, на 8 ноге DS 0,0028В. Во включенном состоянии напряжение аккумулятора 4,35В, на выводе BAT(3) имеем 3,129В и в выключенном соответственно 4,376 и 3,067.
Судя по тому что при извлечении цепи заряда и делителя, и установке CR2032 все работает отлично, то причиной может являться только диод который имеет утечку в обратном направлении что приводит к небольшой подпитке VCC DS1307. Как-то так. Попробую заменить диод на какой-нибудь другой.
Я бы его вообще выкинул, а поставил обычную батарейку. Цепь заряда там весьма гнусно сделана.
Зачем выкидывать? Я победил!
Теперь и заряжает и тикает при отключении. Всего-то надо поменять резистор и добавить диод в Tiny RTC и вывод BAT к ARDUINO подключать надо тоже через диод.
тоже мучался с часами: то нормально время показывают, то 28.88.88
перебрал все библиотеки, менял резисторы от 2.7 до 10 ком
причина оказалась очень простой: провода от часовой микросхемы DS1307
SDA и SCL шли на аурлино почти рядом- 0,5 см раздвинул на 5 см и все пошло.
Добрый день, подскажите как настроить дату, точнее год в микросхеме DS1307. Мне необходимо прописать первые две цифры. Почему по умолчанию ставятся 20 в скетче. Попробовал перевести дату на компе на 1985- ничего не получилось, при этом год получился 2081. Проблема в том что имеется сервисный прибор для проверки аккумуляторов с отчетностью и генерацией кодов неисправности. Стандартно в нём подводится только время, а дата зашита как в кассовых аппаратах, чтоб небыло махинаций. Само собой наши специалисты пытались нае..ь систему, незнаю что делали, было до моего прихода на работу, теперь прибор не включается, точнее включается, но пишет неправильно установлена дата и выключается. Попытался через стандартны скетч ардуино настроить, но всё кроме года настраивается, а вместо первых цифр 20 получаются хаотичные знаки(№;"%?) Судя по даташиту в микросхеме только две ячейки для года- последние цифры, как реализовано это в скетче? почему не переводится на 19хх
Добрый день, подскажите как настроить дату, точнее год в микросхеме DS1307. Мне необходимо прописать первые две цифры.
с помощью библиотеки Time
А можно поподробней, а лучше б скетчем, что в стандартном подправить?
А можно поподробней, а лучше б скетчем, что в стандартном подправить?
я не знаю, что занах "стандартный скетч".
время так настраивается
подробности в файле Readme.txt библиотеки.
спасибо попробую
ничего не получается, точнее не изменяется, компилируется, загружается, но не меняется, попробовал так
я чего то не понимаю?
я чего то не понимаю?
да - не понимаешь.
я же показал, как установить 1985-й год
setTime(hour(), minute(), second(), day(), month(), 1985);
добавлено: затем читаешь файл README.TXT библиотеки DS1302RTC и понимаешь, что изменил системное время - нужно сделать RTC.set(now()); для записи в микросхему часов.
*не знаю, зачем я за тебя читаю описалово к библиотекам
Привет всем, с новм годом. Я снова со своей проблемой, год так и не получилось адекватно настроить
Нашёл вот такой пример
Dimatkz, в принципе сам чип по даташиту понимает год от 0 до 99. Всё остальное -личные художества написателей библиотек. Можно записать год без левых библиотек, собссно это всего 4 команды:
это нужно выполнить один раз :) И в заголовке нужно подтянуть библу #include "Wire.h" И Wire.begin(); в сетапе.
А каким образом программа понимает что сейчас не 1900, а 2000 год? У меня имеется прибор- тестер акб- сервисный прибор, в котором не меняется дата, только время. кто то до меня пытался сменить дату и прибор завис, при включении пишет что ненастроено время и время и дпльше не пускает. При замыкании линий данных на микросхеме времени во время включения, прибор запускается со сбросом всех настроек, при этом можно поменять время , язык меню, но дата и год не хотят меняться- прибор перезагружается и при этом год отображается , спереди два хаотичных символа и текущий год, при изменении года- передние символы так же меняются. Пробовал менять год и после этого считывал информацию с находящейся радом EEPROM, после этого сравнивал, если не менять никакие другие настройки в меню тестера то дампы идентичные, получается первые цифры завязаны на эту микруху, в ней то же имеется внутренняя память но как с ней работать, как сравнить данные?
Dimatkz, библы просто считывают регистр 0x06 и прибавляют к нему 2000 :) Что у вас там случилось затрудняюсь представить..
Если не составляет труда, то можно помочь с написанием скетча дл вывода инфы с 9 по 56 адрес содержимого микросхемы в монитор данных, возможно там что то меняется и непонятные передние символы там найдутся.
поправьте если я не прав:
в чипе
DS1307
56 байт памяти для хранения пользовательских данных
там что нельзя год хранить?
поправьте если я не прав:
в чипе
DS1307
56 байт памяти для хранения пользовательских данных
там что нельзя год хранить?
можно конечно, помогите считать данные с этих адресов или для начала заполнить их FF
Dimatkz, прочитать как-то так:
Dimatkz, а вот так стереть ОЗУ
Я кстати попробовал, почему-то половина ОЗУ не читается. В даташите на этот счёт никаких пояснений, гугль тоже не в курсе :)
Спасибо за помощь, прочитать получилось, а вот стереть похоже нет, либо сразу прописывается то же самое, хотя наврятли. Я попробовал вот так
У меня прочитанное получилось вот так, -1 это наверное не получилось прочитать?