Всем притвет! Проблемма у меня такая , при отключения питания ардуины и включения обратно , сбрасываются секунды на нули .
К примеру , у нас 10 минут и 30 секунд
Отключаем питание и включем , и плучаем 10 минут 00 секнд , если дождаться 11 минут то все запоминаеться
и далее будет 11 минут 00 секнд при новом включении , в течении 11 минут
Самое интересное что если я не выключая питание ардуины , отсоединяю модулю RTC и потом в любое время подключаю то время идет в месте с реальным временем
так же пробовал, выключить ардуину , отсоеденить модуль RTC , включить ардуину , а потом подключить модуль
RTC , то все окей ,работает как надо .
Вроде бы и не мало я перекопал в сети информации примеров кода и вариантов , но так и не нашел способ решить проблему
Ах да я уже и по модулю прошелся паяльником R4,R5,D1 выпаял совсем R6 перемычка , напряжение VBATT - 3.2V
вот мой код
02 | #include <UTFT.h> //Подключаем библиотеку UTFT |
04 | extern uint8_t BigFont[]; |
05 | extern uint8_t DotMatrix_M[]; |
06 | extern uint8_t SevenSegmentFull[]; |
09 | UTFT myGLCD(ITDB32S, 38,39,40,41); |
10 | UTouch myTouch(6,5,4,3,2); |
30 | myGLCD.fillScr(0, 0, 0); |
34 | rtc.setTime(11, 35, 0); |
37 | rtc.setSQWRate(SQW_RATE_1); |
43 | digitalWrite(12,HIGH); |
47 | String stringOne = rtc.getTimeStr(); |
51 | myGLCD.setColor(255, 255, 255); |
52 | myGLCD.setFont(SevenSegmentFull); |
53 | myGLCD.print(stringOne.substring(0,2), 5, 10); |
54 | myGLCD.print(stringOne.substring(3,5), 110, 10); |
55 | myGLCD.setFont(BigFont); |
56 | myGLCD.setColor(255, 255, 0); |
57 | myGLCD.print(stringOne.substring(6), 200, 10); |
63 | myGLCD.setColor(255, 255, 0); |
64 | myGLCD.setFont(BigFont); |
65 | myGLCD.fillCircle(90, 25, 7); |
66 | myGLCD.fillCircle(90, 45, 7); |
69 | myGLCD.setColor(0, 255, 0); |
70 | myGLCD.setFont(DotMatrix_M); |
71 | myGLCD.print(rtc.getDateStr(), 15, 80); |
лишнее стер после эксперементов , в таком виде он у меня работает сейчас
01
#include <UTouch.h>
02
#include <UTFT.h> //Подключаем библиотеку UTFT
03
#include <DS1307.h>
04
extern
uint8_t BigFont[];
05
extern
uint8_t DotMatrix_M[];
//Подключаем шрифт DotMatrix_M
06
extern
uint8_t SevenSegmentFull[];
//Подключаем шрифт SevenSeg_XXXL_Num
07
08
09
UTFT myGLCD(ITDB32S, 38,39,40,41);
// Remember to change the model parameter to suit your display module!
10
UTouch myTouch(6,5,4,3,2);
11
12
// DS1307: SDA pin -> Arduino Digital 9
13
// SCL pin -> Arduino Digital 10
14
15
16
DS1307 rtc(9, 10);
17
18
Time t;
19
20
void
setup
()
21
{
22
// rtc.begin();
23
24
25
pinMode(12, OUTPUT);
26
27
rtc.halt(
false
);
//Запускаем часы
28
myGLCD.InitLCD();
//Инициализируем дисплей
29
myGLCD.fillScr(0, 0, 0);
//Закрашиваем дисплей черным цветом
30
31
// The following lines can be commented out to use the values already stored in the DS1302
32
// rtc.setDOW(SUNDAY); // Set Day-of-Week to FRIDAY
33
//rtc.setTime(11, 35, 0); // Set the time to 12:00:00 (24hr format)
34
// rtc.setDate(14, 3, 2015); // Set the date to August 6th, 2010
35
36
37
}
38
39
void
loop
()
40
{
41
digitalWrite(12,HIGH);
42
43
44
t = rtc.getTime();
45
String stringOne = rtc.getTimeStr();
46
47
48
49
myGLCD.setColor(255, 255, 255);
//Цвет отображения
50
myGLCD.setFont(SevenSegmentFull);
//Шрифт для отображения
51
myGLCD.print(stringOne.substring(0,2), 5, 10);
//Отображаем часы
52
myGLCD.print(stringOne.substring(3,5), 110, 10);
//Отображаем минуты
53
myGLCD.setFont(BigFont);
54
myGLCD.setColor(255, 255, 0);
//Цвет отображения
55
myGLCD.print(stringOne.substring(6), 200, 10);
// Вывод секунд
56
57
58
59
//delay(500);
60
61
myGLCD.setColor(255, 255, 0);
//Цвет отображения
62
myGLCD.setFont(BigFont);
//Шрифт для отображения
63
myGLCD.fillCircle(90, 25, 7);
//Верхняя точка
64
myGLCD.fillCircle(90, 45, 7);
//Нижняя точка
65
66
67
myGLCD.setColor(0, 255, 0);
//Цвет отображения
68
myGLCD.setFont(DotMatrix_M);
//Шрифт для отображения
69
myGLCD.print(rtc.getDateStr(), 15, 80);
//Отображаем дату
70
}
Так у вас 34 строка первого кода каждый раз время при запуске устанавливала.
не ну так во втором варианте кода я ее закоментировал , и увы , все тоже самое
скидывает именно секунды
А стандартный пример из библиотеки работает, с выводом через сериал? Попробуйте поставить нормальную библу, для работы с аппаратным I2C на А4,А5.