ds1307 TFT 3.2" - нужна помощь
- Войдите на сайт для отправки комментариев
Всем притвет! Проблемма у меня такая , при отключения питания ардуины и включения обратно , сбрасываются секунды на нули .
К примеру , у нас 10 минут и 30 секунд
Отключаем питание и включем , и плучаем 10 минут 00 секнд , если дождаться 11 минут то все запоминаеться
и далее будет 11 минут 00 секнд при новом включении , в течении 11 минут
Самое интересное что если я не выключая питание ардуины , отсоединяю модулю RTC и потом в любое время подключаю то время идет в месте с реальным временем
так же пробовал, выключить ардуину , отсоеденить модуль RTC , включить ардуину , а потом подключить модуль
RTC , то все окей ,работает как надо .
Вроде бы и не мало я перекопал в сети информации примеров кода и вариантов , но так и не нашел способ решить проблему
Ах да я уже и по модулю прошелся паяльником R4,R5,D1 выпаял совсем R6 перемычка , напряжение VBATT - 3.2V
вот мой код
#include <UTouch.h> #include <UTFT.h> //Подключаем библиотеку UTFT #include <DS1307.h> extern uint8_t BigFont[]; extern uint8_t DotMatrix_M[]; //Подключаем шрифт DotMatrix_M extern uint8_t SevenSegmentFull[]; //Подключаем шрифт SevenSeg_XXXL_Num UTFT myGLCD(ITDB32S, 38,39,40,41); // Remember to change the model parameter to suit your display module! UTouch myTouch(6,5,4,3,2); // DS1307: SDA pin -> Arduino Digital 9 // SCL pin -> Arduino Digital 10 DS1307 rtc(9, 10); Time t; void setup() { // rtc.begin(); pinMode(12, OUTPUT); rtc.halt(false); //Запускаем часы //rtc.writeProtect(false); myGLCD.InitLCD(); //Инициализируем дисплей myGLCD.fillScr(0, 0, 0); //Закрашиваем дисплей черным цветом // The following lines can be commented out to use the values already stored in the DS1302 // rtc.setDOW(SUNDAY); // Set Day-of-Week to FRIDAY rtc.setTime(11, 35, 0); // Set the time to 12:00:00 (24hr format) // rtc.setDate(14, 3, 2015); // Set the date to August 6th, 2010 rtc.setSQWRate(SQW_RATE_1); rtc.enableSQW(true); } void loop() { digitalWrite(12,HIGH); //t = rtc.getTime(); String stringOne = rtc.getTimeStr(); myGLCD.setColor(255, 255, 255); //Цвет отображения myGLCD.setFont(SevenSegmentFull); //Шрифт для отображения myGLCD.print(stringOne.substring(0,2), 5, 10); //Отображаем часы myGLCD.print(stringOne.substring(3,5), 110, 10); //Отображаем минуты myGLCD.setFont(BigFont); myGLCD.setColor(255, 255, 0); //Цвет отображения myGLCD.print(stringOne.substring(6), 200, 10); // Вывод секунд //delay(500); myGLCD.setColor(255, 255, 0); //Цвет отображения myGLCD.setFont(BigFont); //Шрифт для отображения myGLCD.fillCircle(90, 25, 7); //Верхняя точка myGLCD.fillCircle(90, 45, 7); //Нижняя точка myGLCD.setColor(0, 255, 0); //Цвет отображения myGLCD.setFont(DotMatrix_M); //Шрифт для отображения myGLCD.print(rtc.getDateStr(), 15, 80); //Отображаем дату }
лишнее стер после эксперементов , в таком виде он у меня работает сейчас
Так у вас 34 строка первого кода каждый раз время при запуске устанавливала.
не ну так во втором варианте кода я ее закоментировал , и увы , все тоже самое
скидывает именно секунды
А стандартный пример из библиотеки работает, с выводом через сериал? Попробуйте поставить нормальную библу, для работы с аппаратным I2C на А4,А5.