Текущее время: Пн 29 ноя 2021 16:53

Часовой пояс: UTC + 3 часа [ Летнее время ]






Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Прошивка ардуино с ошибкой.
СообщениеДобавлено: Пн 25 май 2020 13:13 
Не в сети

Зарегистрирован: Пт 26 фев 2016 21:49
Сообщений: 1003
Откуда: Славянка
Собрал часы на ардуино, прошил скетчем, время при прошивке берется от компьютера, но почему-то есть разница в 30-50 сек. При чем все время разная. Подсказки, которые нашел в интернете, типа изменить приоритет и т.д., не помогли. В чем может быть причина? На фото сами часы.


Вложения:
IMG_7893.JPG
IMG_7893.JPG [ 78.58 Кб | Просмотров: 5842 ]
IMG_7891.JPG
IMG_7891.JPG [ 96 Кб | Просмотров: 5842 ]
IMG_7890.JPG
IMG_7890.JPG [ 69.02 Кб | Просмотров: 5842 ]

_________________
Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Прошивка ардуино с ошибкой.
СообщениеДобавлено: Пн 25 май 2020 16:06 
Не в сети

Зарегистрирован: Сб 23 мар 2013 07:57
Сообщений: 226
Откуда: KP50EI64CC
Оно постоянно к компьютеру подключено или только на время прошивки? Ручная коррекция времени не предусмотрена? Судя по отсутствию кнопок.

_________________
Михаил


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Прошивка ардуино с ошибкой.
СообщениеДобавлено: Пн 25 май 2020 16:18 
Не в сети

Зарегистрирован: Пт 26 фев 2016 21:49
Сообщений: 1003
Откуда: Славянка
Нет, кнопок нет, вообще. Скетч заливается и все, дальше только автономная работа. Батарейка стоит, только для часов реального времени на микросхеме ds1307. если общее питание выключаешь, то время сохраняется. В этом и вся прелесть часов, прошил один раз и время идет годами с точностью до секунды, но надо прошить точно, вот эта процедура и не получается. В интернете много такого типа часов, пробовал разные скетчи и с датой и со временем, результат один, на несколько десятков секунд врет. Поэтому это, что-то между ПЭВМ и ардуино.

_________________
Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Прошивка ардуино с ошибкой.
СообщениеДобавлено: Пн 25 май 2020 18:59 
Не в сети

Зарегистрирован: Вт 02 май 2017 15:39
Сообщений: 160
Откуда: KO59FW
А на скетч взглянуть можно?

_________________
73, Влад RM1F


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Прошивка ардуино с ошибкой.
СообщениеДобавлено: Пн 25 май 2020 20:32 
Не в сети

Зарегистрирован: Вт 03 фев 2015 16:12
Сообщений: 201
Откуда: KO59ar Красное Село
Были такие часы, проблема в установке времени-ведь пока шьеться-время прошло, какое шьешь.Правильно время поставилось с помощью ESP8266, которая время брала из ntp.Мне кажется, можно прошить установку времени по кнопке или сделать коррекцию на +- секунд по принятому из компорта.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Прошивка ардуино с ошибкой.
СообщениеДобавлено: Пн 25 май 2020 20:44 
Не в сети

Зарегистрирован: Пт 26 фев 2016 21:49
Сообщений: 1003
Откуда: Славянка
Вот в архиве скетч. С начала заливается скетч в ds1307, а потом в ардуину.


Вложения:
часы на 1307.rar [2.33 Кб]
Скачиваний: 183

_________________
Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Прошивка ардуино с ошибкой.
СообщениеДобавлено: Пн 25 май 2020 21:35 
Не в сети

Зарегистрирован: Пт 26 фев 2016 21:49
Сообщений: 1003
Откуда: Славянка
https://www.youtube.com/watch?v=P38bn0OstjM
Вот ссылка на ютуб, от куда и были сделаны часы.

_________________
Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Прошивка ардуино с ошибкой.
СообщениеДобавлено: Вт 26 май 2020 08:23 
Не в сети

Зарегистрирован: Сб 23 мар 2013 07:57
Сообщений: 226
Откуда: KP50EI64CC
Возможности DS1307 по точности хода, мягко говоря, преувеличены.

_________________
Михаил


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Прошивка ардуино с ошибкой.
СообщениеДобавлено: Вт 26 май 2020 08:48 
Не в сети

Зарегистрирован: Сб 23 мар 2013 07:57
Сообщений: 226
Откуда: KP50EI64CC
Долго баловался самодельными часами, начиная с комплекта на 176 серии и заканчивая PIC и Atmega.
Покупал с радиосинхронизацией, но стрелочные, не понравилось.
Потом купил вот такие: https://youtu.be/6tadiAIYSF4, пользуюсь уже года три.
К ним бы ещё GPS прикрутить ...

_________________
Михаил


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Прошивка ардуино с ошибкой.
СообщениеДобавлено: Вт 26 май 2020 14:49 
Не в сети

Зарегистрирован: Вт 02 май 2017 15:39
Сообщений: 160
Откуда: KO59FW
RL1L писал(а):
Вот в архиве скетч. С начала заливается скетч в ds1307, а потом в ардуину.


Понятно. В общих чертах, нечто подобное я и ожидал.

Эти часы будут врать всегда. By design, так сказать :) Макросы __DATE__ и __TIME__ подставляются и вычисляются компилятором в момент компиляции. Мало того, что сама компиляция выполняется не мгновенно - после нее еще идет этап связывания (линковки), и только потом идет инициализация связи и "заливка" бинарного кода в целевую микросхему и запуск. Задержка неизбежна. Причем на разных компьютерах и разных ОС эта задержка будет, скорее всего, разной.

Вопщем, я бы посоветовал два пути:
1. если есть навыки программирования, допилить (переписать) скетчи "под себя" и сделать реальную синхронизацию времени с компьютером уже после прошивки и запуска часов,
2. если нет - ну, скажем, поставить время компьютера "вперед" (величину опережения подобрать экспериментально, возможно, за несколько попыток) и прошить скетчи, и посмотреть на результат. Потом вернуть время компьютера взад.

_________________
73, Влад RM1F


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Прошивка ардуино с ошибкой.
СообщениеДобавлено: Вт 26 май 2020 15:05 
Не в сети

Зарегистрирован: Пт 26 фев 2016 21:49
Сообщений: 1003
Откуда: Славянка
Не, программирование это не мое. А нельзя в скетч добавить кнопку коррекции секунд?
Да я то же думал на ПЭВМ время "сбить", только задержка все время разная.
Еще вопрос, а нельзя придумать как секунды уже после прошивки, когда часики уже тикают, они же обмениваются с ПЭВМ, подкорректировать. В ардуино (сама программа) вроде есть такая возможность обмена с ардуино (железякой).

_________________
Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Прошивка ардуино с ошибкой.
СообщениеДобавлено: Вт 26 май 2020 15:29 
Не в сети

Зарегистрирован: Вт 02 май 2017 15:39
Сообщений: 160
Откуда: KO59FW
RL1L писал(а):
Еще вопрос, а нельзя придумать как секунды уже после прошивки, когда часики уже тикают, они же обмениваются с ПЭВМ, подкорректировать.


Это самое правильное решение, синхронизация часов с компом уже после прошивки и запуска. Сейчас я занят (работаю, однако, хоть и дома), а вечерком или скажем завтра гляну скетчи.

_________________
73, Влад RM1F


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Прошивка ардуино с ошибкой.
СообщениеДобавлено: Ср 27 май 2020 09:12 
Не в сети

Зарегистрирован: Пт 26 фев 2016 21:49
Сообщений: 1003
Откуда: Славянка
Владимир это не к спеху, можно и через неделю, как будет свободное время. просто если найдутся пути решения, то хорошо, если нет..., то нет.

_________________
Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Прошивка ардуино с ошибкой.
СообщениеДобавлено: Ср 27 май 2020 10:05 
Не в сети

Зарегистрирован: Вт 02 май 2017 15:39
Сообщений: 160
Откуда: KO59FW
Анатолий, вопщем я тут поглядел скетчи... Подумал, что синхронизацию времени с компьютером можно сделать следующим образом:
1. сохранить исходные скетчи,
2. усовершенствовать скетч watch.ino: добавить функцию TryAdjustTime и вызвать ее в loop вот так
Код:
//void clearnumber(int x)//{ // clears the area the custom number is displayed in // lcd.setCursor(x,0);// lcd.print("   ");// lcd.setCursor(x,1); // lcd.print("   ");//}

void TryAdjustTime()
{
    const int BUF_SIZE = 16;
    const int TIME_LEN = 8;

    static char timeStr[BUF_SIZE];
    static int n = 0;

     while (Serial.available() > 0)
     {
         char ch = Serial.read();
         
         // В Serial должна прийти строка времени вида "08:30:39 \r\n"
         // нам от нее нужно ровно 8 первых символов
         if ((ch >= '0' && ch <= '9') || ch == ':')
         {
             timeStr[n++] = ch;
             if (n == TIME_LEN)
             {
                 timeStr[n] = '\0';
                 // минимальная проверка структуры строки:
                 if (timeStr[2] == ':' &&
                     timeStr[5] == ':' &&
                     timeStr[0] >= '0' && timeStr[0] <= '2' &&
                     timeStr[3] >= '0' && timeStr[3] <= '5' &&
                     timeStr[6] >= '0' && timeStr[6] <= '5')
                         rtc.adjust( DateTime(__DATE__, timeStr) );
                 n = 0;
                 break;
             }
         }
         else
            n = 0;
     }
}

void loop () {

  TryAdjustTime();
 
  digitalClockDisplay(); 
  delay(1000);

}

3. скомпилировать и "залить" в часы скетчи,
4. после запуска часов закрыть Arduino IDE и выполнить на компьютере следующий несложный bat файл:
Код:
@echo off
mode COM8 BAUD=57600 PARITY=n DATA=8
set "HH=%time:~-11,2%"
set "MM=%time:~-8,2%"
set "SS=%time:~-5,2%"
set "TIMESTR=%HH: =0%:%MM%:%SS%"
echo %TIMESTR% >\\.\COM8

(вместо COM8 вписать тот порт, через который Arduino IDE на компе общается с железячкой-ардуинкой, это у меня он COM8)
5. профит? :)
[ Дисклеймер: за неимением часов я этот код разумеется не проверял. ]

Что же касается кнопки коррекции секунд, то рисуйте схему - куда она будет подключена, программно дело несложное, помогу.

Удачи!

_________________
73, Влад RM1F


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Прошивка ардуино с ошибкой.
СообщениеДобавлено: Ср 27 май 2020 12:08 
Не в сети

Зарегистрирован: Пт 26 фев 2016 21:49
Сообщений: 1003
Откуда: Славянка
Владимир, если я не сильно навязчивый, то могу все эти "железяки" Вам дать для экспериментов, только ардуино и часы реального времени самодельные, но распиновка как у "заводских". Если конечно есть желание, если нет, то буду сам пробовать. Просто я далек от этих программ и программирования.

_________________
Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Анализ сайта онлайн
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB