Skocz do zawartości

Monitory HMI w użytku domowym.


Pomocna odpowiedź

7 minut temu, SOYER napisał:

a oglądałeś ten przykład co napisałem, z tego zioa co załączyłem?

A Ty go oglądałeś? 😄 

    USBSerial.println("Initialize display panel");
    panel->init();
    panel->begin();

    lcd = panel->getLcd();
    touch = panel->getTouch();
    backlight = panel->getBacklight();

    if (backlight != nullptr) {
        USBSerial.println("Turn off the backlight");
        backlight->off();
    } else {
        USBSerial.println("Backlight is not available");
    }

To jest w setup - tutaj masz przypisanie zmiennej backlight, którego pewnie brakuje w Twoim kodzie.

5 minut temu, H1M4W4R1 napisał:

A Ty go oglądałeś? 😄 

    USBSerial.println("Initialize display panel");
    panel->init();
    panel->begin();

    lcd = panel->getLcd();
    touch = panel->getTouch();
    backlight = panel->getBacklight();

    if (backlight != nullptr) {
        USBSerial.println("Turn off the backlight");
        backlight->off();
    } else {
        USBSerial.println("Backlight is not available");
    }

To jest w setup - tutaj masz przypisanie zmiennej backlight, którego pewnie brakuje w Twoim kodzie.

nie brakuje, ale ciągle wywala tego elsa

backlight is not available

Jako, że nie chcę za bardzo namieszać, to zapytam mądrzejszych:

Po ustawieniu ESP_PANEL_USE_BACKLIHT na 1 nie ma już komunikatu "Backlight is not available", tylko na Serialu ładnie wypisuje, że włącza lub wyłącza, ale..

Brak reakcji na ekranie, tzn. jest reakcja pomiędzy on a off ale bardzo minimalna, jakby tylko lekka zmiana odcienia ekranu.

Teraz pytanie czy ustawiony pin(45) jest ok?

Schemat:

https://files.waveshare.com/wiki/ESP32-S3-Touch-LCD-4/ESP32-S3-Touch-LCD-4datasheet.pdf

 

 

Zrzut ekranu 2025-01-06 111240.png

(edytowany)

Dodam tylko, że w main w SETUP jest sterowanie podświetleniem i buzzerem tak:

expander->pinMode(5, OUTPUT);
  expander->digitalWrite(5, HIGH);
  expander->pinMode(0, OUTPUT);
  expander->digitalWrite(0, LOW);
  expander->pinMode(2, OUTPUT);
  expander->digitalWrite(2, LOW);
  //expander->printStatus();
  delay(200);
  expander->digitalWrite(5, LOW);
  expander->digitalWrite(2, HIGH);
  expander->digitalWrite(0, HIGH);

pin 5 to buzzer,

a zakomentowanie pod delay(200);

expander->digitalWrite(2, HIGH);

powoduje pozostawienie podświetlenia ekranu wyłączonego, czyli 2 to brightness.

Nadal nie wiem do czego jest pin 0.

Edytowano przez SOYER
(edytowany)

Nie wiem też, to już pytanie do @_LM_ dlaczego jedynka przy 

#define ESP_PANEL_USE_EXPANDER          (1)   

powoduje PANIC i resetowanie modułu przy starcie.

#define ESP_PANEL_USE_EXPANDER          (1)         // 0/1
#if ESP_PANEL_USE_EXPANDER
/**
 * IO expander name. Choose one of the following:
 *      - CH422G
 *      - HT8574
 *      - TCA95xx_8bit
 *      - TCA95xx_16bit
 */
#define ESP_PANEL_EXPANDER_NAME         TCA95xx_8bit

/* IO expander Settings */
/**
 * If set to 1, the driver will skip to initialize the corresponding host. Users need to initialize the host in advance.
 * It is useful if other devices use the same host. Please ensure that the host is initialized only once.
 */
#define ESP_PANEL_EXPANDER_SKIP_INIT_HOST       (0)     // 0/1
/* IO expander parameters */
#define ESP_PANEL_EXPANDER_HOST_ID              (1)     // Typically set to 0
#define ESP_PANEL_EXPANDER_I2C_ADDRESS          (0x20)  // The actual I2C address. Even for the same model of IC,
                                                        // the I2C address may be different, and confirmation based on
                                                        // the actual hardware connection is required
#if !ESP_PANEL_EXPANDER_SKIP_INIT_HOST
    #define ESP_PANEL_EXPANDER_I2C_CLK_HZ       (400 * 1000)
                                                        // Typically set to 400K
    #define ESP_PANEL_EXPANDER_I2C_SCL_PULLUP   (1)     // 0/1
    #define ESP_PANEL_EXPANDER_I2C_SDA_PULLUP   (1)     // 0/1
    #define ESP_PANEL_EXPANDER_I2C_IO_SCL       (9)
    #define ESP_PANEL_EXPANDER_I2C_IO_SDA       (8)
#endif
#endif /* ESP_PANEL_USE_EXPANDER */

EDIT: nie panic tylko standardowe:

11:38:08.546 -> E (45497) tca95xx_8bit: write_output_reg(125): Write output reg failed
11:38:08.546 -> E (45497) io_expander: esp_io_expander_set_level(106): Write Output reg failed
11:38:08.546 -> E (45499) ESP_IOExpander: [ESP_IOExpander.cpp:81] digitalWrite(): Check error 263 (ESP_ERR_TIMEOUT)

 

Edytowano przez SOYER

Na moje to trzeba jakoś przypisać dla backlight pin EXI02(bo ten 45 chyba nie jest poprawny, chyba) i tak czy inaczej uruchomić obsługę ekspandera żeby działało sterowanie pinami ekspandera po panel->begin(), żeby nie wywalało tych błędów. 

 

2 minuty temu, _LM_ napisał:
esp_lcd_panel_disp_on_off(lcd_handle, true); // true or false

 

Co to za funkcja? Gdzie jej ciało, że się tak fachowo wyrażę?

Napisz proszę coś więcej…

(edytowany)

Rozwiązałbym to tak: ustawił dwa motywy dzienny i nocny, oraz wygaszacz ekranu coby nie wypalało pikseli tym samym obrazem, nwm, jakieś grafiki, zdjęcia czy inne pierdołki

 

Edytowano przez _LM_
6 minut temu, SOYER napisał:

Co to za funkcja?

dostępna w API tego wyświetlacza. 

 

6 minut temu, SOYER napisał:

Napisz proszę coś więcej…

Nie będę ryzykował xD

38 minut temu, _LM_ napisał:

dostępna w API tego wyświetlacza

Jaki to dokładnie wyświetlacz?

Gdzie to znajdę?

Cyba, że nie chodzi Ci o wyświetlacz a o cały moduł?

 

 

23 godziny temu, _LM_ napisał:
esp_lcd_panel_disp_on_off(lcd_handle, true); // true or false

 

Niestety nie poradziłem sobie z tym.

 

Twoje oczekiwania względem tego polecenia chyba nie odpowiadają rzeczywistości - nie steruje on podświetleniem 

Cytat

esp_lcd_panel_disp_on_off() can turn on or off the LCD screen by cutting down the output path from the frame buffer to the LCD screen. Please note, this is not controlling the LCD backlight. Backlight control is not covered by the esp_lcd driver.

Jest to fragment dokumentacji

10 godzin temu, SOYER napisał:

Moduł się zaczął zawieszać.

Cześć, włączyłem logi w lv.conf i mam takie coś:

17:29:39.048 -> [Error]	(378.679, +3822)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:40.344 -> [Error]	(379.979, +1300)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:42.156 -> [Error]	(381.729, +1750)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:42.503 -> [Error]	(382.099, +370)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:43.016 -> [Error]	(382.679, +580)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:45.050 -> [Error]	(384.679, +2000)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:45.520 -> [Error]	(385.179, +500)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:46.412 -> [Error]	(385.979, +800)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:46.585 -> [Error]	(386.179, +200)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:48.362 -> [Error]	(387.980, +1801)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:48.855 -> [Error]	(388.445, +465)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:49.591 -> [Error]	(389.230, +785)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:49.911 -> [Error]	(389.480, +250)	 _lv_inv_area: detected modifying dirty reas in render 	(in lv_refr.c line #213)
17:29:50.753 -> [Error]	(390.390, +910)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:51.630 -> [Error]	(391.230, +840)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:52.380 -> [Error]	(391.980, +750)	 _lv_inv_area: detected modifying dirty reas in render 	(in lv_refr.c line #213)
17:29:52.567 -> [Error]	(392.179, +199)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:54.316 -> [Error]	(393.857, +1678)	 _lv_inv_area: detected modifying dirtyareas in render 	(in lv_refr.c line #213)
17:29:55.362 -> [Error]	(394.981, +1124)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:55.643 -> [Error]	(395.231, +250)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:57.013 -> [Error]	(396.679, +1448)	 _lv_inv_area: detected modifying dirty areas in render 	(in lv_refr.c line #213)
17:29:57.557 -> [Error]	(397.182, +503)	 block_locate_free: Asserted at expression: block_size(block) >= size 	(in lv_tlsf.c line #775)
17:32:58.112 -> [Error]	(577.754, +180572)	 block_locate_free: Asserted at expression: block_size(block) >= size 	(in lv_tlsf.c line #775)

po ostatniej linijce następuje zwis...

Gdzie szukać przyczyny?

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...