E-Ink, epaper, электронная бумага

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 26671
Зарегистрирован: Пт май 18, 2007 22:56:58

Сообщение Upgrader »

Есть такой дисплей
Изображение
https://aliexpress.ru/item/32870097847.html

Они есть двухцветные.
Основной цвет работает отлично. Второй дополнительный плохо - его еле видно, особенно при температуре воздуха ниже 25. Может кто-то знает в чем причина?
Иногда в момент обновления экрана второй цвет на долю секунды проявляется четко так как должен, но сразу же исчезает т.к. идет обновление экрана. Т.е. вообще дисплей может работать нормально, но что-то ему мешает. Изначально с завода дисплей шел с отображаемой фирменной картинкой обоих цветов - очень четкие насыщенные были цвета, не сразу понял это дисплей или фейковая картинка на нем приклеена. И первое время тоже цвет был достаточно четкий, хотя уже бледнее чем должен был бы быть.

Подключал к разным микроконтроллерам с разной прошивкой - никаких изменений в работе дисплея нет.
Может быть мне достался брак?
Не променяю медь на ржавую несгорайку!
Реклама
Опытный кот
Сообщения: 768
Зарегистрирован: Вс янв 19, 2014 00:55:09

Сообщение MOHCTEP »

Не довелось попользоваться, но где-то читал (на хабре вроде), что надо несколько раз отрефрешить картинку для четкости. Вроде таким макаром, посылая картинку частями, народ даже полутонов добивается.
Реклама
Мудрый кот
Сообщения: 1778
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="MOHCTEP",url="/forum/viewtopic.php?p=4445249#p4445249"]Не довелось попользоваться, но где-то читал (на хабре вроде), что надо несколько раз отрефрешить картинку для четкости. Вроде таким макаром, посылая картинку частями, народ даже полутонов добивается.[/uquote]Нет ничего там такого. Выводил картинку на свой чёрно-красный EPD - всё нормально вывелось. Процедура вывода простая:

Код: Выделить всё

//Sends the image buffer in RAM to e-Paper and displays
void EPD_Display(u8 const *blackimage, u8 const *redimage)
{
  uint j, i;
  EPD_SetWindows(0, 0, EPD_WIDTH, EPD_HEIGHT);
  for (j = 0; j < EPD_HEIGHT; j++) {
    EPD_SetCursor(0, j);
    for (i = 0; i < sizeof(widthBuf); i++) widthBuf[i] = blackimage[i + j * sizeof(widthBuf)];
    EPD_Write(EPD_WRITE_RAM, widthBuf, sizeof(widthBuf));
  }
  for (j = 0; j < EPD_HEIGHT; j++) {
    EPD_SetCursor(0, j);
    for (i = 0; i < sizeof(widthBuf); i++) widthBuf[i] = redimage[i + j * sizeof(widthBuf)];
    EPD_Write(EPD_WRITE_RAM_RED, widthBuf, sizeof(widthBuf));
  }
  EPD_TurnOnDisplay();
}
EPD_SetWindows() - устанавливает окно вывода. EPD_Write() - просто даёт команду записи блока пикселей через SPI и передаёт сами пиксели. Однократно, никаких повторов. Это команда контроллеру EPD, что уж он там делает с самими чернилами - это его дело.
Как видно из кода: картинка делится на чёрную и красную часть, и они посылаются в контроллер по-отдельности.

Этим кодом была записана картинка в конце 2020г. Картинка до сих пор отображается ярко (с тех пор ни разу не переписывалась), и на глаз никакой из цветов в яркости не потерял - оба примерно одинаково выглядят:
Изображение
Ответить

Вернуться в «Периферия»