ds1307 TFT 3.2" - нужна помощь

skrols71
Offline
Зарегистрирован: 14.03.2015

Всем притвет!  Проблемма у меня такая ,  при отключения питания ардуины и включения обратно , сбрасываются секунды на нули .

К примеру , у нас 10 минут  и 30 секунд 

Отключаем питание и включем  , и плучаем  10 минут  00 секнд , если дождаться 11 минут  то все запоминаеться 

и далее будет  11 минут  00 секнд  при новом включении , в течении  11 минут

Самое интересное что если я не выключая питание ардуины , отсоединяю модулю RTC  и потом в любое время подключаю  то время идет в месте с реальным временем 

так же пробовал, выключить  ардуину , отсоеденить модуль RTC  , включить  ардуину , а потом подключить модуль 

RTC  , то все окей ,работает как надо .

Вроде бы и не мало я перекопал в сети информации  примеров кода и  вариантов , но так и не нашел способ решить проблему 

Ах да я уже и по модулю прошелся паяльником  R4,R5,D1 выпаял совсем  R6 перемычка , напряжение VBATT - 3.2V

вот мой код 

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

 

skrols71
Offline
Зарегистрирован: 14.03.2015

лишнее стер  после эксперементов , в таком виде он у меня работает сейчас

01#include <UTouch.h>
02#include <UTFT.h> //Подключаем библиотеку UTFT
03#include <DS1307.h>
04extern uint8_t BigFont[];
05extern uint8_t DotMatrix_M[]; //Подключаем шрифт DotMatrix_M
06extern uint8_t SevenSegmentFull[]; //Подключаем шрифт SevenSeg_XXXL_Num
07 
08 
09UTFT        myGLCD(ITDB32S, 38,39,40,41);   // Remember to change the model parameter to suit your display module!
10UTouch      myTouch(6,5,4,3,2);
11 
12// DS1307:  SDA pin   -> Arduino Digital 9
13//          SCL pin   -> Arduino Digital 10
14 
15 
16DS1307  rtc(9, 10);
17 
18Time t;
19 
20void setup()
21{
22 // rtc.begin();
23   
24 
25 pinMode(12, OUTPUT);
26   
27rtc.halt(false); //Запускаем часы
28myGLCD.InitLCD(); //Инициализируем дисплей
29myGLCD.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 
39void loop()
40{
41  digitalWrite(12,HIGH);
42   
43   
44t = rtc.getTime();
45String stringOne = rtc.getTimeStr();
46 
47 
48 
49myGLCD.setColor(255, 255, 255); //Цвет отображения
50myGLCD.setFont(SevenSegmentFull); //Шрифт для отображения
51myGLCD.print(stringOne.substring(0,2), 5, 10); //Отображаем часы
52myGLCD.print(stringOne.substring(3,5), 110, 10); //Отображаем минуты
53myGLCD.setFont(BigFont);
54myGLCD.setColor(255, 255, 0); //Цвет отображения
55myGLCD.print(stringOne.substring(6), 200, 10); // Вывод секунд
56 
57 
58 
59//delay(500);
60 
61myGLCD.setColor(255, 255, 0); //Цвет отображения
62myGLCD.setFont(BigFont); //Шрифт для отображения
63myGLCD.fillCircle(90, 25, 7); //Верхняя точка
64myGLCD.fillCircle(90, 45, 7); //Нижняя точка
65 
66 
67myGLCD.setColor(0, 255, 0); //Цвет отображения
68myGLCD.setFont(DotMatrix_M); //Шрифт для отображения
69myGLCD.print(rtc.getDateStr(), 15, 80); //Отображаем дату
70}

 

bwn
Offline
Зарегистрирован: 25.08.2014

Так у вас 34 строка первого кода каждый раз время при запуске устанавливала.

skrols71
Offline
Зарегистрирован: 14.03.2015

не ну так во втором варианте кода я ее закоментировал , и  увы , все тоже самое 

скидывает именно секунды 

bwn
Offline
Зарегистрирован: 25.08.2014

А стандартный пример из библиотеки работает, с выводом через сериал? Попробуйте поставить нормальную библу, для работы с аппаратным I2C на А4,А5.