显示屏参数:1.6寸130×130分辨率,驱动为 SSD1283A,TFT显示屏。

显示屏官方说明:

主控板:ESP8266或ESP32、或ESP12等


我使用的主控板是NodeMCU ESP12F,接线图定义如下:

   #define MODEL SSD1283A
   #define CS   D8 
   #define CD   D3                                // marked A0 on the SSD1283A breakout
   #define RST  D4 
   #define LED  -1 

   LCDWIKI_SPI mylcd(MODEL,CS,CD,RST,LED); 

该定义主要是把CS CD RST LED进行端口指定,VCC和GND都是通用的,接线图如下(忽略掉BH1750的接线):

然后下载库文件,放在“我的文档”中的“Arduino\Library”文件夹里,下载地址:lcdwiki (github.com)

如图:

然后载入案例进行测试。


案例一:显示文字和简单图形:

// wemos_130x130_TFT_SSD1283A_graphic_functions
// Floris Wouterlood
// 29 february 2020
// see: https://github.com/gitcnd/LCDWIKI_GUI/blob/master/Document/LCDWIKI%20GUI%20lib%20Manual.pdf
// demo of several functions suppied by the LCDWIKI.GUI 
// public domain

   #include <LCDWIKI_GUI.h> //Core graphics library
   #include <LCDWIKI_SPI.h> //Hardware-specific library

// for ESP8266 NodeMCU and Wemos D1 Mini D1
   #define MODEL SSD1283A
   #define CS   D8 
   #define CD   D3                                // marked A0 on the SSD1283A breakout
   #define RST  D4 
   #define LED  -1 

   LCDWIKI_SPI mylcd(MODEL,CS,CD,RST,LED); 

   #define BLACK   0x0000
   #define BLUE    0x001F
   #define RED     0xF800
   #define GREEN   0x07E0
   #define CYAN    0x07FF
   #define MAGENTA 0xF81F
   #define YELLOW  0xFFE0
   #define WHITE   0xFFFF

void setup() 
{

  mylcd.Init_LCD();
  mylcd.Fill_Screen(BLACK);
}

void loop() 
{
  mylcd.Set_Text_Mode(0);
  
  mylcd.Fill_Screen(0x0000);
  mylcd.Set_Text_colour(RED);
  mylcd.Set_Text_Back_colour(BLACK);
  mylcd.Set_Text_Size(2);
  mylcd.Print_String("TAHOLAB.COM", 0, 0);

  mylcd.Fill_Rect(20,20,20,20,YELLOW);
  mylcd.Set_Draw_color(YELLOW); 
  mylcd.Draw_Round_Rectangle (70,70,100,100,6);
  mylcd.Set_Draw_color(GREEN); 
  
  mylcd.Draw_Fast_VLine (80,80,30);
  mylcd.Draw_Fast_HLine (80,80,30);

  mylcd.Draw_Line (125,125,20,70);
  
  mylcd.Draw_Circle (70,40,16);  
  mylcd.Draw_Circle (70,39,17);
  mylcd.Draw_Circle (105,40,16);
  mylcd.Draw_Circle (105,39,17);  
  mylcd.Set_Draw_color(WHITE); 
  mylcd.Fill_Circle (73,46,6);
  mylcd.Fill_Circle (102,46,6);  

  mylcd.Set_Draw_color(CYAN); 
  mylcd.Draw_Triangle (5,110, 15,120,50,16); 
  
  mylcd.Set_Draw_color(MAGENTA);   
  mylcd.Fill_Triangle (90,125, 20,120,50,99); 

  mylcd.Print_String("YES!",40,70);
  
  delay(23000);
}

效果:

源代码下载:


案例二:显示图片

// IMPORTANT: LCDWIKI_SPI LIBRARY MUST BE SPECIFICALLY
// CONFIGURED FOR EITHER THE TFT SHIELD OR THE BREAKOUT BOARD.

//This program is a demo of how to display scroll.

//when using the BREAKOUT BOARD only and using these hardware spi lines to the LCD,
//the SDA pin and SCK pin is defined by the system and can't be modified.
//if you don't need to control the LED pin,you can set it to 3.3V and set the pin definition to -1.
//other pins can be defined by youself,for example
//pin usage as follow:
//                 CS  A0/DC  RESET  SDA  SCK  LED    VCC     GND
//ESP8266 D1 nimi  D1   D3     D2    D7   D5   D4   5V/3.3V   GND

//Remember to set the pins to suit your display module!
/********************************************************************************
  @attention

  THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
  TIME. AS A RESULT, QD electronic SHALL NOT BE HELD LIABLE FOR ANY
  DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
  FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
  CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
**********************************************************************************/
#include <LCDWIKI_GUI.h> //Core graphics library
#include <LCDWIKI_SPI.h> //Hardware-specific library
#include "font.h"
#include "cat.h"
#include "kitty.h"

   //#include <LCDWIKI_GUI.h> //Core graphics library
   //#include <LCDWIKI_SPI.h> //Hardware-specific library

// for ESP8266,ESP12,ESP32 ...etc
   #define MODEL SSD1283A
   #define CS   D8 
   #define CD   D3                                // marked A0 on the SSD1283A breakout
   #define RST  D4 
   #define LED  -1 

LCDWIKI_SPI my_lcd(MODEL,CS,CD,RST,LED); 


//the definiens of hardware spi mode as follow:
//if the IC model is known or the modules is unreadable,you can use this constructed function
//LCDWIKI_SPI my_lcd(MODEL, CS, CD, RST, LED);

#define  BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF

char *color_name[] = { "BLUE", "GREEN", "RED", "WHITE" , "CYAN", "MAGENTA", "YELLOW"};
uint16_t color_mask[] = { 0x001F, 0x07E0, 0xF800, 0xFFFF, 0x07FF, 0xF81F, 0xFFE0 };
// covert images
// http://www.rinkydinkelectronics.com/_t_doimageconverter565.php

void show_pic(void)
{
  int i;
    my_lcd.Set_Addr_Window(0, 0, 129 , 129);
    my_lcd.Push_Any_Color((uint16_t*)kitty, 16900, 1, 1);
  //  my_lcd.Set_Addr_Window(0, 0, 9, 9);
  //  my_lcd.Push_Any_Color((uint8_t*)ran, 10000, 1, 1);
//  my_lcd.Draw_Bit_Map( 0, 0, 160, 160, cat, 1);
  //        my_lcd.Draw_Rectangle(20, 40, 80, 80);

}


void setup()
{
  Serial.begin(9600);
  my_lcd.Init_LCD();
  my_lcd.Fill_Screen(BLACK);
  show_pic();
}

void loop()
{

}

效果图:

源代码下载:

 


自定义图片的网站:Rinky-Dink Electronics (rinkydinkelectronics.com)

或者用:https://lvgl.io/tools/imageconverter

上传对应分辨率的照片,生成.c格式的文件,放到你的代码目录中,更改后缀名为.h,在代码中引用即可。

我替换后的样子:


代码中显示图形有多种函数,每个函数的含义请参看文件:

装载机 载入中…
EAD徽标 花费太长时间?

刷新 重新载入文件
| 打开 在新选项卡中打开

下载文件

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注