Arduino Nano + 1.8TFT SPI дисплей + DS1302. Нули на дисплее.
- Войдите на сайт для отправки комментариев
Вс, 22/12/2013 - 10:26
Приветствую!
Попалась мне в руки такая связка. Подключил.
Пытыюсь вывести время на дисплей - выводит, но... после 3-4 обновлений дисплея (10 сек.) выводит нули 3-4 раза. Заметил, что часы отставать начали, за 4 часа работы приблизительно на 5 минут.
На Arduino в программировании я не очень (или совсем ;-) ), прошу сильно не пинайте. Скетч я "собирал" из трёх разных - порядка там нету.
Обновление дисплея довольно медленное, я так понимаю символы вырисовывает попиксельно.
Как от нулей на дисплее избавиться?
// Grafiktest 1.8 Zoll TFT-Farb-Display (HY-1.8 SPI) #define cs 10 // Arduino-Pin an Display CS #define dc 9 // Arduino-Pin an #define rst 8 // Arduino Reset-Pin #include <Adafruit_GFX.h> // Adafruit Grafik-Bibliothek #include <Adafruit_ST7735.h> // Adafruit ST7735-Bibliothek #include <SPI.h> Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, rst); // Display-Bibliothek Setup // Всовываем часы #include <LCD5110_Graph.h> // Подключение библиотек #include <DS1302.h> DS1302 rtc(2, 3, 4); // Инициализация библиотеки с указанием // пинов подключения к Arduino платы часов Time t; // Инициализация структуры void setup(void) { tft.initR(INITR_BLACKTAB); // ST7735-Chip инициализация дисплея rtc.halt(false); // Установка режимов rtc.writeProtect(false); // работы часов // Следующих три строки нужно закомментировать после // установки времени и загрузить скетч в плату повторно // rtc.setDOW(MONDAY); // Установка дня недели // rtc.setTime(17, 14, 10); // Установка времени 10:59:10 // rtc.setDate(21, 12, 2013); // Установка даты 20 июля 2013 // rtc.setDOW(1); Начало недели 1 - понедельник } void loop() { t = rtc.getTime(); // Получение времени и его запись в структуру t // Bildschirm mit Farbe fuellen fillScreen(farbe); tft.fillScreen(ST7735_BLACK); // Neue Fontgroesse setzen setTextSize(groesse); tft.setTextSize(1); // Neue Textfarbe setzen setTextColor(farbe); tft.setTextColor(ST7735_YELLOW); // Neue Textposition setzen // setCursor(x,y); tft.setCursor(0,10); // Text ausgeben print(text); tft.print("Hello!!!"); tft.setTextSize(3); tft.setCursor(20,25); tft.print(rtc.getTimeStr(FORMAT_SHORT)); tft.setTextSize(1); tft.setCursor(0,50); tft.print(rtc.getDOWStr()); tft.setCursor(0,60); tft.print(rtc.getDateStr()); delay(10000); // 10 Секунд задержка }
Вообще-то, в будущем, я хочу сделать управление освещением (светодиоды RGB), прикрутить клавиатуру и Bluetooth (пробовал - работает). Все это собрать воедино - у меня впереди ;-)
А схемку можно посмотреть ?
Проверьте, что реально у Вас возвращают часы в строках 46, 50 и 53.
батарейку проверьте, если там ниже 2.5в будет отставание
строка 11 не лишняя?
косяк в подключении исправили?
да и вот так будет вернее:
да и вот так будет вернее:
Можно узнать почему?
Первопост от 2013-го года. ТС уже на пенсию давно вышел.
Первопост от 2013-го года. ТС уже на пенсию давно вышел.
ах чилинтано, ах сукин сын ))))
Ты где-нить видел отрицательные пины?
Ты где-нить видел отрицательные пины?
нет, но так они описаны в библиотеке, а я прилежный ученик, слова Евгения помню )))
нет, но так они описаны в библиотеке
щажжэ выкинь каку!!!
нет, но так они описаны в библиотеке
щажжэ выкинь каку!!!
да я эту библиотеку и не использую, у меня и модули DS3231 )))