这一节我们讲解了如何控制240x240的oled屏幕,该oled屏幕驱动芯片是ST7789,我们控制屏幕显示两行字。
一、目的
使用MicroPython开发ESP32开发板控制240x240的oled屏幕。
二、环境
ESP32 + 240x240的oled彩色屏幕+ Thonny IDE + 几根杜邦线
开发板和屏幕接线方法:
三、屏幕介绍
有8个引脚,通过SPI协议进行通信。使用的芯片是ST7789。至于什么是SPI协议?大家自行百度,这里不再赘述。
引脚定义如下:
四、使用方法
屏幕驱动下载地址:
百度网盘:
链接: https://pan.baidu.com/s/1S7Ve8kNj_xiSH5o9OrPZAQ 提取码: zxyp
导入以下两个库:st7789.py 和 st7789py.py
注意将st7789py.py的以下两行注释掉:
字体库:
字体库文件比较大,注意开发板的存储空间。它占用空间较大,所以代码写的复杂的话会出现申请内存error。
将以上文件和我们的代码放在开发板的根目录下即可
代码:
import random
from machine import Pin, SPI
import st7789
import st7789py
import vga2_bold_16x32 as font
import time
# 解决第1次启动时,不亮的问题
st7789.ST7789(SPI(2, 60000000), dc=Pin(2), cs=Pin(5), rst=Pin(15))
# 创建显示屏对象
tft = st7789py.ST7789(SPI(2, 60000000), 240, 240, reset=Pin(15), dc=Pin(2), cs=Pin(5), backlight=Pin(22), rotation=0)
# 屏幕显示蓝色
tft.fill(0)
# 显示Hello
tft.text(font, "Good luck!", 0, 0, st7789py.color565(255, 255, 0), st7789py.color565(0, 255, 0))
def show_text():
for rotation in range(4):
tft.rotation(rotation)
tft.fill(0)
col_max = tft.width - font.WIDTH*6
row_max = tft.height - font.HEIGHT
for _ in range(100):
tft.text(
font,
"I love U!",
random.randint(0, col_max),
random.randint(0, row_max),
st7789py.color565(random.getrandbits(8),random.getrandbits(8),random.getrandbits(8)),
st7789py.color565(random.getrandbits(8),random.getrandbits(8),random.getrandbits(8))
)
time.sleep_ms(300)
# 随机显示I love U!
while True:
show_text()
五、演示效果