Сообщения без ответов | Активные темы
|
Страница 1 из 1
|
[ Сообщений: 15 ] |
|
Автор |
Сообщение |
RL1L
|
Заголовок сообщения: Прошивка ардуино с ошибкой. Добавлено: Пн 25 май 2020 13:13 |
|
Зарегистрирован: Пт 26 фев 2016 21:49 Сообщений: 1086 Откуда: Славянка
|
Собрал часы на ардуино, прошил скетчем, время при прошивке берется от компьютера, но почему-то есть разница в 30-50 сек. При чем все время разная. Подсказки, которые нашел в интернете, типа изменить приоритет и т.д., не помогли. В чем может быть причина? На фото сами часы.
Вложения: |
IMG_7893.JPG [ 78.58 Кб | Просмотров: 10771 ]
|
IMG_7891.JPG [ 96 Кб | Просмотров: 10771 ]
|
IMG_7890.JPG [ 69.02 Кб | Просмотров: 10771 ]
|
_________________ Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).
|
|
Вернуться наверх |
|
|
R1CBP
|
Заголовок сообщения: Re: Прошивка ардуино с ошибкой. Добавлено: Пн 25 май 2020 16:06 |
|
Зарегистрирован: Сб 23 мар 2013 07:57 Сообщений: 226 Откуда: KP50EI64CC
|
Оно постоянно к компьютеру подключено или только на время прошивки? Ручная коррекция времени не предусмотрена? Судя по отсутствию кнопок.
_________________ Михаил
|
|
Вернуться наверх |
|
|
RL1L
|
Заголовок сообщения: Re: Прошивка ардуино с ошибкой. Добавлено: Пн 25 май 2020 16:18 |
|
Зарегистрирован: Пт 26 фев 2016 21:49 Сообщений: 1086 Откуда: Славянка
|
Нет, кнопок нет, вообще. Скетч заливается и все, дальше только автономная работа. Батарейка стоит, только для часов реального времени на микросхеме ds1307. если общее питание выключаешь, то время сохраняется. В этом и вся прелесть часов, прошил один раз и время идет годами с точностью до секунды, но надо прошить точно, вот эта процедура и не получается. В интернете много такого типа часов, пробовал разные скетчи и с датой и со временем, результат один, на несколько десятков секунд врет. Поэтому это, что-то между ПЭВМ и ардуино.
_________________ Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).
|
|
Вернуться наверх |
|
|
RM1F
|
Заголовок сообщения: Re: Прошивка ардуино с ошибкой. Добавлено: Пн 25 май 2020 18:59 |
|
Зарегистрирован: Вт 02 май 2017 15:39 Сообщений: 196 Откуда: KO59FW
|
А на скетч взглянуть можно?
_________________ 73, Влад RM1F
|
|
Вернуться наверх |
|
|
UA1AQC
|
Заголовок сообщения: Re: Прошивка ардуино с ошибкой. Добавлено: Пн 25 май 2020 20:32 |
|
Зарегистрирован: Вт 03 фев 2015 16:12 Сообщений: 216 Откуда: KO59ar Красное Село
|
Были такие часы, проблема в установке времени-ведь пока шьеться-время прошло, какое шьешь.Правильно время поставилось с помощью ESP8266, которая время брала из ntp.Мне кажется, можно прошить установку времени по кнопке или сделать коррекцию на +- секунд по принятому из компорта.
|
|
Вернуться наверх |
|
|
RL1L
|
Заголовок сообщения: Re: Прошивка ардуино с ошибкой. Добавлено: Пн 25 май 2020 20:44 |
|
Зарегистрирован: Пт 26 фев 2016 21:49 Сообщений: 1086 Откуда: Славянка
|
Вот в архиве скетч. С начала заливается скетч в ds1307, а потом в ардуину.
_________________ Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).
|
|
Вернуться наверх |
|
|
RL1L
|
Заголовок сообщения: Re: Прошивка ардуино с ошибкой. Добавлено: Пн 25 май 2020 21:35 |
|
Зарегистрирован: Пт 26 фев 2016 21:49 Сообщений: 1086 Откуда: Славянка
|
|
Вернуться наверх |
|
|
R1CBP
|
Заголовок сообщения: Re: Прошивка ардуино с ошибкой. Добавлено: Вт 26 май 2020 08:23 |
|
Зарегистрирован: Сб 23 мар 2013 07:57 Сообщений: 226 Откуда: KP50EI64CC
|
Возможности DS1307 по точности хода, мягко говоря, преувеличены.
_________________ Михаил
|
|
Вернуться наверх |
|
|
R1CBP
|
Заголовок сообщения: Re: Прошивка ардуино с ошибкой. Добавлено: Вт 26 май 2020 08:48 |
|
Зарегистрирован: Сб 23 мар 2013 07:57 Сообщений: 226 Откуда: KP50EI64CC
|
Долго баловался самодельными часами, начиная с комплекта на 176 серии и заканчивая PIC и Atmega. Покупал с радиосинхронизацией, но стрелочные, не понравилось. Потом купил вот такие: https://youtu.be/6tadiAIYSF4, пользуюсь уже года три. К ним бы ещё GPS прикрутить ...
_________________ Михаил
|
|
Вернуться наверх |
|
|
RM1F
|
Заголовок сообщения: Re: Прошивка ардуино с ошибкой. Добавлено: Вт 26 май 2020 14:49 |
|
Зарегистрирован: Вт 02 май 2017 15:39 Сообщений: 196 Откуда: KO59FW
|
RL1L писал(а): Вот в архиве скетч. С начала заливается скетч в ds1307, а потом в ардуину. Понятно. В общих чертах, нечто подобное я и ожидал. Эти часы будут врать всегда. By design, так сказать Макросы __DATE__ и __TIME__ подставляются и вычисляются компилятором в момент компиляции. Мало того, что сама компиляция выполняется не мгновенно - после нее еще идет этап связывания (линковки), и только потом идет инициализация связи и "заливка" бинарного кода в целевую микросхему и запуск. Задержка неизбежна. Причем на разных компьютерах и разных ОС эта задержка будет, скорее всего, разной. Вопщем, я бы посоветовал два пути: 1. если есть навыки программирования, допилить (переписать) скетчи "под себя" и сделать реальную синхронизацию времени с компьютером уже после прошивки и запуска часов, 2. если нет - ну, скажем, поставить время компьютера "вперед" (величину опережения подобрать экспериментально, возможно, за несколько попыток) и прошить скетчи, и посмотреть на результат. Потом вернуть время компьютера взад.
_________________ 73, Влад RM1F
|
|
Вернуться наверх |
|
|
RL1L
|
Заголовок сообщения: Re: Прошивка ардуино с ошибкой. Добавлено: Вт 26 май 2020 15:05 |
|
Зарегистрирован: Пт 26 фев 2016 21:49 Сообщений: 1086 Откуда: Славянка
|
Не, программирование это не мое. А нельзя в скетч добавить кнопку коррекции секунд? Да я то же думал на ПЭВМ время "сбить", только задержка все время разная. Еще вопрос, а нельзя придумать как секунды уже после прошивки, когда часики уже тикают, они же обмениваются с ПЭВМ, подкорректировать. В ардуино (сама программа) вроде есть такая возможность обмена с ардуино (железякой).
_________________ Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).
|
|
Вернуться наверх |
|
|
RM1F
|
Заголовок сообщения: Re: Прошивка ардуино с ошибкой. Добавлено: Вт 26 май 2020 15:29 |
|
Зарегистрирован: Вт 02 май 2017 15:39 Сообщений: 196 Откуда: KO59FW
|
RL1L писал(а): Еще вопрос, а нельзя придумать как секунды уже после прошивки, когда часики уже тикают, они же обмениваются с ПЭВМ, подкорректировать. Это самое правильное решение, синхронизация часов с компом уже после прошивки и запуска. Сейчас я занят (работаю, однако, хоть и дома), а вечерком или скажем завтра гляну скетчи.
_________________ 73, Влад RM1F
|
|
Вернуться наверх |
|
|
RL1L
|
Заголовок сообщения: Re: Прошивка ардуино с ошибкой. Добавлено: Ср 27 май 2020 09:12 |
|
Зарегистрирован: Пт 26 фев 2016 21:49 Сообщений: 1086 Откуда: Славянка
|
Владимир это не к спеху, можно и через неделю, как будет свободное время. просто если найдутся пути решения, то хорошо, если нет..., то нет.
_________________ Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).
|
|
Вернуться наверх |
|
|
RM1F
|
Заголовок сообщения: Re: Прошивка ардуино с ошибкой. Добавлено: Ср 27 май 2020 10:05 |
|
Зарегистрирован: Вт 02 май 2017 15:39 Сообщений: 196 Откуда: 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
|
|
Вернуться наверх |
|
|
RL1L
|
Заголовок сообщения: Re: Прошивка ардуино с ошибкой. Добавлено: Ср 27 май 2020 12:08 |
|
Зарегистрирован: Пт 26 фев 2016 21:49 Сообщений: 1086 Откуда: Славянка
|
Владимир, если я не сильно навязчивый, то могу все эти "железяки" Вам дать для экспериментов, только ардуино и часы реального времени самодельные, но распиновка как у "заводских". Если конечно есть желание, если нет, то буду сам пробовать. Просто я далек от этих программ и программирования.
_________________ Анатолий Анатольевич. ex.( RA0C, EY9AF, RA6XPL, RA6PS, RA6PGY).
|
|
Вернуться наверх |
|
|
|
Страница 1 из 1
|
[ Сообщений: 15 ] |
|
Кто сейчас на форуме |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5 |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
|
|