Часы на GC9A01

Olegkadd

✩✩✩✩✩✩✩
21 Ноя 2019
5
1
Добрый вечер всем. Помогите запустить часы http://whatimade.today/the-idiots-guide-to-making-volos-projects-beautiful-smart-watch/
Вроде все сделал правильно, скейтч загружается и все экран темный. Пробовал примеры из библиотеки TFT-Esp все работают.
Esp32 установлена 2.0.17, TFT-Esp от Bomber плата Esp32 Dev Module + GC9A01+DC3231

Безымянный.jpg
 

Вложения

Bruzzer

★★★★✩✩✩
23 Май 2020
835
259
@Olegkadd,
Совет стандартный, добавляйте выввод диагностических сообщений в Serial, чтобы понять на каком шаге у вас ошибка.
Кстати в вашем скетче нет Serial.begin, поэтому сообщение Serial.println("Couldn't find RTC"); может не выводиться. Добавьте вывод сообщения при успешном старте часов, чтобы убедиться, что Serial работает.
После rtc.begin() стоит убедиться, что время с часов читается нормально и часы работают.
В случае непоняток, можно временно добавлять в setup код проверяющий работоспособность конкретного модуля, или его части. Например вывести на экран слово START и потом задержка на секунду,
И так далее.
 

Olegkadd

✩✩✩✩✩✩✩
21 Ноя 2019
5
1
К сожалению я не разбираюсь в написании скетчей. Пока могу только повторить готовый проект. Если Вам не трудно помогите мне.
 

bort707

★★★★★★★
21 Сен 2020
3,519
1,005
Если Вам не трудно помогите мне.
Начните с полной проверки того, что уже сделано.
Если вы умеете только повторять - убедитесь что ваш проект полная копия того, что у автора. Возьмите точно ту же основную плату, как у него, абсолютно такой же дисплей. Проверьте, чтобы все библиотеки были тех же версий, как у автора. Убедитесь, что подключение и номера пинов идеально совпадают. И не меняйте ни одной строчки в коде.

Если хоть какое-то то из условий не выполняется, вы рискуете нарушить работу кода, что вам трудно будет поправить из-за недостатка опыта.
 

Olegkadd

✩✩✩✩✩✩✩
21 Ноя 2019
5
1
Serial.begin(115200);
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");

Добавил Serial, получил на выходе это. Я так понял плата DC3231 не запускается. Проверил её на примерах библиотеке RTClib всё работает.


22:14:18.615 -> ets Jul 29 2019 12:21:46

22:14:18.615 ->

22:14:18.615 -> rst:0x1 (POWERON_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)

22:14:18.615 -> configsip: 0, SPIWP:0xee

22:14:18.663 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00

22:14:18.663 -> mode DIO, clock div:1

22:14:18.663 -> load:0x3fff0030,len:4876

22:14:18.663 -> ho 0 tail 12 room 4

22:14:18.663 -> load:0x40078000,len:16560

22:14:18.663 -> load:0x40080400,len:3500

22:14:18.663 -> entry 0x400805b4

22:14:18.811 -> E (18) gpio: gpio_pullup_en(85): GPIO number error (input-only pad has no internal PU)
 

Bruzzer

★★★★✩✩✩
23 Май 2020
835
259
Я так понял плата DC3231 не запускается.
По каким признакам вы это поняли? (Я не говорю, что модуль запускается, просто не понял почему вы решили, что он не запускается).

Добавил Serial, получил на выходе это.
"Это" вы должны были получить и без добавления Serial. Это служебные сообщения, они выводятся всегда.
Почитайте уроки по ESP32.
Можно задать вопрос ИИ, например "что означает сообщение при старте ESP32 "rst:0x1 (POWERON_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)" "
При желании, потом задать уточняющие вопросы.

Проверять работоспособность я бы начал в другой последовательности.
Вы пишите, что при запуске этого проекта у вас на экране совсем ничего не отображается. Но в примерах к экрану он (экран) работает.
Значит логично проверить, что экран в этом проекте правильно используется.
Например, как я писал раньше, добавить временно в setup вывод на экран текста "START" с последующей паузой в пару секунд (чтобы успеть прочитать). Когда заработает, двигаться дальше. Например в setup прочитать время с модуля и вывести текстом на экран с последующей паузой.
 

Olegkadd

✩✩✩✩✩✩✩
21 Ноя 2019
5
1
Попробовал добавить
tft.init();
tft.setRotation(0);
tft.fillScreen(TFT_BLACK);
tft.setTextColor(TFT_WHITE, TFT_BLACK);
tft.setTextSize(2);
tft.setCursor(40, 120);
tft.println("Hello, GC9A01!");
Все выводит на экран

Попробовал поменять цвет в первоначальном скетче
tft.fillScreen(TFT_BLACK); с черного на синий, все меняет.
 

Bruzzer

★★★★✩✩✩
23 Май 2020
835
259
Как уже писал раньше, теперь напечатайте текстом время.
> Когда заработает, двигаться дальше. Например в setup прочитать время с модуля и вывести текстом на экран с последующей паузой.
 

333333

★✩✩✩✩✩✩
16 Мар 2020
47
19
в библиотеке TFT Setup.h может вам нужно откорректировать подключение пинов к модулю экрана
// Setup_FW_70c_ESP32_C3_Super_mini_GC9A01_OK.h
// derived from user_Setup 70c of User Setups TFT_eSPI (Bodmer)
// December 19, 2023
// Floris Wouterlood
// public domain

// Setup for the Lolin ESP32-C3 Super Mini with GC9A01 240*240 TFT display
// Note SPI DMA with ESP32 C3 is not currently supported

#define USER_SETUP_ID 70
#define GC9A01_DRIVER
//#define TFT_SDA_READ

//#define TFT_MISO 19
#define TFT_MOSI 19
#define TFT_SCLK 23
#define TFT_CS 5 // CS pin (S7P 7Pin, if there is no CS, you can comment it out and change to #define TFT_CS -1)
#define TFT_DC 15 // DC pin
#define TFT_RST 2 // RST pin (if there is no RST, you can comment it out and change it to #define TFT_RST -1)
#define TFT_BL 14 // LED back-light
 
Изменено: