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 )))