• 物联网AI MicroPython传感器学习 之 GC7219点阵屏驱动模块


    学物联网,来万物简单IoT物联网!!在这里插入图片描述

    一、产品简介

    LED-8 * 32点阵屏显示板由 4 块单色 8x8 共阴红色点阵单元组成,通过 SPI 菊花链模式将多块显示屏连接后可以组成更大的分辨率显示屏幕,任意组合分辨率。可用于简单仪表显示、LED显示屏、万年历、数字钟、温度计、计数器、电压表等显示使用。
    image.png
    引脚定义:

    • VCC:接电源正极(3.3-5V)
    • GND:接电源负极
    • DIN:SPI MOSI信号
    • CS:SPI 片选信号
    • CLK:SPI 时钟信号

    二、技术参数

    • 采用常规SPI通讯,支持 16 级亮度调节
    • 支持命令模式和数据模式
    • 支持 SPI 的链接模式,扩展多级 LED 屏幕
    • 工作电压:2.4-5.5V
    • 工作电流:低亮度30mA,高亮度300mA(5V电压时)
    • 尺寸:15.2 x 3.8 厘米

    三、软件接口

    GC7219(spiObj, CS) - 创建 GC7219 驱动对象

    • 函数原型:

    gc7219Obj = GC7219(spiObj ,CS)

    • 参数说明:
    参数类型必选参数?说明
    spiObjSPI传入SPI对象
    CSGPIO传入片选信号 CS 对象
    • 返回值:
      GC7219 对象成功,返回 GC7219 对象;GC7219 对象创建失败,抛出 Exception
    • 示例代码:
    from machine import SPI, Pin
    import gc7219
    
    # 初始化 SPI
    spiObj = SPI(2, baudrate=2000000, sck=Pin(18), mosi=Pin(23), miso=Pin(19))
    # 初始化片选
    csObj = Pin(21, Pin.OUT)
    # 创建 GC7219 驱动
    gc7219Obj = gc7219.GC7219(spiObj, csObj)
    print("GC7219 inited!")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 输出:
    GC7219 inited!
    
    • 1

    flush() - 将驱动的 bitmap 数据刷到 LED 点阵屏幕上

    • 函数功能:
      将 bitmap 切割成每块8x8 LED 点阵屏数据,并通过 SPI DIN 口将数据刷到 LED 点阵屏幕上
    • 函数原型:

    gc7219Obj.flush()

    • 参数说明:
    • 返回值:
    • 示例:
    from machine import SPI, Pin
    import gc7219
    
    # 初始化 SPI
    spiObj = SPI(2, baudrate=2000000, sck=Pin(18), mosi=Pin(23), miso=Pin(19))
    # 初始化片选
    csObj = Pin(21, Pin.OUT)
    # 创建 GC7219 驱动
    gc7219Obj = gc7219.GC7219(spiObj, csObj)
    print("GC7219 inited!")
    
    # 准备 bitmap 点阵屏数据
    # 一共 32x8 宽高的 bitmap,设置第一块 0 0、第二块1 1、第三块2 2、第四块3 3点亮
    gc7219Obj.bitmap.setPixel(0, 0, True)
    gc7219Obj.bitmap.setPixel(8+1, 1, True)
    gc7219Obj.bitmap.setPixel(16+2, 2, True)
    gc7219Obj.bitmap.setPixel(24+3, 3, True)
    # 将 bitmap 刷新到 LED 屏幕上
    gc7219Obj.flush()
    print("drv.bitmap flush done")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 输出:
    GC7219 inited 
    drv.bitmap flush done
    
    • 1
    • 2

    四、接口案例

    • 代码:
    # Python代码
    from machine import SPI, Pin
    import gc7219
    
    # 初始化 SPI
    spiObj = SPI(2, baudrate=2000000, sck=Pin(18), mosi=Pin(23), miso=Pin(19))
    # 初始化片选
    csObj = Pin(21, Pin.OUT)
    # 创建 GC7219 驱动
    gc7219Obj = gc7219.GC7219(spiObj, csObj)
    print("GC7219 inited!")
    # 一共 32x8 宽高的 bitmap,设置第一块 0 0、第二块1 1、第三块2 2、第四块3 3点亮
    gc7219Obj.bitmap.setPixel(0, 0, True)
    gc7219Obj.bitmap.setPixel(8+1, 1, True)
    gc7219Obj.bitmap.setPixel(16+2, 2, True)
    gc7219Obj.bitmap.setPixel(24+3, 3, True)
    # 将 bitmap 刷新到 LED 屏幕上
    gc7219Obj.flush()
    print("drv.bitmap flush done")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 输出:
    ...
    GC7219 inited!
    drv.bitmap flush done
    ...
    
    • 1
    • 2
    • 3
    • 4

    五、通信协议

    主控芯片与LED点阵屏之间使用 SPI 通讯,多块8x8点阵屏使用菊花链模式链接,即通过 SPI 主从串联方式,将一组数据刷新到所有点阵屏上。

    六、工作原理

    LED 控制芯片采用 GC7219,内部拥有 8x8 RAM 存储 64 个 LED 的点亮状态。
    MCU 与从设备传输数据时,首先将 CS 片选信号置为低电平,随后通过 MOSI 传输数据存储到从设备的移位寄存器中,当 CS 信号从低电平设置为高电平时,从设备在上升沿将数据锁存,数据生效。
    image.png

    参考文献及购买链接

    [1] GC7219 Datasheet参考资料
    [2] GC7219购买链接

  • 相关阅读:
    springboot+vue公益慈善救助审批网站系统java
    某村庄供水工程设计(设计报告+cad图纸+预算工程量清单)
    TLSR825x之BDT烧录固件
    [微前端实战]---037 后端服务
    基于Nodejs和mysql的工具市场客户信息管理系统
    网络基础——HTTP协议及HTTPS
    震惊,一个csdn小编用Python语言写了一个足球游戏,成功模拟世界杯决赛现场
    【乐吾乐3D可视化组态编辑器】3D场景与大屏通信
    神经网络 | 深度学习背后的数学
    PyQt5 使用Pandas数据分析
  • 原文地址:https://blog.csdn.net/weixin_39363464/article/details/134000893