1.47inch-Touch-LCD 使用教程



产品介绍

产品简介

1.47inch Touch LCD 配备172 × 320分辨率的电容触摸屏,支持13PIN端子接口或18PIN FPC插槽接入,并提供树莓派、ESP32、Pico、Arduino等的示例资料。

产品特性

  • 172 × 320 分辨率,262K 彩色,能清晰地显示彩色图片
  • 触摸屏透过率高,响应快,寿命长
  • 内置 JD9853 驱动芯片和 AXS5106L 电容触控芯片,分别使用 SPI 和 I2C 接口通信,不占用过多接口引脚资源
  • 引出 LCD 控制接口,可以选择 13PIN 端子接口或 18PIN 的 FPC 插槽接入显示屏
  • 板载电平转换芯片,支持 3.3V/5V 两种工作电平

接口介绍

LCD引脚引脚介绍
VCC电源正 (3.3V / 5V 电源输入)
GND电源地
MISOSPI 通信 MISO 引脚
MOSISPI 通信 MOSI 引脚
SCLKSPI 通信 SCLK 引脚
LCD_CSLCD 的片选引脚,低电平有效
LCD_DCLCD 的数据/命令引脚,低电平表示命令,高电平表示数据
LCD_RSTLCD 的复位引脚,低电平有效
LCD_BLLCD 的背光引脚
TP_SDATP 的数据引脚
TP_SCLTP 的时钟引脚
TP_INTTP 的中断引脚
TP_RSTTP 的复位引脚,低电平有效

产品尺寸


产品参数

(请保证供电电压和逻辑电压一致,否则会导致无法正常工作)

参数名称参数
供电电压3.3V/5V
屏幕类型IPS
通信接口Display :SPI
Touch :I2C
控制芯片Display :JD9853
Touch :AXS5106L
分辨率172(H) x 320(V)
显示尺寸17.63 (H) x 32.83 (V) mm
产品尺寸22.05(H)x 41.69(V) mm


树莓派下使用

硬件连接

  • 13PIN 杜邦线接口
LCD引脚树莓派(BCM)
VCC3.3V
GNDGND
MISO9/NC
MOSI10
SCLK11
LCD_CS8
LCD_DC25
LCD_RST27
LCD_BL18
TP_SDA2
TP_SCL3
TP_INT4
TP_RST17

开启SPI与I2C接口

  • 打开树莓派终端,输入以下指令进入配置界面:
sudo raspi-config
  • 选择Interfacing Options -> SPI -> Yes 开启SPI接口






  • 继续进入配置界面:
sudo raspi-config
  • 选择Interfacing Options -> I2C -> Yes 开启I2C接口







  • 重启树莓派
sudo reboot
  • 检查 /boot/config.txt,可以看到'dtparam=i2c_arm=on' 和 'dtparam=spi=on' 已被写入
more  /boot/config.txt


  • 为了确保 SPI 没有被占用,建议其他的驱动覆盖暂时先关闭。可以使用 ls /dev/spi* 来检查 SPI 占用情况,终端输出 /dev/spidev0.0 和 /dev/spidev0.1 表示 SPI 情况正常
ls /dev/spi* 


Python 环境

安装库文件

  • 安装库
sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-pil
sudo apt-get install python3-numpy
sudo apt-get install python3-spidev

示例操作

  • 下载示例程序
cd
wget https://files.waveshare.net/wiki/1.47inch%20Touch%20LCD/1.47inch_Touch_LCD_Demo_Pi.zip
  • (可选,使用过解压指令可跳过这一步)安装解压环境
sudo apt-get install unzip
  • 进入文件位置,执行解压指令
unzip 1.47inch_Touch_LCD_Demo_Pi.zip -d ./1.47inch_Touch_LCD
  • 进入 Python 文件夹中
cd 1.47inch_Touch_LCD/Python
  • 运行示例程序即可在屏幕上显示3张图片,显示完即进入画板功能
sudo python 1.47inch_Touch_LCD.py 

C 环境

安装库文件

  • 安装库
git clone https://github.com/WiringPi/WiringPi
cd WiringPi
./build
gpio -v
  • 运行gpio -v会出现版本,如果没有出现说明安装出错
  • 下载示例文件
  • 进入文件目录,运行程序

示例操作

  • 下载示例程序
cd
wget https://files.waveshare.net/wiki/1.47inch%20Touch%20LCD/1.47inch_Touch_LCD_Demo_Pi.zip
  • (可选,使用过解压指令可跳过这一步)安装解压环境
sudo apt-get install unzip
  • 进入文件位置,执行解压指令
unzip 1.47inch_Touch_LCD_Demo_Pi.zip -d ./1.47inch_Touch_LCD
  • 进入 C 文件夹中
cd 1.47inch_Touch_LCD/C
  • 清除编译文件,重新编译
sudo make clean
sudo make -j
  • 编译成功,运行示例即可在屏幕上进行RGB刷屏,显示完即进入画板功能
sudo ./main

树莓派Pico下使用

硬件连接

  • 13PIN 杜邦线接口
LCD引脚Raspberry Pi Pico
VCC3.3V
GNDGND
MISOGP12/NC
MOSIGP11
SCLKGP10
LCD_CSGP9
LCD_DCGP14
LCD_RSTGP13
LCD_BLGP15
TP_SDAGP6
TP_SCLGP7
TP_INTGP8
TP_RSTGP5

环境搭建

Python 环境示例程序

  • 解压示例文件,打开 Thonny
  • 打开示例文件,路径为:1.47inch_Touch_LCD_Demo_Pico/Python/1.47inch_Touch_LCD.py


  • 运行程序即可在屏幕上实现画板功能


  • 若需上电自动运行程序,请将文件名修改为 main.py


ESP32 下使用

(请注意,以下示例通过ESP32S3运行,其他型号的ESP32请自行调整引脚定义)

硬件连接

  • 13PIN 杜邦线接口
LCD引脚ESP32S3
VCC3.3V
GNDGND
MISO42/NC
MOSI2
SCLK1
SD_CS38
LCD_CS39
LCD_DC41
LCD_RST40
LCD_BL6
TP_SDA15
TP_SCL7
TP_INT17
TP_RST16

Arduino环境

下载和安装 Arduino IDE

  • 点击访问Arduino官网,选择对应的系统和系统位数下载。

  • 运行安装程序,全部默认安装即可。

安装 Arduino-ESP32

  • ESP32相关主板在Arduino IDE使用,须先安装“Arduino-ESP32板”库
  • 国内部分区域安装,一般推荐“离线安装”, 若离线安装失败,则使用“在线安装
  • 安装 Arduino-ESP32教程,详见:Arduino 板管理教程

安装库

  • 在安装 Arduino 库时,通常有两种方式可供选择:在线安装 和 离线安装
    对于大多数库,用户可以通过 Arduino 软件的在线库管理器轻松搜索并安装。然而,一些开源库或自定义库未被同步到 Arduino 库管理器中,因此无法通过在线搜索获取。在这种情况下,用户只能通过离线方式手动安装这些库。
  • 库安装教程,详见:Arduino 库管理教程
库名称说明版本库安装要求
esp_lcd_touch_axs5106触摸驱动库---“离线”安装
esp_lcd_jd9853LCD驱动库---“离线”安装
lvgl图形库v8.4.0“离线”安装

运行第一个Arduino程序

示例程序

lvgl_example


【程序说明】


本示例演示了使用 1.47inch Touch LCD 运行lvgl示例程序

【硬件连接】


  • 将板子接入电脑

【代码分析】


i2c_bus_init();         // 初始化I2C总线
spi_bus_init();         // 初始化SPI总线
display_init();          // 初始化显示屏驱动
touch_init();           // 初始化触摸屏控制器

brightness_init();       // 初始化背光亮度控制模块
brightness_set_level(20); // 设置当前亮度为20%(取值范围0-100)

lv_port_init();          // 初始化LVGL图形库运行环境(绑定硬件显示驱动)

if (lvgl_lock(-1)) {     // 获取图形库互斥锁(防止多线程并发访问)
    lv_demo_widgets();    // 初始化lv_demo
    lvgl_unlock();         // 释放图形库互斥锁
}

【运行效果】




ESP-IDF 环境

环境搭建

示例程序

lvgl_exampla


【程序说明】


本示例演示了ESP32S3在ESP-IDF环境下驱动 1.47inch Touch LCD 运行lvgl示例程序

【硬件连接】


  • 将板子接入电脑

【代码分析】


    i2c_bus_init(); // 初始化I2C
    spi_bus_init(); // 初始化SPI
    display_init(); // 初始化显示屏
    touch_init();   // 初始化触摸屏驱动
    brightness_init(); // 初始化背光控制模块
    brightness_set_level(20); // 设置背光亮度为20%(支持0-100级调节)
    lv_port_init(); // 初始化LVGL
    if (lvgl_lock(-1)) // 获取LVGL线程锁(-1表示阻塞等待),确保多线程安全
    {
        // lv_demo_benchmark();
        // lv_demo_music();
        lv_demo_widgets();  // 启动LVGL的Demo
        lvgl_unlock();  // 释放LVGL线程锁
    }

【运行效果】





lvgl_brightness


【程序说明】


本示例演示了ESP32S3在ESP-IDF环境下驱动1.47inch Touch LCD 运行lvgl并能实现用触摸屏控制屏幕亮度。

【硬件连接】


  • 将板子接入电脑

【代码分析】


    i2c_bus_init(); // 初始化I2C
    spi_bus_init(); // 初始化SPI
    display_init(); // 初始化显示屏
    touch_init();   // 初始化触摸屏驱动
    brightness_init(); // 初始化背光控制模块
    brightness_set_level(20); // 设置背光亮度为20%(支持0-100级调节)
    lv_port_init(); // 初始化LVGL
    if (lvgl_lock(-1)) // 获取LVGL线程锁(-1表示阻塞等待),确保多线程安全
    {
        // lv_demo_benchmark();
        // lv_demo_music();
        // lv_demo_widgets();
        lvgl_brightness_ui_init(lv_scr_act()); // 初始化ui
        lvgl_unlock();  // 释放LVGL线程锁
    }

【运行效果】




Arduino UNO下使用

硬件连接

  • 13PIN 杜邦线接口
LCD引脚Arduino
VCC5V
GNDGND
MISO12/NC
MOSI11
SCLK13
LCD_CS10
LCD_DC7
LCD_RST8
LCD_BL9
TP_SDASDA
TP_SCLSCL
TP_INT3
TP_RST4

安装库

  • 在安装 Arduino 库时,通常有两种方式可供选择:在线安装 和 离线安装
    对于大多数库,用户可以通过 Arduino 软件的在线库管理器轻松搜索并安装。然而,一些开源库或自定义库未被同步到 Arduino 库管理器中,因此无法通过在线搜索获取。在这种情况下,用户只能通过离线方式手动安装这些库。
  • 库安装教程,详见:Arduino 库管理教程
库名称说明库安装要求
GFX_Library_for_ArduinoLCD驱动库“在线”或“离线”安装
axs5106l_deviceTouch驱动库“离线”安装

示例程序

  • 下载示例程序,并解压
  • 进入示例文件 1.47inch_Touch_LCD_Demo_Arduino/1.47inch_Touch_LCD.ino 中,双击 1.47inch_Touch_LCD.ino 打开示例


  • 选择设备与端口,编译并烧录程序


  • 烧录成功进入画板功能

FAQ

问题:示例跑不通,通信不上?

请注意板子的GPIO电平是否与产品的供电电压一致!


技术支持

周一-周五(9:30-6:30)周六(9:30-5:30)

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841