侧边栏壁纸
博主头像
塞塞哇 博主等级

开源创客

  • 累计撰写 38 篇文章
  • 累计创建 9 个标签
  • 累计收到 11 条评论

目 录CONTENT

文章目录

老王的0.96寸JDI-memory LCD

塞塞蛙
2024-01-20 / 2 评论 / 2 点赞 / 811 阅读 / 0 字

老王的0.96寸JDI-memory LCD

这一款是老王店里卖的一款JDI的低功耗无背光的LCD屏幕

接下来就教大家如何使用ESP32C3进行驱动点亮屏幕

col1 col2 col3
image-rwwu.png image-pnoi.png image-ekdb.png

驱动方法

这里我们采用的是使用ESP32C3开发板来做

开发环境选择PlatformIO

首先安装库文件在ini文件中复制库的依赖

[env:airm2m_core_esp32c3]
platform = espressif32
board = airm2m_core_esp32c3
framework = arduino
upload_port = /dev/cu.wchusbserial556E0037891
monitor_speed = 115200
board_build.flash_mode = dio
lib_deps = 
	; bodmer/TFT_eSPI@^2.5.30
	gbertaz/JDI_MIP_Display@^1.0.0
	adafruit/Adafruit GFX Library@^1.11.9

等待安装完成后,接下来在.pio文件夹下找到配置文件进行修改如图


SCS配置为SPI的CS脚,DISP就是DI引脚

第二步修改SPI的初始化引脚,修改修改文件,看下图标识进行修改

说明: 第一个参数是SPI的CLK时钟,-1代表忽略, 第三个是SPI的数据输出MOSI

完成上面的修改步骤那么恭喜你完成了所有的配置,接下来复制下面的代码到你的main文件中烧录到你的ESP32中去吧。

#include <JDI_MIP_Display.h>

#define NUMBER_COLORS 8

const uint16_t colors[NUMBER_COLORS] = {COLOR_BLACK, COLOR_BLUE, COLOR_GREEN, COLOR_CYAN, COLOR_RED, COLOR_MAGENTA, COLOR_YELLOW, COLOR_WHITE};

JDI_MIP_Display jdi_display;

int rectHeight = jdi_display.height() / NUMBER_COLORS;
int rectWidth = jdi_display.width() / 2;
int startColor = 0;
int currentColor = 0;

int fps = 0;
unsigned int frames = 0;
unsigned long startMillis = 0;

void scrollingColors();

void setup() {
  jdi_display.begin();
  delay(50);
  jdi_display.displayOn();
  jdi_display.frontlightOn();         //Optional depending on the display model
  jdi_display.clearScreen();          //Clear the screen
  jdi_display.refresh();              //Actually updates the display
  startMillis = millis();
}

void loop() {
  scrollingColors();
//   jdi_display.fillCircle(jdi_display.width() / 2, jdi_display.height() / 2, 60, COLOR_BLUE);

  int xPos = 2;
  int yPos = 2;

  jdi_display.setTextColor(COLOR_BLACK, COLOR_WHITE);
  jdi_display.setTextSize(2);
  jdi_display.setCursor(xPos, yPos);
  jdi_display.print("fps");
  
//   if(fps >= 10) xPos -= 20;
  jdi_display.setTextColor(COLOR_BLACK, COLOR_WHITE);
  jdi_display.setTextSize(2);
  jdi_display.setCursor(xPos, yPos + 17);
  jdi_display.print(fps);
  jdi_display.refresh();      //Actually updates the display
  
  fps = frames / ((millis() - startMillis) / 1000);
  frames++;
}


void scrollingColors(){
  
  int y = 0;
  
  currentColor = startColor;
  
  for(int i = 0; i < NUMBER_COLORS; i++){
    jdi_display.fillRect(0, y, rectWidth, rectHeight, colors[currentColor]);
    y += rectHeight;
    currentColor++;
    if(currentColor > NUMBER_COLORS - 1) currentColor %= NUMBER_COLORS;
  }

  currentColor = startColor;
  y = jdi_display.height() - rectHeight;
  for(int i = 0; i < NUMBER_COLORS; i++){
    jdi_display.fillRect(rectWidth, y, rectWidth, rectHeight, colors[currentColor]);
    y -= rectHeight;
    currentColor++;
    if(currentColor > NUMBER_COLORS - 1) currentColor %= NUMBER_COLORS;
  }
  
  if(startColor < NUMBER_COLORS - 1) startColor++;
  else startColor = 0;
}

结果可以看最顶部的效果图,座子的型号和原理图也在上面。

2

评论区