【雕爷学编程】MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏

配套 2.4寸LCD屏 ST7789驱动器芯片(24P 320X240)


ST7789驱动器芯片2.4寸LCD屏(24P 320X240)

主要参数

1. 模块名称:液晶显示模块

2. 型号:KD024C-4

3. 同类型型号: 

4. 兼容型号:

5. 显示模式:TFT

6. 显示色彩:65/262K

7. 分辨率: 240*320

8. 点距:0.153 (H) x 0.153 (V)

9. 视角:12:00

10. 控制IC:ST7789V

11. 显示类型:全透型,常白

12. 外形尺寸:42.72*60.26*2.6mm

13. 可视面积:38.32*50.56 mm

14. 点阵区面积:36.72*48.96mm

15. 亮度:300cd/m2

16. 对比度:500

17. 接口类型: 8/9/16/18位8080并口

                   16/18位RGB接口

                    3/4线SPI接口

18. 引脚数:24

19. 引脚距离:0.5mm

20. 连接类型: FPC插接型

21. 工作电压:3.3V

22. 背光灯颜色及类型: 白色LED背光

23. 背光电路:4 LED 并联, 共阳

If=80mA, Vf =3.2V

24. 使用寿命:100000h

25. 工作温度:-20----70°C 

26. 储存温度:-30----80°C 

27. 质量体系认证:ISO9001:2008

28. 产品认证:RoHS



#MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏

#测试程序之一:显示英文


#MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏

#测试程序之一:显示英文

import lcd

lcd.init()

lcd.draw_string(100, 100, "hello MicroPython!", lcd.RED, lcd.BLACK)


lcd 屏幕显示驱动

lcd.display(image, roi=Auto)

在液晶屏上显示一张 image(GRAYSCALE或RGB565)。

roi 是一个感兴趣区域的矩形元组(x, y, w, h)。若未指定,即为图像矩形

若 roi 宽度小于lcd宽度,则用垂直的黑色边框使 roi 居于屏幕中心(即用黑色填充未占用区域)。

若 roi 宽度大于lcd宽度,则 roi 居于屏幕中心,且不匹配像素不会显示(即液晶屏以窗口形态显示 roi 的中心)。

若 roi 高度小于lcd高度,则用垂直的黑色边框使 roi 居于屏幕中心(即用黑色填充未占用区域)。

若 roi 高度大于lcd高度,则 roi 居于屏幕中心,且不匹配像素不会显示(即液晶屏以窗口形态显示 roi 的中心)。

roi 是键值参数,必须在函数调用中通过写入 roi= 来显式地调用。


#MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏

#测试程序之二:LCD屏显示"hello maixpy"

import lcd, time

import image

bg = (236,36,36)

lcd.init(freq=15000000)

lcd.direction(lcd.YX_RLDU)

lcd.clear(lcd.RED)

time.sleep(1)

lcd.draw_string(120, 120, "hello maixpy", lcd.WHITE, lcd.RED)

time.sleep(2)

img = image.Image()

img.draw_string(60, 100, "hello maixpy", scale=2)

img.draw_rectangle((120,120,30,30))

lcd.display(img)



lcd 屏幕显示驱动函数

1. lcd.init(type=1, freq=15000000, color=lcd.BLACK)

初始化 LCD 屏幕显示

参数

type: LCD 的类型(保留给未来使用):

0: None

1: lcd shield(默认值)

type 是键值参数,必须在函数调用中通过写入 type= 来显式地调用

freq: LCD (实际上指 SPI 的通讯速率) 的频率

color: LCD 初始化的颜色, 可以是 16 位的 RGB565 颜色值,比如 0xFFFF; 或者 RGB888 元组, 比如 (236, 36, 36), 默认 lcd.BLACK

2. lcd.clear()

将液晶屏清空为黑色或者指定的颜色。

参数

color: LCD 初始化的颜色, 可以是 16 位的 RGB565 颜色值,比如 0xFFFF; 或者 RGB888 元组, 比如 (236, 36, 36)

3. lcd.freq(freq)

设置或者获取 LCD (SPI) 的频率

Paremeters

freq: LCD (SPI) 的频率

Return

LCD 的频率

4. lcd.direction(dir)

在 v0.3.1 之后已经被舍弃, 请使用lcd.rotation 和 lcd.invert代替, 如非必要请勿使用, 接口仍会被保留用于调试使用

设置屏幕方向, 以及是否镜像等

参数

dir: 正常情况下推荐 lcd.YX_LRUD 和 lcd.YX_RLDU, 另外还有其它值,交换 XY 或者 LR 或者 DU即可


#MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏

#实验程序之三:LCD液晶显示器彩条测试

import lcd,image, time

lcd.init(type=1, freq=15000000)

# lcd.init(type=2, freq=20000000)

# lcd.init(type=1, width=320, height=240, invert=True, freq=20000000)

img = image.Image(size=(240,240))

img.draw_rectangle(0,0,30, 240, fill=True, color=(0xff, 0xff, 0xff))

img.draw_rectangle(30,0,30, 240, fill=True, color=(250, 232, 25))

img.draw_rectangle(60,0,30, 240, fill=True, color=(106, 198, 218))

img.draw_rectangle(90,0,30, 240, fill=True, color=(98, 177, 31))

img.draw_rectangle(120,0,30, 240, fill=True, color=(180, 82, 155))

img.draw_rectangle(150,0,30, 240, fill=True, color=(231, 47, 29))

img.draw_rectangle(180,0,30, 240, fill=True, color=(32, 77, 158))

img.draw_rectangle(210,0,30, 240, fill=True, color=(27, 28, 32))

lcd.display(img)

count = 500

while count > 0:

    t = time.ticks_ms()

    lcd.display(img)

    print(time.ticks_ms() - t)

    count -= 1


#MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏

#实验程序之四:测试Microphone阵列算法

fromMaiximportMIC_ARRAYasmic

importlcd

lcd.init()

mic.init()

whileTrue:

    imga = mic.get_map()

    b = mic.get_dir(imga)

a = mic.set_led(b,(0,0,255))

imgb = imga.resize(160,160)

imgc = imgb.to_rainbow(1)

    a = lcd.display(imgc)

mic.deinit()



#MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏

#实验程序之五:图形与hello maixpy

import lcd, time

import image

bg = (236,36,36)

lcd.init(freq=15000000)

lcd.direction(lcd.YX_RLDU)

img = image.Image()

img.draw_string(60, 100, "hello maixpy", scale=2)

img.draw_rectangle((120,120,30,30))

img.draw_circle((150,140, 80))

img.draw_cross((250,40))

img.draw_arrow((250,200,20,200), color=(236,36,36))

lcd.display(img)


#MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏

#实验程序之六:碰碰球演示

import image, lcd

lcd.init(freq=20000000)

i = 0

dir = 1

while(True):

    img = image.Image(copy_to_fb=1)

    img.clear()

    img.draw_rectangle(i,50,50,50)

    lcd.display(img)

    if dir:

        i += 5

        if i==270:

           dir = 0

    else:

        i -= 5

        if i==0:

            dir = 1


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容