Приветствую! Ваша функция epd.Buf_4GrayDisplay() чем от epd.Set_4GrayDisplay() отличается, можете код показать?
Я такой же экран приобрел (4.2" от WeAct), и у меня работают черно-белые примеры на библиотеке GxEPD2, но пример от WaveShare с оттенками серого в оригинальной версии не заработаел. Хотел ваш пример попробовать, но вот функции не хватает ![]()
Спасибо.
К сожалению не работает, так же, как и оригинальный пример от WaveShare.
Экран не обновляется, вообще никак не реагирует на программу, то есть, видимо, даже init не проходит.
Плата у меня Waveshare ESP32 S3 Nano, пины я пере-определил перед setup()
#define RST_PIN 3
#define DC_PIN 2
#define CS_PIN 10
#define BUSY_PIN 4
MOSI и SCK у меня, как и в Ардуине на D11 и D13.
Если беру пример от WeAct, который использует библиотеку GxEPD2 - всё работает. То есть проблема не в плате esp32, не в подключении дисплея, и не в самом дисплее.
А я переопределял под rp2040 в файле:
/**
* @filename : epdif.h
* @brief : Header file of epdif.cpp providing EPD interface functions
* Users have to implement all the functions in epdif.cpp
* @author : Yehui from Waveshare
*
* Copyright (C) Waveshare August 10 2017
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documnetation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef EPDIF_H
#define EPDIF_H
#include <Arduino.h>
// Pin definition
#define RST_PIN 22
#define DC_PIN 21
#define CS_PIN 20
#define BUSY_PIN 23
class EpdIf {
public:
EpdIf(void);
~EpdIf(void);
static int IfInit(void);
static void DigitalWrite(int pin, int value);
static int DigitalRead(int pin);
static void DelayMs(unsigned int delaytime);
static void SpiTransfer(unsigned char data);
};
#endif
Блин, я протормозил. Я видел ваши define, но не обратил внимания, что они прямо там же и используются. Конечно, моё пере-определение не работало. Исправил, спасибо, теперь всё показывает как надо ![]()
…Да, интересный в плане цены вариант. Интересно, что его продаёт только один продавец на али.
…Ине кажется экран будет работать и с ПО от разных производителей.
Да, даже странно, у Waveshare, например, много разных продавцов. На GitHub у WeAct показана ещё на taobao ссылка, но это, как я понимаю, для покупателей внутри Китая.
Если контроллер тот же, то и команды те же самые, скорее всего. Но у меня оригинальный пример от WaveShare так и не заработал, хотя ваш работает.
По идее должен был. Я менял в своём примере только порядок вывода оттенков серого. В оригинале на экране они отображались перепутанные местами и фото были некорректными.
Контроллеры и них, вообще-то, разные: WeAct Studio пишет, что у них SSD1683, а Waveshare использует UC8176.
Ещё есть Good Display, у их модуля 4.2" тоже SSD1683, как у WeAct. Пример от GoodDisplay у меня работает без проблем (но он чёрно-белый, без полутонов).
А оригинальный пример от WaveShare я для чистоты эксперимента заново скачал, пины поменял - и стал у меня при запуске программы дисплей мигать. Но на этом всё, ничего не пишет, не рисует.
Я пример вот этот брал: e-Paper/Arduino/epd4in2_V2 at master · waveshareteam/e-Paper · GitHub , и вижу, что в файле epd4in2.cpp у нас с вами есть различия…
Попробуйте вот этот вариант. Он для ESP32 в форм-факторе УНО.
Работает без проблем. Но у меня и ваш epd4in2_V2_RP2040_ottenki_serogo_1 работал, когда я пины правильно переопределил.
Я тут обнаружил, что у известной библиотеки GxEPD2, примеры из которой у меня работали без проблем, есть вариация для дисплеев с 4 оттенками серого - GitHub - ZinggJM/GxEPD2_4G .
Работает на нашем дисплее без проблем (я выбрал в настройках GxEPD2_420_GDEY042T81).
Вроде довольно интересные возможности у этой библиотеки, надо разбираться.
P.S. и примеры от Good Display для модели GDEY042T81 у меня тоже работают
Ну, возможности библиотек как бы вторичны. Первично, наверное, практическое использование такого экрана, а оно однотипно - ценник, бейдж, фоторамка, календарь.
![]()
Ну вот, как я и предполагал, китайцы сделали доступный экран для календаря в праздничные дни. Молодцы.
Если кому-то интересно, у меня получилось использовать сглаженный фонт (antialiased) на этом 4-тоновом экране - GitHub - miklav/GxEPD2_4G_ext: An example which adds Anti-Aliased Font use to GxEPD2_4G library
Ещё можно в зависимости от времени суток при перелистывании тему задавать.
…вот интересный вариант, уже 6 цветов и существенно дороже.
…поэтому пока сомнения ![]()
@lilik Вы вот обсуждали переход на ESP32, картинки с дисплеем красивые выкладывали, библиотеки правили, а тут раз, и календарь на RP2040 оказался!? Прямо как есть проект работающий на ESP без правок закидывается в RP и тоже работает?







