Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
Я заметил такую странность за прошивкой от Сб сен 10, 2022 12:02:28
тов. Serzh2000 на стр.144
"анимация_ DS3231 коррекция минус 2 градуса.rar." Когда часы работают на максимальной яркости в дневном режиме то коррекции температуры нет , а когда в ночном минимальном то тогда происходит уменьшение температуры.
тов. Serzh2000 на стр.144
"анимация_ DS3231 коррекция минус 2 градуса.rar." Когда часы работают на максимальной яркости в дневном режиме то коррекции температуры нет , а когда в ночном минимальном то тогда происходит уменьшение температуры.
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
После перепайки трех DS1307, вместе, с разными кварцами. У всех обнаружена неточность в пределах 3-5 секунд в час! Было принято решение, что вся партия, которая пришла с Алика, годится только в помойку (((. Выпаял все и заменил на модуль от Ардуинки с чипом на DS3231. За сутки была погрешность только минус 2 секунды, что для домашних часиков считается нормой. Также хочется спросить, у китайцев, а где же хваленная +-2ppm, по даташиту у этого модуля ))) наверное тоже на коленке делали, и вместо 2ppm получилось 2 секунды.
Заказал новую партию 1307, на сайте написано, что за год +-0,5 сек.) Это при том, что в даташите +-2,5 сек. в сутки. Опять сволочи в наглую врут.
Заказал новую партию 1307, на сайте написано, что за год +-0,5 сек.) Это при том, что в даташите +-2,5 сек. в сутки. Опять сволочи в наглую врут.
нужно не только знать, но и уметь это объяснить
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
Мне в ДИПе глючные китайские попадались, все время отставали на 10-20сек в день, заменил на VS1307 - все стало норм. А так еще очень сильно от кварца зависит.
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
Мне все-таки интересно, почему DS1307, при выключенном питании, (то есть при питании только от батарейки 2032 и отсутствии питания +5), время шло нормально. А при полном питании ужасно спешили.
нужно не только знать, но и уметь это объяснить
-
codenamehawk
- Вымогатель припоя
- Сообщения: 527
- Зарегистрирован: Вт фев 09, 2010 17:52:26
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
jumbo писал(а):при питании только от батарейки 2032 и отсутствии питания +5), время шло нормально.
Мало менялась температура.
Время от температуры плавает как в одну, так и в другую сторону.
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
codenamehawk писал(а):Время от температуры плавает.
Не согласен, температура всегда была практически одинаковая, комнатная. К тому же разница на 3-5 секунд в час думаю от температуры не может быть, только разве от ооочень больших перепадов.
нужно не только знать, но и уметь это объяснить
-
codenamehawk
- Вымогатель припоя
- Сообщения: 527
- Зарегистрирован: Вт фев 09, 2010 17:52:26
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
jumbo писал(а):К тому же разница на 3-5 секунд в час думаю от температуры не может быть,
У этого датчика изначально низкая точность, а изменение температуры сильно влияет на ход часов, так что даже коррекцию не ввести.
Вполне возможно, что температура влияет на кварц.
DS3231, в тех же условиях работает сильно точнее и да в нем есть встроенная термокомпенсация и не нужен внешний кварц.
- Serzh2000
- Опытный кот
- Сообщения: 867
- Зарегистрирован: Пт фев 27, 2015 12:00:53
- Откуда: Рязанская область
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
может кому не сложно может помочь, прошивку с первой страницы (или предпочтительнее мою ) на атмеге 8 переделать на атмегу 328 и выложить исходник. мои хотелки не влезают в атмегу 8, а ведь по большому счету отличие только в таймерах, но с этим у меня проблема. 

- Вложения
-
- анимация_ DS3231.rar
- (810.15 КБ) 240 скачиваний
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
может кому не сложно , прошивку на атмега 48 переделать.динамику .у нас нет магазинов.ждать долго.зарание благадарен.
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
Сформулировать вопрос надо точнее. А то если даже найдутся альтруисты типа помочь, так и не поймут задачи. Что подо что переделать? Нет у вас магазинов, продающих динамику? 
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
ILHAT3777 писал(а):на атмега 48 переделать
не получится малой кровью нифига. Во всяком случае с содевижн авр. Там для 88 почти под завязку.
Т.е. либо портировать под авр студио например, либо резать функционал. Не исключено, что и то и другое.
С сохранением функционала только на асме можно, полагаю.
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
Навряд ли кто то будет перелопачиать код только из за того. что у кого то нет нужного МК. В Китае полно этих Мег по вменяемым ценам, хоть 8/ 8L/ 8A, хоть 88.
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
Сформулировать вопрос надо точнее. А то если даже найдутся альтруисты типа помочь, так и не поймут задачи. Что подо что переделать? Нет у вас магазинов, продающих динамику? 
там две прошивки динамика и статика кто собирал поймет
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
Всем привет.Кто-нибудь может переделать прогу под настройки энкодером.кнопки задолбали уже.Оставить одну для перебора меню и подтверждения выбранной функции.
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
Danko, Здравствуйте. Собрал часы с модулем DS3231 и 24с32. Не сохраняют время после выключения. Модуль снят с рабочих часов.
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
DS3231 не тотально совместима с DS1307.steppo писал(а):с модулем DS3231 и 24с32. Не сохраняют время
У нее иной адрес ячейки настроек, может в этом дело, нужно разбираться. И конечно, батарейка должна быть хорошая
Код: Выделить всё
void DS1307_init (void) {
unsigned char tmphour, tmpmin, tmpsec1, tmpsec2;
//rtc_init(0, 0, 0); // при первом запуске DS1307 его регистры не установлены
// (ручками установим их - биты: rs=0, sqwe=0, out=0)
rtc_write(0x07,0x00); // для совместимости с M41T56 STMicroelectronics (для DS3231 адрес 0x0E)
// тоже самое, что и "rtc_init(0, 0, 0)"
- Serzh2000
- Опытный кот
- Сообщения: 867
- Зарегистрирован: Пт фев 27, 2015 12:00:53
- Откуда: Рязанская область
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
У нее иной адрес ячейки настроек, может в этом дело, нужно разбираться
для ds3231 во вкладку ds1307_twi.h вставить этот код ... и будет счастье
Код: Выделить всё
#define TWEN 2
#define TWIE 0
#define TWINT 7
#define TWEA 6
#define TWSTA 5
#define TWSTO 4
#define TWWC 3
void twi_start(void) {
TWCR = (1<<TWEA)|(1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
while (!(TWCR & (1<<TWINT))) {; }
}
void twi_stop(void) {
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO);
}
void twi_write(unsigned char _data)
{
TWDR = _data;
TWCR = (1<<TWINT)|(1<<TWEN);
while (!(TWCR & (1<<TWINT))) {;}
}
unsigned char twi_read(unsigned char _ack) {
unsigned char _data;
if (_ack==1)
{
TWCR = (1<<TWEA)|(1<<TWINT) | (1<<TWEN);
}
else
{
TWCR = (1<<TWINT) | (1<<TWEN);
}
while (!(TWCR & (1<<TWINT)))
{
}
_data = TWDR;
return _data;
}
/*
void rtc_init(unsigned char rs,unsigned char sqwe,unsigned char out) {
rs&=3;
if (sqwe) rs|=0x10;
if (out) rs|=0x80;
twi_start();
twi_write(0xd0);
twi_write(7);
twi_write(rs);
twi_stop();
}
*/
void rtc_set_time(unsigned char hour,unsigned char min,unsigned char sec) {
twi_start();
twi_write(0xd0);
twi_write(0);
twi_write(sec);
twi_write(min);
twi_write(hour);
twi_stop();
}
void rtc_set_date(unsigned char day,unsigned char date,unsigned char month,unsigned char year) {
twi_start();
twi_write(0xd0);
twi_write(3);
twi_write(day);
twi_write(date);
twi_write(month);
twi_write(year);
twi_stop();
}
void rtc_get_time(unsigned char *hour,unsigned char *min,unsigned char *sec) {
twi_start();
twi_write(0xd0);
twi_write(0);
twi_start();
twi_write(0xd1);
*sec=twi_read(1);
*min=twi_read(1);
*hour=twi_read(0);
twi_stop();
}
void rtc_get_date(unsigned char *day,unsigned char *date,unsigned char *month,unsigned char *year) {
twi_start();
twi_write(0xd0);
twi_write(3);
twi_start();
twi_write(0xd1);
*day=twi_read(1);
*date=twi_read(1);
*month=twi_read(1);
*year=twi_read(0);
twi_stop();
}
unsigned char rtc_read(unsigned char address) {
unsigned char data;
twi_start();
twi_write(0xd0);
twi_write(address);
twi_start();
twi_write(0xd1);
data=twi_read(0);
twi_stop();
return data;
}
void rtc_write(unsigned char address, unsigned char data) {
twi_start();
twi_write(0xd0);
twi_write(address);
twi_write(data);
twi_stop();
}модули DS3231 или DS1307 не сохраняют время при пропадании питания, они продолжают работать благодаря резервному питанию (батарейки)
24с32 это грубо говоря просто память, в ней текущее время не храниться. Она нужна , что бы хранить яркость нажатие кнопки , все что угодно к примеру сделать сто будильников вместо двух которые позволяют модули DS3231 или DS1307
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
Добрый вечер, прошу помощи у знающих людей. Собрал часы на atmega 8 smd, все работает кроме температуры, при включении пишет fnd 0, вроде как не видит датчик. В настройках установил время отображения 5 сек. Датчики проверил на другом устройстве, температуру показывают. В smd исполнении с 11 ноги атмеги сигнал идет. Я в тупики, два дня прозваниваю и перепаиваю, результата нет.
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
Фьюзы, которые за частоту отвечают, верные установлены? Если датчики и подтяжка исправные, код совпадает со схемой и частота тактирования верная, то остается только монтаж и исправность контроллера. Там просто нечему не работать
Re: Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
metan, спасибо за подсказку, перепутал фьюзы статики и динамики плюс переходная панелька глючила. Температура на плюс два градуса больше показывает, с этим можно что-то сделать?
