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

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

一、产品简介

LED-8 * 32点阵屏显示板由 4 块单色 8x8 共阴红色点阵单元组成,通过 SPI 菊花链模式将多块显示屏连接后可以组成更大的分辨率显示屏幕,任意组合分辨率。可用于简单仪表显示、LED显示屏、万年历、数字钟、温度计、计数器、电压表等显示使用。
物联网AI MicroPython传感器学习 之 GC7219点阵屏驱动模块_第1张图片
引脚定义:

  • 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)

  • 参数说明:
参数 类型 必选参数? 说明
spiObj SPI 传入SPI对象
CS GPIO 传入片选信号 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!")
  • 输出:
GC7219 inited!

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")
  • 输出:
GC7219 inited 
drv.bitmap flush done

四、接口案例

  • 代码:
# 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")
  • 输出:
...
GC7219 inited!
drv.bitmap flush done
...

五、通信协议

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

六、工作原理

LED 控制芯片采用 GC7219,内部拥有 8x8 RAM 存储 64 个 LED 的点亮状态。
MCU 与从设备传输数据时,首先将 CS 片选信号置为低电平,随后通过 MOSI 传输数据存储到从设备的移位寄存器中,当 CS 信号从低电平设置为高电平时,从设备在上升沿将数据锁存,数据生效。
物联网AI MicroPython传感器学习 之 GC7219点阵屏驱动模块_第2张图片

参考文献及购买链接

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

你可能感兴趣的:(物联网传感器,物联网,人工智能,学习,python,嵌入式硬件)